存储系统中垃圾收集的方法和系统的制作方法

文档序号:9631493阅读:387来源:国知局
存储系统中垃圾收集的方法和系统的制作方法【专利说明】【
背景技术
】[0001]在存储系统中,情况常常是,为了写入一个数据块,平均一半的数据块需要移动。结果,将数据写入到存储系统在系统中引入明显的延迟,并因此降低系统的总体性能。为了管理存储系统中的数据,一般使用垃圾收集器以从不再使用的数据回收存储空间。【
发明内容】[0002]总体上,在一个方面,本发明涉及一种非暂时性计算机可读介质,包括指令,当该指令被处理器执行时执行一种方法,该方法包括:接收将数据写入到持久存储器的第一请求;响应于第一请求,将数据写入到持久存储器中的短寿命块,其中,数据是短寿命数据;和执行包括以下过程的改进的垃圾收集操作:选择第一块中的第一碎片页;确定第一碎片页是活动的;基于确定第一碎片页是活动的,将第一碎片页移动到持久存储器中的长寿命块,其中,长寿命块与短寿命块不同,并且其中,长寿命块不包含任何短寿命数据。[0003]总体上,在一个方面,本发明涉及一种用于管理数据的方法。该方法包括:接收将数据写入到持久存储器的第一请求;响应于第一请求,将数据写入到持久存储器中的短寿命块,其中,数据是选自包含短寿命数据和未知寿命的数据的组的一个;和执行包括以下过程的改进的垃圾收集操作:选择第一块中的第一碎片页;确定第一碎片页是活动的;基于确定第一碎片页是活动的,将第一碎片页移动到持久存储器中的长寿命块,其中,长寿命块与短寿命块不同,并且其中,长寿命块不包含任何短寿命数据。[0004]总体上,在一个方面,本发明涉及一种存储设备,该存储设备包括:持久存储器;非暂时性计算机可读介质,其包含指令;和处理器,其被配置为执行指令,其中,当该指令被处理器执行时执行方法。该方法包括:(a)接收将数据写入到持久存储器的第一请求;(b)响应于第一请求,将数据写入到持久存储器中的短寿命块,其中,数据是选自包含短寿命数据和未知寿命的数据的组的一个;和(C)执行包括以下过程的改进的垃圾收集操作:选择第一块中的第一碎片页;确定第一碎片页是活动的;基于确定第一碎片页是活动的,将第一碎片页移动到持久存储器中的长寿命块,其中,长寿命块与短寿命块不同,并且其中,长寿命块不包含任何短寿命数据,其中,与选自包含(a)和(b)的组的至少一个并行地执行改进的垃圾收集操作的至少一部分。[0005]根据以下的描述和所附的权利要求,本发明的其它方面将十分明显。【附图说明】[0006]图1示出根据本发明的一个或多个实施方式的系统。[0007]图2A示出根据本发明的一个或多个实施方式的固态存储器模块。[0008]图2B示出根据本发明的一个或多个实施方式的块。[0009]图2C示出根据本发明的一个或多个实施方式的碎片页。[0010]图2D示出根据本发明的一个或多个实施方式的TOC页。[0011]图2E示出根据本发明的一个或多个实施方式的块的例子。[0012]图2F示出根据本发明的一个或多个实施方式的内容表(tableofcontents)(TOC)条目ο[0013]图3示出根据本发明的一个或多个实施方式的用于接收写入请求的流程图。[0014]图4示出根据本发明的一个或多个实施方式的改进的垃圾收集操作的流程图。[0015]图5A?6B不出根据本发明的一个或多个实施方式的各种例子。【具体实施方式】[0016]现在参照附图详细描述本发明的特定实施方式。在本发明的实施方式的以下详细描述中,为了使得能够更彻底地理解本发明,阐述大量的特定细节。但是,对于本领域技术人员来说,很显然可以在没有这些特定细节的情况下实施本发明。在其它的情况下,为了避免不必要地使描述复杂化,不详细描述公知的特征。[0017]在图1?6B的以下描述中,在本发明的各种实施方式中关于附图描述的任何部件可能与关于任何其它附图描述的一个或更多个类似名称的部件等同。为了简洁,不对各附图重复这些部件的描述。因此,各附图的部件的每一个实施方式作为参考被加入,并且,被假定为可选地存在于具有一个或更多个类似名称的部件的每个其它附图内。另外,根据本发明的各种实施方式,附图的部件的任何描述要被解释为任选的实施例,该任选的实施方式可结合关于任何其它附图中的相应的类似名称的部件描述的实施方式、除其以外或者作为其替代被实现。[0018]总体上,本发明的实施方式涉及使用数据的寿命以将存储设备内的或者写入到存储设备的数据分类的方法和系统。具体而言,本发明的实施方式涉及与短寿命数据分开地存储持久的数据。通过基于寿命将数据分类,根据本发明的一个或多个实施方式,可以减少存储设备中的写入幅度(writeamplitude)。在本发明的一个或多个实施方式中,写入幅度与存储设备的各写入所需要的存储设备中的数据的移动次数对应。由于编写/擦除循环的次数会缩短固态存储器模块的寿命,因此,减少写入幅度具有性能益处。[0019]图1示出根据本发明的一个实施方式的系统。如图1所示,该系统包括一个或多个客户机100和存储设备102。以下描述这些部件的每一个。[0020]在本发明的一个或多个实施方式中,客户机100是在包括向存储设备102发出读取请求和/或向存储设备发出写入请求的功能的系统上执行的任何系统或处理。在本发明的一个或多个实施方式中,每个客户机100可包括处理器(未不出)、存储器(未不出)和持久存储器(未示出)。[0021]在本发明的一个或多个实施方式中,客户机100与存储设备102操作连接。在本发明的一个或多个实施方式中,存储设备102是包括易失性和持久存储器并且被配置为服务来自一个或多个客户机100的读取请求和/或写入请求的系统。存储设备102进一步被配置为实施改进的垃圾收集操作,该改进的垃圾收集操作包括以与以下描述的改进的垃圾收集操作(例如,参见图4)一致的方式将任何内容表(TOC)条目和碎片移动到长寿命块。存储设备102进一步被配置为以与以下描述的方法一致的方式(例如,参见图3)在存储设备中存储来自写入请求的数据。[0022]在本发明的一个或多个实施方式中,存储设备102包括处理器104、存储器106和一个或多个固态存储器模块(例如,固态存储器模块A110A、固态存储器模块B110B、固态存储器模块NI1N)。[0023]在本发明的一个或多个实施方式中,存储器106可以是包括但不限于动态随机存取存储器(DRAM)、同步DRAM、SDRSDRAM和DDRSDRAM的任何易失性存储器。在本发明的一个或多个实施方式中,存储器106被配置为在将各种数据(包含用于TOC条目和碎片的数据)存储于固态存储器模块(例如,110A、110B、110N)中之前暂时存储这些数据。存储器106可与处理器104操作连接。[0024]在本发明的一个或多个实施方式中,处理器104是具有被配置为执行指令的单芯或多芯的一组电子电路。处理器104被配置为执行指令以实现本发明的一个或多个实施方式,这里,该指令被存储于位于存储设备102内或者与其操作连接的非暂时性计算机可读介质(未示出)上。作为替代方案,可使用硬件实现存储设备102。在不背离本发明的情况下,可使用软件和/或硬件的任意组合实现存储设备102。[0025]在本发明的一个或多个实施方式中,存储设备102被配置为创建和更新存储器内数据结构108,这里,存储器内数据结构被存储于存储器106中。在本发明的一个或多个实施方式中,存储器内数据结构包括逻辑地址与物理地址之间的映射(直接或间接)。在本发明的一个或多个实施方式中,逻辑地址是从客户机100的观点看表现为数据存在的地址。在本发明的一个或多个实施方式中,逻辑地址是(或包括)通过向η元组应用散列函数(例如,SHA-UMD-5等)产生的散列值。在本发明的一个或多个实施方式中,η元组是<对象ID,偏移ID>,这里,对象ID限定对象(例如,文件),并且,偏移ID限定相对于对象的开始地址的位置。在本发明的另一实施方式中,η元组是〈对象ID,偏移ID,出生时间〉,这里,出生时间与创建文件(通过使用对象ID识别)时的时间对应。作为替代方案,逻辑地址可包括逻辑对象ID和逻辑字节地址、或者逻辑对象ID和逻辑地址偏移。在本发明的另一实施方式中,逻辑地址包括对象ID和偏移ID。本领域技术人员可以理解,多个逻辑地址可被映射到单个物理地址,并且,逻辑地址不限于以上的实施方式。[0026]在本发明的一个或多个实施方式中,物理地址可与存储器106内的位置或者固态存储器模块(例如,11当前第1页1 2 3 4 5 
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1