CN1512353A - 性能改善的数据存储和方法 - Google Patents
性能改善的数据存储和方法 Download PDFInfo
- Publication number
- CN1512353A CN1512353A CNA2003101204050A CN200310120405A CN1512353A CN 1512353 A CN1512353 A CN 1512353A CN A2003101204050 A CNA2003101204050 A CN A2003101204050A CN 200310120405 A CN200310120405 A CN 200310120405A CN 1512353 A CN1512353 A CN 1512353A
- Authority
- CN
- China
- Prior art keywords
- cache
- write
- data
- metadata
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了用于数据存储系统的日志结构写高速缓存器及其方法,用于改善存储系统的性能。该系统可以是RAID存储阵列、盘驱动器、光盘或者磁带存储系统。写高速缓存器最好被实施在系统的主存储媒介中,但是也可以被设置在系统的其它存储部件中。写高速缓存器包括诸多高速缓存器行,它们以非易失状态暂时累积写数据,以便以后时间能将写数据顺序地写入目标存储位置,由此改善系统的总体性能。每个高速缓存器行的元数据还可以被保存在写高速缓存器中。元数据包括:行中每个扇区的目标扇区地址,指示数据被登记到高速缓存器行的次序的顺序号。缓存器表项供每个高速缓存器行使用。散列表用来搜索缓存器表,以寻找每个数据读和写操作时所需的扇区地址。
Description
技术领域
本发明总的涉及数据存储装置和系统,特别是涉及日志结构的写高速缓存器,通过将随机数据写转换成顺序数据写来改善这些装置和系统的性能。
背景技术
日志结构存储系统已经被提出,通过将随机写转换成顺序写来改善写数据的性能。存储装置如硬盘装置具有比随机I/O吞吐量快多个量级级的顺序存取吞吐量。然而,日志结构存储装置和系统实施成本高,因而具有明显的缺点。尽管随机写被转换成顺序写,但是顺序读往往又被转换成随机读,从而抵消了任何性能的改善。基于日志的文件系统进行实施和管理时通常是非常复杂的。最终导致日志结构的存储装置和系统不能被广泛推广使用。
Kenchammana-Hoskote和Sarkar(美国专利申请公布US2002/0108017A1)公开了一种现有技术方案,其中把数据写顺序日志地记录到分离存储装置中,并且依据日志分离地记录与日志相关的元数据。该方案在单一主存储媒介的情况下是不可行的,因为需要使日志独立于主媒介以保持性能相干性。
Mattson和Menon(美国专利US5416915)公开了另一种现有技术方案,通过在盘阵列上执行并行写操作来增强写性能。但是该技术方案不能取得顺序写的性能优点。
Rosenblum等人(“The Design and Implementation of a Log Structured FileSystem,”ACM Transactions on Computer Systems,V10-1,Feb.1992,pp.26-52)公开了又一种现有技术方案,其中由于性能原因,将文件系统设计成执行顺序写,然而该技术方案仅仅适用于可以实施日志结构文件系统的系统,因而是主机依赖型的。此外,这一系统的全部性能将不能充分执行,除非文件系统知道存储系统的基本特性,然而通常不存在这种情况。
发明内容
本发明的目的是提供一种用于数据存储系统如盘驱动器、盘阵列、光盘和存储服务器的日志结构写高速缓存器,以便可以将随机数据以顺序数据那样的效率写入这些系统中。本发明的另一目的是实现日志结构写高速缓存器的优点,而又不出现日志结构写高速缓存器的全读性能惩罚的情况。本发明的另一个目的是在存储系统中提供一种有效操作,将数据登记到写高速缓存器以及随后将数据从高速缓存器中写到目标扇区地址中。扇区是存储系统中的最小地址单元,通常是512个八比特字节。日志结构写高速缓存器在把数据写入目标扇区地址之前进行写数据。通过高速缓存还能够改善读操作。
写高速缓存器最好被实施在系统的主存储媒介中,但是也可以设置在系统的其它存储部件中。写高速缓存器包括多个高速缓存器行,其中写数据以非易失性状态被暂时累积,以便在以后时间可以将其顺序写入目标存储位置,由此改善系统的整个性能。每个高速缓存器行的元数据也可以保存在写高速缓存器中。元数据包括该行中的用于每个扇区的目标扇区地址和指示数据被登记到高速缓存器行上的顺序的顺序号。缓存器表项被供应给每个高速缓存器行。散列表用来搜索每个数据读和写操作时所需要的扇区地址的缓存表。
存在用于对估算任何高速缓存系统进行评估大量度量标准(metrics)。数据写必须充分地限制:主机确认的任何数据在断电事件和系统复位事件中都将像已经写入那样被恢复。基本度量标准是读写I/O速率。高速缓存管理操作的开销也是重要的。开销包括确定项是否在高速缓存器中的时间以及需要增加项和从高速缓存器中移出项的时间和资源。存储高速缓存元数据所需的存储量是重要的。意外停机之后恢复系统状态所需的时间应当降至最小。刷新或部分刷新写高速缓存所需时间应当最小化,尽管这经常是一个后台(低优先级)操作。
下面将说明本发明的附加目的和优点,这些目的和优点将部分地从结合附图的说明中得知,或者可以通过本发明的实践得知。
附图说明
图1是显示存储系统中本发明的写高速缓存器的示意图;
图2a显示了本发明的提供日志结构写高速缓存和元数据的高速缓存器行的布局;
图2b显示了高速缓存器行的进一步细节,包括数据块和扇区信息;
图3显示了本发明的缓存表和在搜索缓存表时使用的散列表的一个实例;
图4是显示将数据输入到日志结构写高速缓存器的高速缓存器行上的登记(post)操作的一个最佳实施例的流程图;
图5是显示从高速缓存器行中清除数据和把高速缓存器行中的扇区地址写入目标扇区地址的刷新操作的一个最佳实施例的流程图;
图6a是显示写高速缓存器参与把数据写入存储装置的一个最佳处理的流程图;
图6b是显示写高速缓存器参与从存储装置读取数据的一个最佳处理的流程图;
图7a是显示响应登记操作进行瞬像(snapshot)操作的一个优选实施例的流程图;
图7b是显示响应刷新操作进行瞬像操作的一个优选实施例的流程图;
图8是显示当存储装置加电时恢复写高速缓存器状态的一个优选处理的流程图。
具体实施方式
下面将按照一个供数据存储装置或系统使用的日志结构写高速缓存器说明本发明。然而,本领域熟练技术人员将会明白,可以对诸如数据处理系统的设备进行编程或者进行设计,使其便于实现本发明的方法,其中所述设备包括CPU、存储器、I/O、程序存储器、连接总线和其它合适的部件。这样一个系统可以包括运行本发明操作的适当程序装置。
此外,供数据处理系统使用的制造物,如预记录盘或者其它类似计算机程序产品,可以包括存储媒介和存储在其上的指导数据处理系统的程序装置,以便于本发明方法的实现。这些设备和制造物也落入本发明的精神和范围之内。
图1显示了存储设备100内的本发明的一般配置。主机102访问像是现有存储系统的存储系统104,主机102与1级(L1)写高速缓存控制106交互。写高速缓存控制106将数据暂时存储在L1写高速缓存器108中,写高速缓存器108在易失性随机存取存储器(RAM)122中存储数据。2级(L2)高速缓存控制110传递该数据和关联的元数据,以在RAM 122中建立其散列表112和缓存表114。在通常情况下,以高速缓存器行124的格式将数据和元数据发送到非易失性存储器120的存储区120上。一旦数据不再易失,则将存储确认返回给主机102高速缓存控制110周期性地更新高速缓存器的瞬像区域134,以反映缓存表114的当前状态。此外,当有助于操作时,从高速缓存器行124读出数据并写入主存储器126-132。主存储器可以包括如所示的多个存储装置或者单一存储装置,所以存储装置120、126-132驻留在单一存储区域中。
图2a显示了高速缓存器行布局200的一个实例。在可以是主存储器118的部分的非易失性存储器202的可寻址区域内,高速缓存器行204-208(b)和214-218被组成族。在图示202中存在位于数据区内的三个高速缓存器行的两个族。排列这些族以便进行最佳写操作,并且在族中顺序写这些高速缓存器行。例如,借助硬盘驱动器,高速缓存器行群将对应于将顺序写的盘上的一个或多个相邻轨迹。在存储阵列中,高速缓存器行群可以驻留在许多盘或者专用非易失性存储装置上,使顺序写速度更佳。图2a中的族被显示为散布在存储器的可寻址区域上,以便减少寻找距离。其它选择是,将所有高速缓存器行置入一个族中以减小恢复时间,或者分布各高速缓存器行,以便以恢复时间为代价改善稀有成组(scarce bursty)存储业务的性能。另外还分配了记录瞬像元数据的区域212。剩余的存储区域不用于高速缓存,而是可以用作主存储区域的部分。
瞬像元数据212、134定位在包含了用于整个高速缓存的元数据的瞬像拷贝的非易失性存储器118中。瞬像有助于停机之后的系统状态恢复。由于性能原因,瞬像不需要总是更新。瞬像信息保护性能优于如利用奇偶扇区的保护性能。
图2b示出了单一高速缓存器行204的内容。该行包括:多个数据块252-256,与这些数据块关联的元数据258、可选奇偶块260,和可选引导顺序号250。每个高速缓存器行都具有标识行的写顺序的顺序号。顺序号被认为是元数据258的部分,但是也可以如图所示的那样置于高速缓存器行的前面。在图2b中,所示高速缓存器行中的第二数据块254被标识为块1,在8个扇区的块长情况下,被细化成包括数据扇区264-278。
对于写高速缓存器,术语“登记”用来说明把数据写入高速缓存器行的操作,术语“刷新”用来说明把数据从高速缓存器行移到目标位置的操作。
高速缓存器行作为一个单位来登记,以确保已写数据的完整性,并且仅仅被登记到一个空行上(成功刷新时刻的空行)。当整个行被登记时,向主机102显示一个“写完成”。行元数据250、258包含位于行204的信息;这样,写操作不包含将元数据写到任何其它位置。这是保持顺序存取性能的关键。奇偶块260是一个选项,它进一步提供数据完整性,以避免足以破坏整个块或者元数据的严重错误。
本发明的关键方面是高速缓存器行可以包含两个孔(没有数据出现的数据保留区域)和数据复制(在一组高速缓存器行之内多次复制主存储器中的数据)。涉及数据扇区的信息通过L2高速缓存控制进行跟踪。
以下部分更详细地描述了写高速缓存器的结构和操作。
行元数据
行元数据包含行中关于每个扇区的目标地址的信息,以便得知扇区的位置和标识。行作为一个单元被登记,以提供顺序写,并且通过顺序号250标识写,以便以后确定写顺序。被登记到第一行作为第一写操作的结果的扇区能够被顺序登记到第二行以作为第二写操作。读操作必须能够定位和标识最近写入的扇区版本。
这里描述的本发明最佳实施例使必须被存储到易失性RAM 122中的元数据量最小化。高速缓存器行的行元数据250、258至少包括两个数据对象:行顺序号和缓存器表。ANSIC程序设计语言中这些对象的实例定义可以是:
typedef struct{
unsigned int SeqNum:32;
LineBufEntry LBE[lineSize];
}LineBufTable;
SeqNum是高速缓存器行的顺序号。它被显示为32-比特整数,但是只需要大得足以处理一组高速缓存器行之内唯一的顺序号即可。最好是,顺序号250(SeqNum)和行元数据258分别被嵌入到高速缓存器行204的起点和结尾,以确保正确写入行中。LBE是块缓存器表,假定其中存在高速缓存器行中的LineSize块位置。下面说明LineBufEntry结构。行缓存器表具有用于每个数据块位置的项。该项包括:目标块号(涉及目标扇区地址)和指示该块中哪个扇区位置被占用的比特图(Bitmap)。通常不希望占用一个块中的所有扇区位置。等于0的比特图指示该块是空的。在C语言中的其结构是:
typedef struct{
unsigned int Block:32;
unsigned int Bitmap:8;
}LineBufEntry;
一个块具有由BlockSize指示的固定数量扇区的存储,它最好是2的幂以便使用一位操作从目标扇区地址中算出块号。存储效率通过将扇区地址组合(group)为块而得以增强。存储效率反映大多数存储系统操作同时操控一个以上扇区的观测。例如,如果BlockSize是8,那么用于单一扇区地址(表示为LBA)的比特图项和块号可以按下式计算:
块=LBA>>3;
比特图=1U<<(LBA & 7);
因此,可以看到块和比特图值足以用于标识行中的每个扇区地址。上述比特图公式计算用于特定扇区地址的比特值。这些比特值被逐位或,以形成块的全比特图。BlockSize将确定比特图元素的比特长度。
高速缓存器行顺序号将用来确定行登记的顺序。某些顺序号值可以专用于指示例如行是空的。
缓存器表
在操作期间,用于所有高速缓存器行的行缓存器表可以在随机存取存储器中合并成单一表,即缓存器表。该表具有用于每个项的附加元素,以存储对另一缓存器表项寻址的索引值。缓存器表项可以被定义为:
typedef struct{
unsigned int Block:32;
unsigned int Bitmap:8;
unsigned int NextEntey:16;
}BufEntry;
在缓存器表中顺序存储每个行缓存器表,因此,即使不存储数据基准,日志缓存器中的每个块项也具有特定的固定存储地址。缓存器表可以被定义为:
BufEntry BufTable[Lines*LineSize];
在这里,诸多行是数个高速缓存器行。每个块项具有与其关联的固定存储器地址。这为登记和刷新高速缓存器行提供了显著的性能优势。
散列表
在每个数据读和写操作时需要具有快速搜索缓存器表寻找扇区地址的能力。尽管存在大量的适于搜索高速缓存器寻找扇区地址的技术,但是链接列表项的散列表适合于搜索缓存器表。散列表提供一个小存储器轨迹和一个快速查找表。散列函数用来依据扇区地址号和块号实现比较均匀的诸多散列的分布。一个实例散列将使用块号的最低有效位。链接列表用来存取对应于散列值得缓存器表中的所有的块。
图3示出了散列表302以及该散列表如何用来引用缓存器表。散列表302具有用于每个唯一散列值的项,其中每个项是对应于散列的用于块的缓存器表中的项的索引。缓存器表320持有用于高速缓存器块的缓存器项。高速缓存器块仅具有单一的相应散列项,而许多块可以共享相同的散列项。NextEntry元素持有对应于散列值得缓存器表中的下一个块的索引。一个特定值“End”专用于指示链接列表的结尾。NextEntry元素的大小通常由可以保持的高速缓存器中块的数量决定。例如,16比特NextEntry足以满足64,000个项。
图3示出了散列表302和链接列表311-318的示例配置。在该实施例中,散列项310包含[行-1,0]的[行,块]索引。这是如连接316所指示的最后散列高速缓存器行370的第一块的索引。该块的NextEntry378包含如连接317所指示的[0,1]的索引。这是高速缓存器行0(330)的块1(340)的索引。块1(340)是链接列表中的最后项,因此NextEntry343包含对应于结尾390的索引值,如连接313所指示。图3中还显示了其它示例连接。
增加散列表的长度将改善查找链接列表中扇区地址时的性能,因为链接列表的长度往往较短。然而,这将增加存储要求。不需要在缓存器表中显性地存储高速缓存器行号,因为可以从索引值中算出其值。高速缓存器行中数据存储的位置可以用上述信息加高速缓存器行的起始位置算出。
在本发明的最佳实施例中,当登记行时,可以将项加载到散列表上的链接列表起点(该列表的头部)。这意味着在查找操作期间,第一匹配项是最新的。当刷新行时,项将从链接列表的尾部移出,从而确保顺序次序得以保留。
登记操作
图4显示了登记操作400的细节。在步骤402,登记操作经过一组扇区和相关联的地址。在步骤404检验高速缓存器以查看是否充满。如果没有空余行,则在步骤406搜索高速缓存器,以寻找每个扇区地址。这包含先前所述的计算扇区的块号和比特图,和计算散列值以及仔细检查散列表的列表以寻找匹配。在步骤408,如果高速缓存器中没有扇区地址,则直接将扇区写到目标位置(步骤434),并且将登记操作指示为完成(步骤436)。在步骤408,如果在高速缓存器中找到任何一个扇区地址,则必须使缓存器表中的相应项无效。在步骤410,将不在高速缓存器中的一组扇区写到目标扇区上。在步骤412,调用刷新操作,在写高速缓存器中腾出空位。位于高速缓存器中的该组扇区随即进入进行登记的步骤414。这只是保持高速缓存器状态相干的许多可能方法之一。在步骤404,如果高速缓存器中存在空位,则扇区进入到步骤414。
在步骤414,确定将接收已高速缓存的数据得高速缓存器行的族。在步骤416,递增顺序号。然后在步骤418,以环绕或先进先出(FIFO)方式(即,以该族中高速缓存器行的数目为模)递增该族(cluster)的高速缓存器行指针,即登记行族#。在步骤420,处理高速缓存器行元数据外,还依据扇区地址建立一组块号和比特图。在步骤422,将这些块号和比特图作为一个单元写入由登记行指示的高速缓存器行上。步骤424、426和428构成一个循环,其中散列表通过在高速缓存器行中增加每个块的项来更新。这包括计算用于每个块的散列,然后将索引插入到链接列表前端处的块的BufTable项,并且把BufTable项的下一个索引值更新到在前的第一列表项的点上。这确保了按顺序号的次序存储链接列表。在步骤430,向主机102指示登记完成。最后,在步骤432,发送瞬像登记操作的信号,这可以导致元数据的瞬像写入存储器。尽管未示出,但是扇区列表可以导致登记多个行。
以上描述仅仅打算说明保持高速缓存器状态相干的登记操作的关键特征。也可以使用其它方法。例如,可以首先确定一组将要执行的操作,然后使用最佳化算法合并和排序媒介写操作。此外,在步骤412和414,可以使用保持高速缓存器状态相干的刷新然后登记的方法。其它方法也是可应用的,比如修改系统元数据以无效项。此外,替代用于块的现有散列项,而不是在列表的头部插入新值,也许是理想的。这将以纪录操作时搜索链接列表的附加处理为代价保证链接列表较短。
在本发明的优选实施例中,以每个族内的FIFO次序填充高速缓存器行。在FIFO中,以行数为模,按照行号递增次序登记诸多行。在该配置中,每个族具有读指针(刷新下一行的顺序号)和写指针,即登记行族#(登记下一行的顺序号)。如下所述,这一安排在初始化时简化了高速缓存器状态的恢复。
登记操作可以被各种条件触发。在大量写操作期间,登记可以在L1写高速缓存器接近充满时启动。也可以在以下时间触发登记操作:当数据的行的价值(line’s worth)位于L1写高速缓存器中,或者当写活动性减弱时,或者当数据在某一时段位于L1写高速缓存器之后。基于写活动性的方法特别适合于L1写高速缓存完全未使用的情况。在此情况下,本发明的目的是以写速率较之在目标扇区写数据得以提高的一个速率登记诸多行。
刷新操作
刷新操作用来从高速缓存器中清除数据并把扇区写到目标地址上。当已高速缓存的数据被移到目标位置上时,读取性能通常比全日志结构系统高(增强),因为主机102分配的扇区地址经常是局部上下文相似,尽管它们是无序写入的。然而,散列操作消耗时间,并且在空闲间隔按标准执行。许多存储工作量如台式和移动存储系统所生成的存储工作量是由具有活动性长间隔的活动性短脉冲串(高峰I/O速率)的短脉冲串表征的(例如,参见美国专利US5682273)。这些工作量提供刷新高速缓存器行的许多机会。实际上,美国专利US5682273的空闲检测算法可以用来识别这样的情况。
图5显示了刷新操作500的细节。在步骤502,刷新操作根据顺序号通过一个族的最旧的行号。这就确保了总是保留写数据次序。在步骤504,作为一个操作将整个高速缓存器行写入存储器。步骤506至514构成在高速缓存器行中处理诸多块中所有扇区的循环。在步骤508,散列表中查找每个块的块地址项。在步骤510,将最近的项与正在处理的项进行比较。如果值不匹配,则当前行中的扇区不是最新版本,并跳过。反之,在步骤512,将扇区写入盘上。
一旦所有扇区都已经得到处理,则在步骤516将该行标注为存储器中的空行(并且被反映到非易失性存储器中)。步骤518至522估算估算位于该行内的所有块。在步骤520,从列表中移出对应于块的散列表项。这可以通过搜索链接列表,寻找对应于当前行上块的项来实现。重新调整列表中在前项的下一个值,使之指向块项之后的项,从而将该项从列表中移出。在步骤524,发出瞬像刷新操作的信号,从而可以导致元数据的瞬像写入存储器。当更新元数据时,将高速缓存器行的空闲状态写入非易失性存储器。具有元数据立即反映的空闲状态并不重要。如果因意外功率损耗使系统状态丢失,其结果将是再次对行进行无关紧要的刷新。
尽管仅对刷新高速缓存器行的关键操作进行了说明,但是其它各种此类处理都是可能的。例如,不需要按照步骤512所示的次序写入扇区。此外,利用重新排序算法合并和分类诸多写,有利于性能最佳化。
数据写操作
图6a显示了数据写操作600的细节。在步骤602,写操作通过一组扇区和关联的地址。在步骤604,确定是否应当高速缓存数据。例如,大顺序写绕过写高速缓存器也许是有利的。如果扇区可以被高速缓存,那么在步骤606则将登记操作转到扇区的列表。一旦登记完成,就在步骤614指示写完成。如果高速缓存器被绕过,则在步骤608直接将数据写到目标扇区地址。
在登记操作中,必须使写高速缓存器当前的任何扇区无效。在步骤610,搜索高速缓存器,以查看是否有任何扇区目前存在于高速缓存器中。如果没有,则在步骤614指示一个写完成。在步骤612,如果任何扇区位于高速缓存器中,则将无效对应的高速缓存器项。在本发明的优选实施例中,将这些剩余扇区放入被转移到登记操作的一个已减少的列表中。该描述用于仅仅说明写数据的关键特征。例如,通过首先标识所有操作,然后使用重新排序算法合并和最佳化写次序,来改善性能。
数据读操作
图6b显示了数据读操作600的细节。在步骤620,读操作转到一组扇区地址。步骤622至632为每个扇区地址而运行。在步骤624,在散列表中查找对应于扇区地址的块和比特图。在步骤626,如果在高速缓存器中找到扇区,则在步骤628从散列表项确定的高速缓存器中读出该扇区。在步骤630,如果未在高速缓存器中发现扇区,则从给定的扇区地址中读出扇区。进一步增强该处理是可能的。例如,可以通过以下方式提高性能:在该循环中建立数据位置列表,然后使用重新排序算法合并和最佳化读次序。
瞬像操作
瞬像操作用来提供高速缓存器元数据的几乎最新的拷贝。允许瞬像略微过期可以改善系统操作性能。存在两种瞬像操作;一种用于登记操作,另一种用于刷新操作。设置瞬像间高速缓存操作的上限是有利的。每N个登记和每M个刷新都可以得到瞬像。由于刷新操作通常发生在后台,因此M=1很可能是一个好选择。10至20间的N的值可能提供性能影响与恢复时间之间合理的折衷。
图7a显示了响应登记操作的瞬像操作的细节700。在步骤704,递增登记计数器。在步骤706,检验计数器以查看是否需要瞬像。如果不需要,则结束操作。如果是用于瞬像的时候,则控制转到步骤708,在此将N个在前登记行的瞬像元数据送交瞬像区域212。以登记行是具有最新顺序号的那些行。在步骤710,复位计算器值,指示瞬像的完成。
通常高速缓存器行的元数据所占据的区域小于一个扇区。通过立刻登记N个扇区,瞬像更新还可以是一个用于改善性能的流动操作。
图7b显示了负责刷新操作的瞬像操作的细节700。该操作类似于瞬像登记操作。其区别是,在步骤726,用指示行空闲的元数据改写对应于最近刷新的行的行元数据。例如,通过使用专用于空闲行的顺序号进行改写。
恢复操作
当初始化系统时,需要适当地恢复非易失性写高速缓存器的状态。如果系统具有指示一个清除停机的方法,则在停机之前可以得到一个完整瞬像,所以可以将恢复限制到读出瞬像。例如,许多存储系统可以使用一个首次写时设置并在清除停机时清除的脏标志(dirty flag)。如果不设置脏标志,则认为瞬像良好。反之,则不能保证瞬像状态是有效的,并且必须用高速缓存器和瞬像重建高速缓存器元数据。
图8显示了恢复操作的细节800。步骤803初始化最新的顺序号(newsn)的值和最旧的有效顺序号(oldsn)的值。步骤804至816是遍历高速缓存器中所有行值的循环。在步骤806,读取一行的瞬像元数据(SMD)。瞬像中最新顺序号在步骤808中更新。在步骤810,计算该高速缓存器行的高速缓存器写指针(用于登记操作的下一行号,即登记行族#),以作为与族中最新顺序号对应的行的索引。在步骤812,将读指针(用于刷新操作的下一行号)确定为在指示空闲行的高速缓存器元数据之后的最高行号(服从于FIFO环绕条件)。在步骤814,计算最旧的顺序号。当该循环完成时,所有瞬像元数据就存入存储器中。此外,最新顺序号、每个族的读指针、每个族的写指针和最旧顺序号是未知的。
步骤820至828是遍历所有族的行值的一个循环,这些族包括从写指针(登记行)到可以在瞬像(N-1)之前登记的最大数量的行。在步骤822,读出一行的元数据。在步骤824,将该行的顺序号与最新顺序号进行比较。如果顺序号小于最新顺序号,或者该顺序号指示该行是空闲的,则这里没有其它的行需要检查,并且在步骤830完成恢复操作。反之,当前行不是瞬像的部分。在步骤826,写指针(登记行)被递增(FIFO方式)并更新最新扇区号。在该行的结尾将得知登记行和顺序号的最新值。
散列表不存储在元数据中。它是通过按照增加顺序号的次序加载所有块项(像数据被登记)用行元数据重构的。这保证了每个块的列表次序被保留,尽管可以改变不同块的列表项次序。然而,这是无关紧要的。此外,使用重建散列表的更完善方法可能是有利的。例如,通过仅仅加载具有最高顺序号的用于每个扇区的项,来最小化链接列表的长度。
上述实例描述了M=1的情况(每次刷新的瞬像)。M>1的情况具有类似于步骤820至828的用于定位读指针的一个附加循环。瞬像的使用消除了刷新时更新高速缓存器的元数据之需要。需要指出的是,瞬像区域212不需要驻留在一个邻接地址块中。
数据完整性
日志缓存系统的状态总是被准确定义是至关重要的。这需要系统总是把每次读请求的最新写入数据返回到其地址。因此,系统必须在任何时候都具有准确定义的状态,而且该状态必须在记录媒介上存储的持久数据中得到反映。例如,强迫登记操作按次序写高速缓存器行可以确保部分写能够被删除。在高速缓存器行的每个扇区之内对数序号编码,进一步增强了完整性。这可以这样实现,使用每个扇区中预留位置,或者将顺序号预编码到扇区校验区域中。部分写的高速缓存器行可以按空闲对待,因为主机102并未确认该操作已经完成。依据高速缓存器行次序通过顺序号次序的一个中断,也可以检测瞬像中的部分写。在前描述的恢复过程可以恢复在瞬像中未被更新的任何被登记的行。未在瞬像中反映的任何被刷新的行可以被再次刷新。
当采用多扇区纠错码(ECC)如连续扇区奇偶校验时,缓存器行是ECC可寻址单元的整数以及奇偶性校验是完整的ECC可寻址单元将具有优势。
实施例
与高速缓存器容量相比,该实施例的随机存取存储器轨迹(footprint)是非常小的。在8的BlockSize(块长)情况下。每个缓存器表项是7字节。因此该轨迹占用来用于缓存器表的字节为每个高速缓存器扇区小于1字节。散列表的大小是预期查找表性能与所需存储器之间的平衡。通常,计算性能取决于散列表和链接列表的长度。存储器轨迹可以按以下方式计算。散列表的字节大小是项数量(高达64K项)的两倍。缓存器表大小等于(7字节×LineSize×行的数量)。
将5400rpm移动硬盘驱动器考虑为存储系统的一个非限制性实例。选择位于数据区域(MD)中心附近的高速缓存器行的单个族,以最小化HDD寻找距离。对于该盘驱动器,在MD上每轨迹存在416个扇区。每个轨迹将有2个高速缓存器行,每行具有208个扇区,每个轨迹具有1个奇偶校验块和1个用于所有元数据的块。因此,LineSize是具有8个BlockSize的24个块。这样,在高速缓存器中将具有515个行,占据了256个轨迹,提供了12,288个块。这样,16K项的散列长度是适合的。表1显示了所需的各种存储器结构的大小。(在这里K是系数1024。)
该高速缓存器具有接近48MB的容量,然而元数据轨迹小于128KB。通常,由于块结构的原因将不能得到全容量。假定典型的I/O是4KB,高速缓存器容量将是原来的一半,或者是24MB,因为未定位的8个扇区I/O将占据2个块。
表1
项 | 大小 |
缓存器表 | 84KB |
散列表 | 32KB |
存储器轨迹 | 116KB |
该设计的恢复时间可以依据旋转周期和一个轨迹查找时间来估算。瞬像元数据是缓存器表的大小。每行的每个元数据占据整个扇区,这需要512个扇区或者小于两个轨迹。选择用于登记的最大瞬像间隔为N=20,以及用于刷新的最大瞬像间隔为M=1,是指最坏情况包含从12个轨迹(20/2+1)中读取高速缓存器轨迹加上瞬像。在该实施例中,周期是11.1ms,一个轨迹读取寻找是2.5ms,从而导致200ms恢复时间。这将不会对系统等待时间造成明显影响,因为在没有日志写高速缓存器的情况下,现有技术的启动时间大约为1.7s。
扩展
具有写高速缓存器的存储系统的性能可以通过从链接列表中移出过期项(具有较旧顺序号的复制扇区)得到改善。刷新操作提供一个唯一机会,因为它仔细检查散列表以发现尾标记。当项发生碰撞时,可以移除任何过期项。此外,不需要为正在刷新的行刷新其过期扇区。各高速缓存器行不需要具有相同容量,并且还可以改变每组的高速缓存器行的数量。这些情况在外加例如行大小表的高速缓存器中可以被容易地处理。当利用分区纪录系统中的分布式高速缓存器轨迹时,该方案是有用的,其中改变了邻接的连续扇区的数量。一个实施例将是每个轨迹保持恒定数量的高速缓存器行,但是改变行的大小。此外,把分布式高速缓存器处理为一组FIFO而不是处理为单一FIFO将是有利的。当操作集中于可寻址存储区域的不同区域时,这将允许初始化高速缓存器的数据。
留下高速缓存器行或者组或者或者缺陷管理组的一些空闲扇区也许是有益的。保持高速缓存器行快速可存取是性能的关键。因此,应当确定高速缓存器行组内是否具有缺陷。这种缺陷将需要高速缓存器行重新分配。这可以通过是高速缓存器行的待分配的缺陷自由区域来实现。作为选择,可以在高速缓存器行组中自行处理缺陷管理。尽管可以直接使用奇偶校验,但是也能够使用行组内的备用空间重新映射扇区。
通过扩展瞬像元数据使其包括无效信息,可以改善高速缓存器充满时的系统性能。当无效整个高速缓存器时,这将减少刷新高速缓存器或者修改现存元数据的需要。它还可以在数据写操作期间减少无效高速缓存器项的写操作量。
有了高速缓存器行的固定位置,可能导致对地址空间的局部区域的不成比例的I/O访问,其中某些存储系统可能不利于稳定和长效性能。一个算法可以用来周期地移动访问位置,以及刷新操作也将改变访问位置。另一替代方案是将高速缓存器行周期地移动到不同位置。这可以在全刷新之后实现,尽管这不是必需的。来自新位置的数据可以借助空闲高速缓存器行来环绕。如果存储器特征在新区域中不同,还可以调整高速缓存器行的大小。
尽管已经结合优选实施例具体实现并说明了本发明,但是本领域的熟练技术人员将会明白,在不背离本发明的精神和范围的条件下可以作出形式和细节上的各种变化。因此,所公开的本发明应当认为仅仅是说明性的,并且其范围仅仅由附带的权利要求限定。
Claims (28)
1、一种数据存储系统,包括:
一个按数据块存储数据的媒介,其每个数据块与扇区地址相关联;
一个具有多个高速缓存储器行的写高速缓存器,每个高速缓存器行具有多个数据块、行元数据和顺序号,其中行元数据具有将写入所述高速缓存器行中数据块上的扇区地址的信息,所述顺序号指示相对于其它高速缓存器行中数据块的所述高速缓存器行中数据块的次序;
其中写高速缓存器充当改善系统性能的数据顺序写分段区域。
2、根据权利要求1所述的存储系统,其中高速缓存器行还包括一个奇偶块,用于在高速缓存器行部分损失的情况下,启动高速缓存器行中数据的恢复。
3、根据权利要求1所述的存储系统,其中写数据被登记到写高速缓存器之后,再按扇区地址写入系统。
4、根据权利要求1所述的存储系统,其中写高速缓存器被保存在系统的非易失性存储器中。
5、根据权利要求1所述的存储系统,还包括一个与主机系统和写高速缓存器相互作用的写高速缓存器控制。
6、根据权利要求1所述的存储系统,其中行元数据包括标识高速缓存器行的顺序号。
7、根据权利要求1所述的存储系统,其中行元数据包括具有多个项的行缓存器表,每个项具有一个目标扇区地址和一个指示占据块中扇区位置的比特图。
8、根据权利要求7所述的存储系统,其中用于所有高速缓存器行的行缓存器表被集成到一个缓存器表中,以允许搜索扇区地址。
9、根据权利要求8所述的存储系统,其中利用散列表搜索缓存器表。
10、根据权利要求9所述的存储系统,还包括一个管理缓存器表和散列表的高速缓存器控制。
11、根据权利要求1所述的存储系统,其中媒介包括用于整个写高速缓存器的行元数据的瞬像,所述瞬像用于在系统停机情况下恢复数据。
12、根据权利要求1所述的存储系统,其中多个高速缓存器行在媒介上被一起组合为族。
13、根据权利要求1所述存储系统,其中系统是盘驱动器。
14、根据权利要求1所述存储系统,其中系统是光驱动器。
15、根据权利要求1所述的存储系统,其中系统是盘阵列。
16、根据权利要求1所述的存储系统,其中系统是存储服务器。
17、一种改善数据存储系统性能的方法,该数据存储系统具有按数据块存储数据的媒介,其每个数据块与一个扇区地址相关联,该方法包括以下步骤:
在媒介上提供一个写高速缓存器,所述写高速缓存器具有多个高速缓存储器行,每个高速缓存器行具有多个数据块、行元数据和顺序号,其中行元数据具有将写入所述高速缓存器行中数据块上的扇区地址的信息,所述顺序号指示相对于其它高速缓存器行中数据块的所述高速缓存器行中数据块的次序;和
把写高速缓存器中的写数据分段为改善系统性能的顺序写数据。
18、根据权利要求1所述的方法,其中分段步骤包括以下步骤:
接收多个将要写入系统的数据块;和
将诸多数据块存入一个高速缓存器行中;
生成用于高速缓存器行的元数据,元数据包括高速缓存器行的顺序号和数据块的地址;
将元数据存储到高速缓存器行中。
19、根据权利要求18所述的方法,还包括以下步骤:计算高速缓存器行中数据的多个奇偶块;和
将奇偶块写入高速缓存器行。
20、根据权利要求17所述的方法,还包括以下步骤:
在媒介上提供瞬像区域;和
在数据被写入到写高速缓存器之后,将用于高速缓存器行的元数据拷贝写入瞬像区域中。
21、根据权利要求20所述的方法,还包括根据瞬像元数据进行初始化之后,确定写高速缓存器状态的步骤。
22、根据权利要求21所述的方法,其中确定步骤包括以下步骤:
阅读瞬像元数据;
确定包含当前高速缓存数据的高速缓存器行;和
根据与确定的高速缓存器行关联的元数据,确定写高速缓存器状态。
23、一种供存储系统使用以改善系统性能的计算机程序产品,该系统具有一个按数据块存储数据的媒介,其每个数据块与扇区地址相关联,该计算机程序产品包括:
一个计算机可读媒介;
设置在计算机可读媒介上的装置,用于在媒介上提供一个写高速缓存器,所述写高速缓存器具有多个高速缓存储器行,每个高速缓存器行具有多个数据块、行元数据和顺序号,其中所述行元数据具有将写入所述高速缓存器行中数据块上的扇区地址的信息,所述顺序号指示相对于其它高速缓存器行中数据块的所述高速缓存器行中数据块的次序;和
设置在计算机可读媒介上的分段装置,把写高速缓存器中的写数据分段为改善系统性能的顺序写数据。
24、根据权利要求23所述的计算机可读产品,其中分段装置包括以下步骤:
设置在计算机可读媒介上的接收装置,用于接收多个将要写入系统的数据块;
设置在计算机可读媒介上的存储装置,用于将诸多数据块存入一个高速缓存器行中;
设置在计算机可读媒介上的生成装置,用于生成用于高速缓存器行的元数据,元数据包括高速缓存器行的顺序号和数据块的地址;和
设置在计算机可读媒介上的存储装置,用于将元数据存储到高速缓存器行中。
25、根据权利要求24所述的计算机可读产品,还包括:
设置在计算机可读媒介上的计算装置,用于计算高速缓存器行中数据的多个奇偶块;和
设置在计算机可读媒介上的写装置,用于将奇偶块写入高速缓存器行。
26、根据权利要求23所述的计算机可读产品,还包括:
设置在计算机可读媒介上的装置,用于在媒介上提供瞬像区域;和
设置在计算机可读媒介上的装置,用于在数据被写入到写高速缓存器之后,将用于高速缓存器行的元数据拷贝写入瞬像区域中。
27、根据权利要求26所述的计算机可读产品,还包括设置在计算机可读媒介上的确定装置,用于根据瞬像元数据进行初始化之后,确定写高速缓存器状态的步骤。
28、根据权利要求27所述的计算机可读产品,其中所述确定装置包括:
设置在计算机可读媒介上的装置,用于阅读瞬像元数据;
设置在计算机可读媒介上的装置,用于确定包含当前高速缓存数据的高速缓存器行;和
设置在计算机可读媒介上的装置,用于根据与确定的高速缓存器行关联的元数据,确定写高速缓存器状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/330,586 US7010645B2 (en) | 2002-12-27 | 2002-12-27 | System and method for sequentially staging received data to a write cache in advance of storing the received data |
US10/330,586 | 2002-12-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1512353A true CN1512353A (zh) | 2004-07-14 |
Family
ID=32654532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2003101204050A Pending CN1512353A (zh) | 2002-12-27 | 2003-12-11 | 性能改善的数据存储和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7010645B2 (zh) |
JP (1) | JP2004213647A (zh) |
KR (1) | KR100510808B1 (zh) |
CN (1) | CN1512353A (zh) |
TW (1) | TWI233552B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1306381C (zh) * | 2004-08-18 | 2007-03-21 | 华为技术有限公司 | 一种磁盘阵列数据的读写方法及并行读写方法 |
CN100370438C (zh) * | 2004-11-12 | 2008-02-20 | 国际商业机器公司 | 具有超集格式的存储设备及其配置方法 |
CN100465871C (zh) * | 2004-08-17 | 2009-03-04 | 株式会社日立制作所 | 存储装置系统 |
CN101174198B (zh) * | 2006-11-03 | 2011-11-30 | 三星电子株式会社 | 数据存储系统及其数据存取方法 |
CN102598020A (zh) * | 2009-08-28 | 2012-07-18 | 弗森-艾奥公司 | 用于改进的数据去重的装置、系统及方法 |
US8255614B2 (en) | 2009-01-16 | 2012-08-28 | Kabushiki Kaisha Toshiba | Information processing device that accesses memory, processor and memory management method |
WO2013097228A1 (zh) * | 2011-12-31 | 2013-07-04 | 中国科学院自动化研究所 | 多粒度并行存储系统 |
CN103995578A (zh) * | 2013-03-15 | 2014-08-20 | 晶天电子(深圳)有限公司 | 一种具有绿能数据持续模式的器件驱动器 |
CN104778015A (zh) * | 2015-02-04 | 2015-07-15 | 北京神州云科数据技术有限公司 | 一种磁盘阵列性能优化方法及系统 |
CN105359145A (zh) * | 2013-07-11 | 2016-02-24 | 国际商业机器公司 | 在高速缓存行中实现动态阵列数据结构的方法和系统 |
CN105556520A (zh) * | 2013-09-21 | 2016-05-04 | 甲骨文国际公司 | 在存储器中镜像盘中的数据以提高查询性能 |
CN106781168A (zh) * | 2011-05-24 | 2017-05-31 | 韩华泰科株式会社 | 监视系统 |
TWI588824B (zh) * | 2015-12-11 | 2017-06-21 | 捷鼎國際股份有限公司 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
CN107408078A (zh) * | 2015-02-25 | 2017-11-28 | 微软技术许可有限责任公司 | 应用高速缓存热度的自动恢复 |
CN108733507A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 文件备份和恢复的方法和设备 |
CN110659315A (zh) * | 2019-08-06 | 2020-01-07 | 上海孚典智能科技有限公司 | 基于非易失性存储系统的高性能非结构化数据库服务 |
CN114116431A (zh) * | 2022-01-25 | 2022-03-01 | 深圳市明源云科技有限公司 | 系统运行健康检测方法、装置、电子设备及可读存储介质 |
Families Citing this family (218)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197614B2 (en) * | 2002-05-08 | 2007-03-27 | Xiotech Corporation | Method and apparatus for mirroring data stored in a mass storage system |
US7181581B2 (en) * | 2002-05-09 | 2007-02-20 | Xiotech Corporation | Method and apparatus for mirroring data stored in a mass storage system |
JPWO2004051492A1 (ja) * | 2002-11-29 | 2006-04-06 | 富士通株式会社 | 同一の入力値を圧縮する記憶装置 |
JP3974538B2 (ja) * | 2003-02-20 | 2007-09-12 | 株式会社日立製作所 | 情報処理システム |
JP2004265110A (ja) * | 2003-02-28 | 2004-09-24 | Hitachi Ltd | メタデータ配置方法、プログラムおよびディスク装置 |
JP4165747B2 (ja) * | 2003-03-20 | 2008-10-15 | 株式会社日立製作所 | 記憶システム、制御装置及び制御装置のプログラム |
US7114033B2 (en) * | 2003-03-25 | 2006-09-26 | Emc Corporation | Handling data writes copied from a remote data storage device |
US20050015416A1 (en) | 2003-07-16 | 2005-01-20 | Hitachi, Ltd. | Method and apparatus for data recovery using storage based journaling |
US7398422B2 (en) * | 2003-06-26 | 2008-07-08 | Hitachi, Ltd. | Method and apparatus for data recovery system using storage based journaling |
US20050022213A1 (en) | 2003-07-25 | 2005-01-27 | Hitachi, Ltd. | Method and apparatus for synchronizing applications for data recovery using storage based journaling |
US7111136B2 (en) * | 2003-06-26 | 2006-09-19 | Hitachi, Ltd. | Method and apparatus for backup and recovery system using storage based journaling |
JP4124348B2 (ja) * | 2003-06-27 | 2008-07-23 | 株式会社日立製作所 | 記憶システム |
US20050210318A1 (en) * | 2004-03-22 | 2005-09-22 | Dell Products L.P. | System and method for drive recovery following a drive failure |
US7383389B1 (en) * | 2004-04-28 | 2008-06-03 | Sybase, Inc. | Cache management system providing improved page latching methodology |
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US8261122B1 (en) * | 2004-06-30 | 2012-09-04 | Symantec Operating Corporation | Estimation of recovery time, validation of recoverability, and decision support using recovery metrics, targets, and objectives |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US7310711B2 (en) * | 2004-10-29 | 2007-12-18 | Hitachi Global Storage Technologies Netherlands B.V. | Hard disk drive with support for atomic transactions |
US20060206538A1 (en) * | 2005-03-09 | 2006-09-14 | Veazey Judson E | System for performing log writes in a database management system |
US20100161901A9 (en) * | 2005-04-14 | 2010-06-24 | Arm Limited | Correction of incorrect cache accesses |
US9286198B2 (en) | 2005-04-21 | 2016-03-15 | Violin Memory | Method and system for storage of data in non-volatile media |
US7373366B1 (en) | 2005-06-10 | 2008-05-13 | American Megatrends, Inc. | Method, system, apparatus, and computer-readable medium for taking and managing snapshots of a storage volume |
US20060282471A1 (en) * | 2005-06-13 | 2006-12-14 | Mark Timothy W | Error checking file system metadata while the file system remains available |
US20070028051A1 (en) * | 2005-08-01 | 2007-02-01 | Arm Limited | Time and power reduction in cache accesses |
US7533215B2 (en) * | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
WO2007043831A1 (en) | 2005-10-13 | 2007-04-19 | Lg Electronics Inc. | Method and apparatus for encoding/decoding |
JP4766240B2 (ja) * | 2005-11-08 | 2011-09-07 | 日本電気株式会社 | ファイル管理方法、装置、およびプログラム |
US8914557B2 (en) * | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US7752488B2 (en) * | 2006-01-06 | 2010-07-06 | International Business Machines Corporation | Method to adjust error thresholds in a data storage and retrieval system |
US7574565B2 (en) * | 2006-01-13 | 2009-08-11 | Hitachi Global Storage Technologies Netherlands B.V. | Transforming flush queue command to memory barrier command in disk drive |
JP4935182B2 (ja) * | 2006-05-11 | 2012-05-23 | 富士ゼロックス株式会社 | コマンドキューイング制御装置、コマンドキューイングプログラム及びストレージシステム |
US7739576B2 (en) * | 2006-08-31 | 2010-06-15 | Micron Technology, Inc. | Variable strength ECC |
US7711678B2 (en) * | 2006-11-17 | 2010-05-04 | Microsoft Corporation | Software transaction commit order and conflict management |
CN101715575A (zh) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
US8046547B1 (en) | 2007-01-30 | 2011-10-25 | American Megatrends, Inc. | Storage system snapshots for continuous file protection |
US8082407B1 (en) | 2007-04-17 | 2011-12-20 | American Megatrends, Inc. | Writable snapshots for boot consolidation |
US8219749B2 (en) * | 2007-04-27 | 2012-07-10 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US7882304B2 (en) * | 2007-04-27 | 2011-02-01 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US20080276124A1 (en) * | 2007-05-04 | 2008-11-06 | Hetzler Steven R | Incomplete write protection for disk array |
KR101300821B1 (ko) * | 2007-07-04 | 2013-08-26 | 삼성전자주식회사 | 비휘발성 메모리의 데이터 손실을 방지하기 위한 장치 및방법 |
US8127096B1 (en) | 2007-07-19 | 2012-02-28 | American Megatrends, Inc. | High capacity thin provisioned storage server with advanced snapshot mechanism |
US8554734B1 (en) | 2007-07-19 | 2013-10-08 | American Megatrends, Inc. | Continuous data protection journaling in data storage systems |
KR101498673B1 (ko) * | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
US8527454B2 (en) * | 2007-08-29 | 2013-09-03 | Emc Corporation | Data replication using a shared resource |
US8799595B1 (en) | 2007-08-30 | 2014-08-05 | American Megatrends, Inc. | Eliminating duplicate data in storage systems with boot consolidation |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
KR101008032B1 (ko) * | 2007-12-18 | 2011-01-13 | 재단법인서울대학교산학협력재단 | 메타 데이터 관리 시스템 및 방법 |
US8326897B2 (en) | 2007-12-19 | 2012-12-04 | International Business Machines Corporation | Apparatus and method for managing data storage |
US8347029B2 (en) * | 2007-12-28 | 2013-01-01 | Intel Corporation | Systems and methods for fast state modification of at least a portion of non-volatile memory |
KR20090102192A (ko) * | 2008-03-25 | 2009-09-30 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 저장 방법 |
US8725986B1 (en) | 2008-04-18 | 2014-05-13 | Netapp, Inc. | System and method for volume block number to disk block number mapping |
US8799429B1 (en) | 2008-05-06 | 2014-08-05 | American Megatrends, Inc. | Boot acceleration by consolidating client-specific boot data in a data storage system |
US8275970B2 (en) * | 2008-05-15 | 2012-09-25 | Microsoft Corp. | Optimizing write traffic to a disk |
JP5029513B2 (ja) * | 2008-06-30 | 2012-09-19 | ソニー株式会社 | 情報処理装置、情報処理装置の制御方法、およびプログラム |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
US8037033B2 (en) * | 2008-09-22 | 2011-10-11 | Microsoft Corporation | Log manager for aggregating data |
US8806101B2 (en) * | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
US20100205367A1 (en) * | 2009-02-09 | 2010-08-12 | Ehrlich Richard M | Method And System For Maintaining Cache Data Integrity With Flush-Cache Commands |
US8103822B2 (en) * | 2009-04-26 | 2012-01-24 | Sandisk Il Ltd. | Method and apparatus for implementing a caching policy for non-volatile memory |
US8825685B2 (en) | 2009-11-16 | 2014-09-02 | Symantec Corporation | Selective file system caching based upon a configurable cache map |
US8407403B2 (en) * | 2009-12-07 | 2013-03-26 | Microsoft Corporation | Extending SSD lifetime using hybrid storage |
US9003110B2 (en) | 2010-01-13 | 2015-04-07 | International Business Machines Corporation | Dividing incoming data into multiple data streams and transforming the data for storage in a logical data object |
WO2011143628A2 (en) | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
JP4886877B2 (ja) * | 2010-05-31 | 2012-02-29 | 株式会社東芝 | 記録媒体制御装置、及びその方法 |
JP5170169B2 (ja) * | 2010-06-18 | 2013-03-27 | Necシステムテクノロジー株式会社 | ディスクアレイ装置間のリモートコピー処理システム、処理方法、及び処理用プログラム |
US10013354B2 (en) | 2010-07-28 | 2018-07-03 | Sandisk Technologies Llc | Apparatus, system, and method for atomic storage operations |
US8630418B2 (en) | 2011-01-05 | 2014-01-14 | International Business Machines Corporation | Secure management of keys in a key repository |
WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
JP5297479B2 (ja) * | 2011-02-14 | 2013-09-25 | エヌイーシーコンピュータテクノ株式会社 | ミラーリング復旧装置、および、ミラーリング復旧方法 |
US9223511B2 (en) | 2011-04-08 | 2015-12-29 | Micron Technology, Inc. | Data deduplication |
US9396067B1 (en) | 2011-04-18 | 2016-07-19 | American Megatrends, Inc. | I/O accelerator for striped disk arrays using parity |
US8913335B2 (en) * | 2011-05-23 | 2014-12-16 | HGST Netherlands B.V. | Storage device with shingled data and unshingled cache regions |
CN102214153B (zh) * | 2011-06-25 | 2013-03-20 | 北京机械设备研究所 | 一种光电瞄测系统射表数据存储维护方法 |
US8930330B1 (en) | 2011-06-27 | 2015-01-06 | Amazon Technologies, Inc. | Validation of log formats |
US8706834B2 (en) | 2011-06-30 | 2014-04-22 | Amazon Technologies, Inc. | Methods and apparatus for remotely updating executing processes |
US8806588B2 (en) | 2011-06-30 | 2014-08-12 | Amazon Technologies, Inc. | Storage gateway activation process |
US8832039B1 (en) | 2011-06-30 | 2014-09-09 | Amazon Technologies, Inc. | Methods and apparatus for data restore and recovery from a remote data store |
US10754813B1 (en) * | 2011-06-30 | 2020-08-25 | Amazon Technologies, Inc. | Methods and apparatus for block storage I/O operations in a storage gateway |
US9294564B2 (en) | 2011-06-30 | 2016-03-22 | Amazon Technologies, Inc. | Shadowing storage gateway |
US8732401B2 (en) | 2011-07-07 | 2014-05-20 | Atlantis Computing, Inc. | Method and apparatus for cache replacement using a catalog |
US8793343B1 (en) | 2011-08-18 | 2014-07-29 | Amazon Technologies, Inc. | Redundant storage gateways |
US8789208B1 (en) | 2011-10-04 | 2014-07-22 | Amazon Technologies, Inc. | Methods and apparatus for controlling snapshot exports |
US9635132B1 (en) | 2011-12-15 | 2017-04-25 | Amazon Technologies, Inc. | Service and APIs for remote volume-based block storage |
US10133662B2 (en) | 2012-06-29 | 2018-11-20 | Sandisk Technologies Llc | Systems, methods, and interfaces for managing persistent data of atomic storage operations |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US9570124B2 (en) * | 2012-01-11 | 2017-02-14 | Viavi Solutions Inc. | High speed logging system |
US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
CN104303162B (zh) * | 2012-01-12 | 2018-03-27 | 桑迪士克科技有限责任公司 | 用于管理缓存接纳的系统和方法 |
US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
JP2013222434A (ja) * | 2012-04-19 | 2013-10-28 | Nec Corp | キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム |
CN102638584B (zh) * | 2012-04-20 | 2014-11-19 | 青岛海信传媒网络技术有限公司 | 数据分布缓存方法及系统 |
US20130290601A1 (en) * | 2012-04-26 | 2013-10-31 | Lsi Corporation | Linux i/o scheduler for solid-state drives |
US9195578B2 (en) * | 2012-08-24 | 2015-11-24 | International Business Machines Corporation | Systems, methods and computer program products memory space management for storage class memory |
US9277010B2 (en) | 2012-12-21 | 2016-03-01 | Atlantis Computing, Inc. | Systems and apparatuses for aggregating nodes to form an aggregated virtual storage for a virtualized desktop environment |
US9069472B2 (en) | 2012-12-21 | 2015-06-30 | Atlantis Computing, Inc. | Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data |
US9141554B1 (en) | 2013-01-18 | 2015-09-22 | Cisco Technology, Inc. | Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques |
US9471590B2 (en) | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
US9250946B2 (en) | 2013-02-12 | 2016-02-02 | Atlantis Computing, Inc. | Efficient provisioning of cloned virtual machine images using deduplication metadata |
US9372865B2 (en) | 2013-02-12 | 2016-06-21 | Atlantis Computing, Inc. | Deduplication metadata access in deduplication file system |
US9514007B2 (en) | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US11030055B2 (en) | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
US9448877B2 (en) | 2013-03-15 | 2016-09-20 | Cisco Technology, Inc. | Methods and apparatus for error detection and correction in data storage systems using hash value comparisons |
US9501501B2 (en) | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US10180951B2 (en) | 2013-03-15 | 2019-01-15 | Amazon Technologies, Inc. | Place snapshots |
US10747746B2 (en) | 2013-04-30 | 2020-08-18 | Amazon Technologies, Inc. | Efficient read replicas |
US9860332B2 (en) * | 2013-05-08 | 2018-01-02 | Samsung Electronics Co., Ltd. | Caching architecture for packet-form in-memory object caching |
US9317213B1 (en) * | 2013-05-10 | 2016-04-19 | Amazon Technologies, Inc. | Efficient storage of variably-sized data objects in a data store |
US9760596B2 (en) | 2013-05-13 | 2017-09-12 | Amazon Technologies, Inc. | Transaction ordering |
US9208032B1 (en) | 2013-05-15 | 2015-12-08 | Amazon Technologies, Inc. | Managing contingency capacity of pooled resources in multiple availability zones |
US10303564B1 (en) | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
US9305056B1 (en) | 2013-05-24 | 2016-04-05 | Amazon Technologies, Inc. | Results cache invalidation |
US9047189B1 (en) | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
US9460008B1 (en) | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
US9280591B1 (en) | 2013-09-20 | 2016-03-08 | Amazon Technologies, Inc. | Efficient replication of system transactions for read-only nodes of a distributed database |
US10216949B1 (en) | 2013-09-20 | 2019-02-26 | Amazon Technologies, Inc. | Dynamic quorum membership changes |
US9507843B1 (en) | 2013-09-20 | 2016-11-29 | Amazon Technologies, Inc. | Efficient replication of distributed storage changes for read-only nodes of a distributed database |
US9519664B1 (en) | 2013-09-20 | 2016-12-13 | Amazon Technologies, Inc. | Index structure navigation using page versions for read-only nodes |
US10223184B1 (en) | 2013-09-25 | 2019-03-05 | Amazon Technologies, Inc. | Individual write quorums for a log-structured distributed storage system |
US9699017B1 (en) | 2013-09-25 | 2017-07-04 | Amazon Technologies, Inc. | Dynamic utilization of bandwidth for a quorum-based distributed storage system |
US9552242B1 (en) | 2013-09-25 | 2017-01-24 | Amazon Technologies, Inc. | Log-structured distributed storage using a single log sequence number space |
US10387399B1 (en) | 2013-11-01 | 2019-08-20 | Amazon Technologies, Inc. | Efficient database journaling using non-volatile system memory |
US9760480B1 (en) | 2013-11-01 | 2017-09-12 | Amazon Technologies, Inc. | Enhanced logging using non-volatile system memory |
US9880933B1 (en) | 2013-11-20 | 2018-01-30 | Amazon Technologies, Inc. | Distributed in-memory buffer cache system using buffer cache nodes |
US9223843B1 (en) | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
CN104750598B (zh) * | 2013-12-26 | 2017-11-24 | 南京南瑞继保电气有限公司 | 一种iec61850日志服务的存储方法 |
US10303663B1 (en) | 2014-06-12 | 2019-05-28 | Amazon Technologies, Inc. | Remote durable logging for journaling file systems |
KR102368071B1 (ko) | 2014-12-29 | 2022-02-25 | 삼성전자주식회사 | 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템 |
US9853873B2 (en) | 2015-01-10 | 2017-12-26 | Cisco Technology, Inc. | Diagnosis and throughput measurement of fibre channel ports in a storage area network environment |
US9817730B1 (en) * | 2015-03-26 | 2017-11-14 | Amazon Technologies, Inc. | Storing request properties to block future requests |
US9900250B2 (en) | 2015-03-26 | 2018-02-20 | Cisco Technology, Inc. | Scalable handling of BGP route information in VXLAN with EVPN control plane |
US10222986B2 (en) | 2015-05-15 | 2019-03-05 | Cisco Technology, Inc. | Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system |
US9804786B2 (en) | 2015-06-04 | 2017-10-31 | Seagate Technology Llc | Sector translation layer for hard disk drives |
US11588783B2 (en) | 2015-06-10 | 2023-02-21 | Cisco Technology, Inc. | Techniques for implementing IPV6-based distributed storage space |
US9998150B1 (en) * | 2015-06-16 | 2018-06-12 | Amazon Technologies, Inc. | Layered data redundancy coding techniques for layer-local data recovery |
US10977128B1 (en) * | 2015-06-16 | 2021-04-13 | Amazon Technologies, Inc. | Adaptive data loss mitigation for redundancy coding systems |
US10270475B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Layered redundancy coding for encoded parity data |
US10298259B1 (en) | 2015-06-16 | 2019-05-21 | Amazon Technologies, Inc. | Multi-layered data redundancy coding techniques |
US10270476B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Failure mode-sensitive layered redundancy coding techniques |
US9838041B1 (en) * | 2015-06-17 | 2017-12-05 | Amazon Technologies, Inc. | Device type differentiation for redundancy coded data storage systems |
US9838042B1 (en) | 2015-06-17 | 2017-12-05 | Amazon Technologies, Inc. | Data retrieval optimization for redundancy coded data storage systems with static redundancy ratios |
US9866242B1 (en) | 2015-06-17 | 2018-01-09 | Amazon Technologies, Inc. | Throughput optimization for redundancy coded data storage systems |
US9853662B1 (en) | 2015-06-17 | 2017-12-26 | Amazon Technologies, Inc. | Random access optimization for redundancy coded data storage systems |
US9825652B1 (en) | 2015-06-17 | 2017-11-21 | Amazon Technologies, Inc. | Inter-facility network traffic optimization for redundancy coded data storage systems |
US10311020B1 (en) | 2015-06-17 | 2019-06-04 | Amazon Technologies, Inc. | Locality-sensitive data retrieval for redundancy coded data storage systems |
US10009044B1 (en) * | 2015-06-17 | 2018-06-26 | Amazon Technologies, Inc. | Device type differentiation for redundancy coded data storage systems |
US9594512B1 (en) | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
US9959167B1 (en) | 2015-07-01 | 2018-05-01 | Amazon Technologies, Inc. | Rebundling grid encoded data storage systems |
US10394762B1 (en) | 2015-07-01 | 2019-08-27 | Amazon Technologies, Inc. | Determining data redundancy in grid encoded data storage systems |
US9904589B1 (en) | 2015-07-01 | 2018-02-27 | Amazon Technologies, Inc. | Incremental media size extension for grid encoded data storage systems |
US9998539B1 (en) | 2015-07-01 | 2018-06-12 | Amazon Technologies, Inc. | Non-parity in grid encoded data storage systems |
US10198311B1 (en) | 2015-07-01 | 2019-02-05 | Amazon Technologies, Inc. | Cross-datacenter validation of grid encoded data storage systems |
US10162704B1 (en) | 2015-07-01 | 2018-12-25 | Amazon Technologies, Inc. | Grid encoded data storage systems for efficient data repair |
US10108819B1 (en) | 2015-07-01 | 2018-10-23 | Amazon Technologies, Inc. | Cross-datacenter extension of grid encoded data storage systems |
US10089176B1 (en) | 2015-07-01 | 2018-10-02 | Amazon Technologies, Inc. | Incremental updates of grid encoded data storage systems |
US10778765B2 (en) | 2015-07-15 | 2020-09-15 | Cisco Technology, Inc. | Bid/ask protocol in scale-out NVMe storage |
US9928141B1 (en) | 2015-09-21 | 2018-03-27 | Amazon Technologies, Inc. | Exploiting variable media size in grid encoded data storage systems |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
US9940474B1 (en) | 2015-09-29 | 2018-04-10 | Amazon Technologies, Inc. | Techniques and systems for data segregation in data storage systems |
US9658968B1 (en) | 2015-11-09 | 2017-05-23 | International Business Machines Corporation | Implementing hardware accelerator for storage write cache management |
CN105260261B (zh) * | 2015-11-19 | 2018-06-15 | 四川神琥科技有限公司 | 一种邮件恢复方法 |
US10394789B1 (en) * | 2015-12-07 | 2019-08-27 | Amazon Technologies, Inc. | Techniques and systems for scalable request handling in data processing systems |
US9892075B2 (en) | 2015-12-10 | 2018-02-13 | Cisco Technology, Inc. | Policy driven storage in a microserver computing environment |
US10642813B1 (en) | 2015-12-14 | 2020-05-05 | Amazon Technologies, Inc. | Techniques and systems for storage and processing of operational data |
US9785495B1 (en) | 2015-12-14 | 2017-10-10 | Amazon Technologies, Inc. | Techniques and systems for detecting anomalous operational data |
US10248793B1 (en) | 2015-12-16 | 2019-04-02 | Amazon Technologies, Inc. | Techniques and systems for durable encryption and deletion in data storage systems |
US10235402B1 (en) | 2015-12-17 | 2019-03-19 | Amazon Technologies, Inc. | Techniques for combining grid-encoded data storage systems |
US10102065B1 (en) | 2015-12-17 | 2018-10-16 | Amazon Technologies, Inc. | Localized failure mode decorrelation in redundancy encoded data storage systems |
US10324790B1 (en) | 2015-12-17 | 2019-06-18 | Amazon Technologies, Inc. | Flexible data storage device mapping for data storage systems |
US10180912B1 (en) | 2015-12-17 | 2019-01-15 | Amazon Technologies, Inc. | Techniques and systems for data segregation in redundancy coded data storage systems |
US10127105B1 (en) | 2015-12-17 | 2018-11-13 | Amazon Technologies, Inc. | Techniques for extending grids in data storage systems |
US10592336B1 (en) | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
US10678664B1 (en) | 2016-03-28 | 2020-06-09 | Amazon Technologies, Inc. | Hybridized storage operation for redundancy coded data storage systems |
US10366062B1 (en) | 2016-03-28 | 2019-07-30 | Amazon Technologies, Inc. | Cycled clustering for redundancy coded data storage systems |
US10061668B1 (en) | 2016-03-28 | 2018-08-28 | Amazon Technologies, Inc. | Local storage clustering for redundancy coded data storage system |
US10140172B2 (en) | 2016-05-18 | 2018-11-27 | Cisco Technology, Inc. | Network-aware storage repairs |
US20170351639A1 (en) | 2016-06-06 | 2017-12-07 | Cisco Technology, Inc. | Remote memory access using memory mapped addressing among multiple compute nodes |
US10664169B2 (en) | 2016-06-24 | 2020-05-26 | Cisco Technology, Inc. | Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device |
JP6734536B2 (ja) * | 2016-07-29 | 2020-08-05 | 富士通株式会社 | 情報処理装置及びメモリコントローラ |
US11563695B2 (en) | 2016-08-29 | 2023-01-24 | Cisco Technology, Inc. | Queue protection using a shared global memory reserve |
CN107870732B (zh) * | 2016-09-23 | 2020-12-25 | 伊姆西Ip控股有限责任公司 | 从固态存储设备冲刷页面的方法和设备 |
US11137980B1 (en) | 2016-09-27 | 2021-10-05 | Amazon Technologies, Inc. | Monotonic time-based data storage |
US10657097B1 (en) | 2016-09-28 | 2020-05-19 | Amazon Technologies, Inc. | Data payload aggregation for data storage systems |
US10496327B1 (en) | 2016-09-28 | 2019-12-03 | Amazon Technologies, Inc. | Command parallelization for data storage systems |
US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US10810157B1 (en) | 2016-09-28 | 2020-10-20 | Amazon Technologies, Inc. | Command aggregation for data storage operations |
US10437790B1 (en) | 2016-09-28 | 2019-10-08 | Amazon Technologies, Inc. | Contextual optimization for data storage systems |
US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US10909077B2 (en) * | 2016-09-29 | 2021-02-02 | Paypal, Inc. | File slack leveraging |
US10614239B2 (en) | 2016-09-30 | 2020-04-07 | Amazon Technologies, Inc. | Immutable cryptographically secured ledger-backed databases |
US10296764B1 (en) | 2016-11-18 | 2019-05-21 | Amazon Technologies, Inc. | Verifiable cryptographically secured ledgers for human resource systems |
US11269888B1 (en) | 2016-11-28 | 2022-03-08 | Amazon Technologies, Inc. | Archival data storage for structured data |
US10545914B2 (en) | 2017-01-17 | 2020-01-28 | Cisco Technology, Inc. | Distributed object storage |
US10243823B1 (en) | 2017-02-24 | 2019-03-26 | Cisco Technology, Inc. | Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks |
US10713203B2 (en) | 2017-02-28 | 2020-07-14 | Cisco Technology, Inc. | Dynamic partition of PCIe disk arrays based on software configuration / policy distribution |
US10254991B2 (en) | 2017-03-06 | 2019-04-09 | Cisco Technology, Inc. | Storage area network based extended I/O metrics computation for deep insight into application performance |
US10126964B2 (en) * | 2017-03-24 | 2018-11-13 | Seagate Technology Llc | Hardware based map acceleration using forward and reverse cache tables |
US11356445B2 (en) | 2017-03-28 | 2022-06-07 | Amazon Technologies, Inc. | Data access interface for clustered devices |
US10621055B2 (en) | 2017-03-28 | 2020-04-14 | Amazon Technologies, Inc. | Adaptive data recovery for clustered data devices |
US10530752B2 (en) | 2017-03-28 | 2020-01-07 | Amazon Technologies, Inc. | Efficient device provision |
US10176046B1 (en) * | 2017-06-29 | 2019-01-08 | EMC IP Holding Company LLC | Checkpointing of metadata into user data area of a content addressable storage system |
US10303534B2 (en) | 2017-07-20 | 2019-05-28 | Cisco Technology, Inc. | System and method for self-healing of application centric infrastructure fabric memory |
US10404596B2 (en) | 2017-10-03 | 2019-09-03 | Cisco Technology, Inc. | Dynamic route profile storage in a hardware trie routing table |
US10942666B2 (en) | 2017-10-13 | 2021-03-09 | Cisco Technology, Inc. | Using network device replication in distributed storage clusters |
US11914571B1 (en) | 2017-11-22 | 2024-02-27 | Amazon Technologies, Inc. | Optimistic concurrency for a multi-writer database |
JP2020144534A (ja) | 2019-03-05 | 2020-09-10 | キオクシア株式会社 | メモリ装置およびキャッシュ制御方法 |
US11847333B2 (en) * | 2019-07-31 | 2023-12-19 | EMC IP Holding Company, LLC | System and method for sub-block deduplication with search for identical sectors inside a candidate block |
CN112578996B (zh) * | 2019-09-30 | 2024-06-04 | 华为云计算技术有限公司 | 一种存储系统的元数据的发送方法及存储系统 |
US11341163B1 (en) | 2020-03-30 | 2022-05-24 | Amazon Technologies, Inc. | Multi-level replication filtering for a distributed database |
US11403189B2 (en) * | 2020-05-08 | 2022-08-02 | Vmware, Inc. | System and method of resyncing data in erasure-coded objects on distributed storage systems without requiring checksum in the underlying storage |
US11429498B2 (en) | 2020-05-08 | 2022-08-30 | Vmware, Inc. | System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout |
US11379318B2 (en) | 2020-05-08 | 2022-07-05 | Vmware, Inc. | System and method of resyncing n-way mirrored metadata on distributed storage systems without requiring checksum in the underlying storage |
US11494090B2 (en) | 2020-09-25 | 2022-11-08 | Vmware, Inc. | Systems and methods of maintaining fault tolerance for new writes in degraded erasure coded distributed storage |
CN112306811A (zh) * | 2020-11-09 | 2021-02-02 | 重庆易宠科技有限公司 | 一种php微服务控制方法、系统、终端及介质 |
US11995085B2 (en) * | 2022-02-25 | 2024-05-28 | Visa International Service Association | System, method, and computer program product for efficiently storing multi-threaded log data |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
DE19506278A1 (de) * | 1995-02-23 | 1996-08-29 | Hoechst Ag | Verfahren zur Herstellung aromatischer Amine |
US6021408A (en) | 1996-09-12 | 2000-02-01 | Veritas Software Corp. | Methods for operating a log device |
US5996054A (en) * | 1996-09-12 | 1999-11-30 | Veritas Software Corp. | Efficient virtualized mapping space for log device data storage system |
US6148368A (en) * | 1997-07-31 | 2000-11-14 | Lsi Logic Corporation | Method for accelerating disk array write operations using segmented cache memory and data logging |
US6016553A (en) | 1997-09-05 | 2000-01-18 | Wild File, Inc. | Method, software and apparatus for saving, using and recovering data |
US6112277A (en) | 1997-09-25 | 2000-08-29 | International Business Machines Corporation | Method and means for reducing device contention by random accessing and partial track staging of records according to a first DASD format but device mapped according to a second DASD format |
US6578041B1 (en) * | 2000-06-30 | 2003-06-10 | Microsoft Corporation | High speed on-line backup when using logical log operations |
US6539460B2 (en) * | 2001-01-19 | 2003-03-25 | International Business Machines Corporation | System and method for storing data sectors with header and trailer information in a disk cache supporting memory compression |
US6516380B2 (en) | 2001-02-05 | 2003-02-04 | International Business Machines Corporation | System and method for a log-based non-volatile write cache in a storage controller |
-
2002
- 2002-12-27 US US10/330,586 patent/US7010645B2/en not_active Expired - Lifetime
-
2003
- 2003-12-01 TW TW092133679A patent/TWI233552B/zh not_active IP Right Cessation
- 2003-12-05 KR KR10-2003-0087882A patent/KR100510808B1/ko not_active IP Right Cessation
- 2003-12-11 CN CNA2003101204050A patent/CN1512353A/zh active Pending
- 2003-12-18 JP JP2003421669A patent/JP2004213647A/ja active Pending
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100465871C (zh) * | 2004-08-17 | 2009-03-04 | 株式会社日立制作所 | 存储装置系统 |
CN1306381C (zh) * | 2004-08-18 | 2007-03-21 | 华为技术有限公司 | 一种磁盘阵列数据的读写方法及并行读写方法 |
CN100370438C (zh) * | 2004-11-12 | 2008-02-20 | 国际商业机器公司 | 具有超集格式的存储设备及其配置方法 |
CN101174198B (zh) * | 2006-11-03 | 2011-11-30 | 三星电子株式会社 | 数据存储系统及其数据存取方法 |
US8255614B2 (en) | 2009-01-16 | 2012-08-28 | Kabushiki Kaisha Toshiba | Information processing device that accesses memory, processor and memory management method |
CN101782871B (zh) * | 2009-01-16 | 2013-02-13 | 株式会社东芝 | 信息处理装置、处理器及存储器管理方法 |
CN102598020B (zh) * | 2009-08-28 | 2016-12-21 | 桑迪士克科技有限责任公司 | 用于改进的数据去重的装置、系统及方法 |
CN102598020A (zh) * | 2009-08-28 | 2012-07-18 | 弗森-艾奥公司 | 用于改进的数据去重的装置、系统及方法 |
CN106781168B (zh) * | 2011-05-24 | 2019-11-29 | 韩华泰科株式会社 | 监视系统 |
CN106781168A (zh) * | 2011-05-24 | 2017-05-31 | 韩华泰科株式会社 | 监视系统 |
US9171593B2 (en) | 2011-12-31 | 2015-10-27 | Institute Of Automation, Chinese Academy Of Sciences | Multi-granularity parallel storage system |
WO2013097228A1 (zh) * | 2011-12-31 | 2013-07-04 | 中国科学院自动化研究所 | 多粒度并行存储系统 |
CN103995578A (zh) * | 2013-03-15 | 2014-08-20 | 晶天电子(深圳)有限公司 | 一种具有绿能数据持续模式的器件驱动器 |
CN103995578B (zh) * | 2013-03-15 | 2017-10-24 | 晶天电子(深圳)有限公司 | 一种具有数据持续模式的器件驱动器 |
CN105359145A (zh) * | 2013-07-11 | 2016-02-24 | 国际商业机器公司 | 在高速缓存行中实现动态阵列数据结构的方法和系统 |
CN105556520B (zh) * | 2013-09-21 | 2019-08-13 | 甲骨文国际公司 | 在存储器中镜像盘中的数据以提高查询性能 |
CN110334102A (zh) * | 2013-09-21 | 2019-10-15 | 甲骨文国际公司 | 在存储器中镜像盘中的数据以提高查询性能 |
CN105556520A (zh) * | 2013-09-21 | 2016-05-04 | 甲骨文国际公司 | 在存储器中镜像盘中的数据以提高查询性能 |
CN110334102B (zh) * | 2013-09-21 | 2023-07-14 | 甲骨文国际公司 | 在存储器中镜像盘中的数据以提高查询性能的方法、计算机可读介质、装置和计算设备 |
CN104778015A (zh) * | 2015-02-04 | 2015-07-15 | 北京神州云科数据技术有限公司 | 一种磁盘阵列性能优化方法及系统 |
CN107408078A (zh) * | 2015-02-25 | 2017-11-28 | 微软技术许可有限责任公司 | 应用高速缓存热度的自动恢复 |
CN107408078B (zh) * | 2015-02-25 | 2020-11-24 | 微软技术许可有限责任公司 | 应用高速缓存热度的自动恢复 |
TWI588824B (zh) * | 2015-12-11 | 2017-06-21 | 捷鼎國際股份有限公司 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
CN108733507A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 文件备份和恢复的方法和设备 |
CN108733507B (zh) * | 2017-04-17 | 2021-10-08 | 伊姆西Ip控股有限责任公司 | 文件备份和恢复的方法和设备 |
CN110659315A (zh) * | 2019-08-06 | 2020-01-07 | 上海孚典智能科技有限公司 | 基于非易失性存储系统的高性能非结构化数据库服务 |
CN110659315B (zh) * | 2019-08-06 | 2020-11-20 | 上海孚典智能科技有限公司 | 基于非易失性存储系统的高性能非结构化数据库服务 |
CN114116431A (zh) * | 2022-01-25 | 2022-03-01 | 深圳市明源云科技有限公司 | 系统运行健康检测方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20040128470A1 (en) | 2004-07-01 |
US7010645B2 (en) | 2006-03-07 |
KR20040060732A (ko) | 2004-07-06 |
KR100510808B1 (ko) | 2005-08-30 |
TWI233552B (en) | 2005-06-01 |
JP2004213647A (ja) | 2004-07-29 |
TW200502767A (en) | 2005-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1512353A (zh) | 性能改善的数据存储和方法 | |
CN1234071C (zh) | 对不完全raid盘写进行可靠故障转移的方法和设备 | |
CN1174318C (zh) | 盘存储装置的数据更新方法和盘存储控制装置 | |
US9411717B2 (en) | Metadata journaling with error correction redundancy | |
CN1097774C (zh) | 带有空闲块奇偶校验高速缓存的第五级raid | |
EP2353081B1 (en) | Managing cache data and metadata | |
US9026764B2 (en) | Memory system performing wear leveling based on deletion request | |
CN1191518C (zh) | 用于分级存储管理系统的转换廉价磁盘冗余阵列 | |
US9146877B2 (en) | Storage system capable of managing a plurality of snapshot families and method of snapshot family based read | |
US6151685A (en) | System and method for recovering a segment directory for a log structured array | |
EP2329360B1 (en) | Managing cache data and metadata | |
CN1159651C (zh) | 对数据存储库中的具有冗余拷贝的数据卷的平衡存取 | |
CN1679000A (zh) | 在raid数据重建和转移中使用文件系统信息 | |
US6338115B1 (en) | Advanced read cache management | |
CN107656875B (zh) | 作为系统盘的固态硬盘缩短上电时间的方法及系统 | |
JP3682256B2 (ja) | ディスクアレイ装置及び同装置におけるパリティ処理方法 | |
US20150347310A1 (en) | Storage Controller and Method for Managing Metadata in a Cache Store | |
US10621057B2 (en) | Intelligent redundant array of independent disks with resilvering beyond bandwidth of a single drive | |
CN104050094A (zh) | 管理高速缓存存储区的系统、方法和计算机可读介质 | |
CN1900919A (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
KR20150105323A (ko) | 데이터 스토리지 방법 및 시스템 | |
JP2009211232A (ja) | メモリシステム | |
CN105302744A (zh) | 高速缓存器的无效数据区 | |
JPH06505584A (ja) | キャッシュメモリ | |
CN1818877A (zh) | 元数据复制和复原的方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |