CN103703440A - 预取用于使更新轨道离台的数据轨道和奇偶校验数据 - Google Patents
预取用于使更新轨道离台的数据轨道和奇偶校验数据 Download PDFInfo
- Publication number
- CN103703440A CN103703440A CN201280036319.9A CN201280036319A CN103703440A CN 103703440 A CN103703440 A CN 103703440A CN 201280036319 A CN201280036319 A CN 201280036319A CN 103703440 A CN103703440 A CN 103703440A
- Authority
- CN
- China
- Prior art keywords
- track
- access memory
- memory device
- sequential access
- cache device
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
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)
Abstract
提供了一种用于预取用于使更新轨道离台的数据轨道和奇偶校验数据的计算机程序产品、系统和方法。接收对轨道组的包含至少一个更新轨道的写入请求。所述至少一个更新轨道被存储在第一高速缓存设备中。预取请求被发送至至少一个顺序存取存储设备,以将所述轨道组中的轨道预取至第二高速缓存设备。在发送预取请求之后,读取请求被生成以读取预取轨道。从第二高速缓存设备返回至所述读取请求的、所读取的预取轨道被存储在第一高速缓存设备中。从所述至少一个更新轨道和所读取的预取轨道计算新的奇偶校验数据。
Description
技术领域
本发明涉及一种预取用于使更新轨道离台的数据轨道和奇偶校验数据的计算机程序产品、系统和方法。
背景技术
在独立磁盘冗余阵列(RAID)存储系统中,来自文件的数据被存储在跨不同的磁盘驱动而分布的轨道中。步幅(stride)包括轨道和从跨磁盘驱动而条带状分布(stripe)的轨道计算的奇偶校验数据。RAID控制器使轨道跨被配置为RAID设备的磁盘而条带状分布,同时将所述轨道写入磁盘,计算被写入一个或多个磁盘的奇偶校验(或校验和)值。所述奇偶校验数据可以通过多个磁盘上的用户数据而条带状分布或交织。利用所述奇偶校验,如果一个或多个磁盘出现故障,则故障磁盘上的数据可以用算法恢复,所述算法结合奇偶校验数据和幸存磁盘上的数据以重建故障磁盘上的数据。
当存储控制器接收到对RAID步幅中的一个或多个轨道的写入时,更新轨道被存储在高速缓存中,直到决定将更新轨道离台(destage)至步幅被条带状分布所跨的一个或多个存储设备为止。如果在包含更新轨道的步幅中不是所有轨道都被保持在高速缓存中,则RAID控制器需要读取除更新轨道之外的旧轨道、以及旧的奇偶校验数据,以便将包含更新轨道的整个步幅重写至磁盘,并计算新的奇偶校验以在数据轨道被写入时写入。因此,当存储控制器准备离台时,其需要执行额外的读取,并且直到所要求的旧轨道和旧的奇偶校验被读取时才能执行离台操作。所述RAID控制器必须读取旧的数据轨道和旧的奇偶校验数据,然后将旧轨道和更新轨道相比较,更新奇偶校验数据,再然后将整个步幅和数据写入回至磁盘驱动。
发明内容
提供了一种预取用于使更新轨道离台的数据轨道和奇偶校验数据的计算机程序产品、系统和方法。接收对轨道组的包含至少一个更新轨道的写入请求。所述至少一个更新轨道被存储在第一高速缓存设备中。预取请求被发送至至少一个顺序存取存储设备,以将轨道组中的轨道预取至第二高速缓存设备。在发送预取请求之后生成读取请求,以读取预取轨道。从第二高速缓存设备返回至所述读取请求的所读取的预取轨道被存储在第一高速缓存设备中。从所述至少一个更新轨道和所读取的预取轨道计算新的奇偶校验数据。
优选地,提供了一种系统,包括:具有多个顺序存取存储设备的存储装置,其中轨道的步幅和奇偶校验数据跨所述顺序存取存储设备而条带状分布,其中顺序存取存储设备各自具有非易失性存储设备、与该存储装置通信的存储控制器,其包括:处理器、高速缓存设备、在其上包含由处理器运行以执行操作的计算机可读程序代码的计算机可读存储介质,所述操作包括:接收对被请求的步幅轨道的包含至少一个更新轨道的写入请求;在高速缓存设备中存储所述至少一个更新轨道;发送预取请求至至少一个所述顺序存取存储设备,以将被请求的步幅中的轨道预取至预取请求被发送至的每个顺序存取存储设备中的非易失性存储设备;在发送预取请求之后,为预取请求被发送至的每个顺序存取存储设备生成读取请求,以读取预取轨道;将从非易失性存储设备返回至所述读取请求的、所读取的预取轨道存储在高速缓存设备中;以及从所述至少一个更新轨道和所读取的预取轨道计算新的奇偶校验数据。
附图说明
现在,将参考如以下附图中所图示的本发明的优选实施例,仅通过示例来描述本发明:
图1图示了计算环境的实施例;
图2图示了第一高速缓存管理信息的实施例;
图3图示了第二高速缓存管理信息的实施例;
图4图示了顺序存取存储设备的实施例;
图5图示了第一高速缓存控制块的实施例;
图6图示了第二高速缓存控制块的实施例;
图7图示了非易失性存储高速缓存控制块的实施例;
图8图示了空间索引条目的实施例;
图9图示了具有顺序存取存储设备的存储装置的实施例;
图10图示了存储系统RAID配置信息的实施例;
图11图示了预取请求的实施例;
图12图示了处理包括对轨道组(如步幅)的更新轨道的写入请求、并使更新轨道离台的操作的实施例;
图13和图14图示了处理读取请求以读取预取轨道的操作的实施例。
具体实施方式
图1图示了计算环境的实施例。多个主机2a、2b…2n可以通过网络6向存储控制器4提交输入/输出(I/O)请求以存取存储装置10中卷8(例如,逻辑单元号、逻辑设备、逻辑子系统等)的数据。所述存储控制器4包括处理器复合体12(其包括一个或多个具有单个或多个核心的处理器)、第一高速缓存14、用以备份高速缓存14中的轨道的第一高速缓存备份设备16、以及第二高速缓存18。第一高速缓存14和第二高速缓存18缓存在主机2a、2b…2n和存储装置10之间转移的数据。第一高速缓存备份设备16可提供第一高速缓存14中的轨道的非易失性存储。在另外的实施例中,第一高速缓存备份设备16可以位于与第一高速缓存14不同的电源边界(power boundary)上的集群或硬件中。
所述存储控制器4具有:存储器20,其包括用于管理在主机2a、2b…2n和存储装置10之间转移的轨道的转移的存储管理器22、和管理在第一高速缓存14、第一高速缓存备份设备16和第二高速缓存18中的、在主机2a、2b…2n和存储装置10之间转移的数据的高速缓存管理器24。轨道可以包括在存储装置10中配置的任意数据单元,诸如轨道、逻辑块地址(LBA)等,其是诸如卷、逻辑设备等的更大的轨道组的一部分。高速缓存管理器24维持第一高速缓存管理信息26和第二高速缓存管理信息28,以管理第一高速缓存14和第二高速缓存18中的读取(未被修改)和写入(被修改)轨道。第一高速缓存备份设备索引30提供了对于第一高速缓存备份设备16中的位置的轨道标识符的索引。
存储管理器22和高速缓存管理器24在图1中所示为被加载到存储器20并由处理器复合体12运行的程序代码。或者,一些或所有功能可以在存储控制器4中的硬件设备中实现,诸如在专用集成电路(ASIC)中。
第二高速缓存18可以在日志结构阵列(LSA)32中存储轨道,其中轨道以被接收的顺序次序被写入,由此提供了轨道被写入第二高速缓存18的时间次序。在LSA中,已经出现在LSA中的轨道的之后版本被写入LSA32的端部。在另外的实施例中,第二高速缓存18可以用除了LSA中的格式之外的格式存储数据。
存储器20还包括存储装置RAID配置信息36,其提供了有关对于存储装置10的RAID配置的信息,该信息被存储管理器22用于确定如何形成写入存储系统10的步幅,其中所述步幅中的轨道跨存储系统10的存储设备而条带状分布。在这样的RAID实施例中,存储管理器22可以实现RAID控制器操作。
在一个实施例中,第一高速缓存14可以包括随机存取存储器(RAM),诸如动态随机存取存储器(DRAM),第二高速缓存18可以包括闪存,诸如固态器件,并且,存储装置10包括一个或多个顺序存取存储设备,诸如硬盘驱动和磁带。存储装置10可以包括单个顺序存取存储设备、或可以包括存储设备阵列,诸如简单磁盘捆绑(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)阵列、虚拟化设备等。在一个实施例中,第一高速缓存14是比第二高速缓存18更快的存取设备,第二高速缓存18是比存储装置10更快的存取设备。而且,第一高速缓存14可能具有比第二高速缓存18更高的单位存储成本,第二高速缓存18可能具有比存储装置10中的存储设备更高的单位存储成本。
第一高速缓存14可以是存储器20的一部分或在诸如DRAM的单独的存储器设备中实现。在一个实施例中,第一高速缓存备份设备16可以包括非易失性备份存储装置(NVS),诸如非易失性存储器,例如,电池备份随机存取存储器(RAM)、静态RAM(SRAM)等。
网络6可以包括存储区域网络(SAN)、局域网络(LAN)、广域网络(WAN)、因特网和内部网,等等。
图2图示了第一高速缓存管理信息26的实施例,其包括:轨道索引50,其向控制块目录52中的控制块提供第一高速缓存14中的轨道的索引;未被修改的顺序LRU列表54,其提供第一高速缓存14中的未被修改的顺序轨道的时间次序;被修改的LRU列表56,其提供第一高速缓存14中的被修改的顺序和非顺序轨道的时间次序;以及未被修改的非顺序LRU列表58,其提供第一高速缓存14中未被修改的非顺序轨道的时间次序。
在某些实施例中,一旦确定第一高速缓存备份设备16是满的,则被修改的LRU列表56被用于使被修改的轨道从第一高速缓存14离台,使得那些轨道在第一高速缓存备份设备16中的拷贝可以被丢弃,从而在第一高速缓存备份设备16中为新的被修改的轨道腾出空间。
图3图示了第二高速缓存管理信息28的实施例,其包括:轨道索引70,其向控制块目录72中的控制块提供第二高速缓存18中的轨道的索引;未被修改的列表74,其提供第二高速缓存18中的未被修改的轨道的时间次序;以及空间索引76,其基于被修改的轨道在存储装置10中存储的物理位置,提供第二高速缓存18中的被修改的轨道的空间次序。
所有LRU列表54、56、58和74都可以包括根据被识别的轨道上次被存取的时间而排序的第一高速缓存14和第二高速缓存18中的轨道的轨道ID。LRU列表54、56、58和74具有指示最近被存取的轨道的最近使用的(MRU)端、和指示最近最少使用或存取的轨道的LRU端。将添加至高速缓存14和18的轨道的轨道ID添加至LRU列表的MRU端,而从LRU端存取从高速缓存14和18降级(demote)的轨道。轨道索引50和70和空间索引76可以包括散点(scatter)索引表(SIT)。替代的类型数据结构可以被用于提供高速缓存14和18中的轨道的时间次序以及第二高速缓存18中的轨道的空间次序。
非顺序轨道可以包括联机事务处理(OLTP)轨道,其通常包括不完全随机且具有一些引用的地方(some locality of reference)(即,具有被重复存取的可能性)的小块写入。
图4图示了顺序存取存储设备100的实施例,其中存储装置10可以由一个或多个顺序存取存储设备100实现。顺序存取存储设备100包括示出为I/O管理器102的控制逻辑、用以缓冲被修改的数据的非易失性存储设备104、和存储器106,存储器106包括:轨道索引108,其向控制块目录110中的控制块提供非易失性存储设备104中的轨道的索引的;空间索引112,其提供非易失性存储设备104中的轨道(读取和写入)在顺序存取存储介质114中存储将被读取或写入的轨道的物理位置上的空间次序;以及请求队列116,在其中读取和写入请求被排队。请求队列116中的条目可以识别请求的类型(读取或写入)和被请求的轨道,被请求的轨道在顺序存取存储介质114上的位置可以从空间索引112确定。I/O管理器102将读取和写入请求添加到请求队列112,并从请求队列112存取读取和写入请求以针对顺序存取存储介质114执行。I/O管理器102可以发送命令至读取/写入控制单元118,其生成控制信号,以将一个或多个具有读取/写入头120的致动器(actuator)移动到数据在顺序存取存储介质114上可以被读取或写入的位置。
存储器106还包括优先级读取队列122,用以缓冲高优先级的读取请求。较低的或不高的优先级的读取请求被添加到请求队列116。存储控制器4可以在被提交到顺序存取存储设备100的读取请求的报头字段中指示该读取请求的优先级。在某些实施例中,优先级读取队列122和请求队列116中的读取请求基于时间次序或它们被添加到队列116和122的次序被读取,其中所述队列可以包括LRU队列。离台请求基于写入请求被接收的时间次序被添加到请求队列116。基于空间索引112处理非易失性存储设备104中的被修改的轨道和请求队列116中的读取请求,所以当在请求队列116中处理离台或读取请求时,基于读取/写入头120的当前位置,使用空间索引112选择将被离台或读取的轨道。由此,虽然读取请求和离台请求根据时间次序被添加到请求队列116,但是它们在请求队列116中基于它们在顺序存取存储介质114中相对于读取/写入头120的位置而被处理,以最小化读取/写入头120搜寻和介质114旋转以存取将被读取或写入的轨道位置的时间。
设备100中的缓冲器124可以临时缓冲读取和写入输入请求和被返回至读取请求的数据。缓冲器124也可以用于临时缓冲对于不在非易失性存储设备中维持的写入请求(诸如,对于顺序写入请求和它们被修改的数据)的被修改的轨道。缓冲器124可以在非易失性存储设备104之外的单独的设备中,并且可以包括比非易失性存储设备104中可用的存储空间更小的存储空间。或者,一些或所有缓冲器124可以在非易失性存储设备中实现。
非易失性存储装置(NVS)LRU列表126提供对于非易失性存储设备104中缓冲的轨道的LRU队列,其包括要写入顺序存取存储介质114的被修改的轨道和预取轨道。NVS LRU列表126可以用于确定在非易失性存储设备104中的空间需要被释放的情况下从非易失性存储设备104移除的轨道。
顺序存取存储介质114可以包括用于硬盘驱动设备的一个或多个硬盘驱动盘片、或磁带。在某些实施例中,非易失性存储设备104可以包括闪存设备(其包含固态存储装置)。在某些实施例中,在包括顺序存取存储设备100的部件的附件(enclosure)内,在顺序存取存储设备100的电路板上实现非易失性存储设备104(例如闪存)。例如,可以包括8GB闪存设备。
I/O管理器102的一些或所有功能可以实现为由顺序存取存储设备100中的处理器运行的代码。或者,I/O管理器102的一些或所有功能可以在顺序存取存储设备100上的ASIC中实现。
在顺序存取存储设备100包括非易失性存储设备104的一个实施例中,存储控制器4可以仅包括第一高速缓存14,而不包括第二高速缓存18,因为第二级高速缓存实现为顺序存取存储设备100中的非易失性存储设备104。而且,在存储控制器4包括第一高速缓存14和第二高速缓存18的实施例中,顺序存取存储设备100可以包括或可以不包括非易失性存储设备104。
图5图示了控制块目录52中的第一高速缓存控制块150条目的实施例,其包括控制块标识符(ID)152、轨道在第一高速缓存14中的物理位置的第一高速缓存位置154、指示所述轨道被修改或未被修改的信息156、以及指示所述轨道是顺序或非顺序存取的信息158。
图6图示了第二高速缓存控制块目录72中的第二高速缓存控制块160条目的实施例,其包括控制块标识符(ID)162和轨道在LSA32中所处的LSA位置164。在某些实施例中,第二高速缓存控制块160还可以包括预取标志166,其指示所述轨道是否用于预取操作,以便预取轨道可以在第二高速缓存18中被维持更久以可用于将需要预取轨道的读取。未被修改的LRU列表74可以识别从第一高速缓存14被降级且提升至第二高速缓存18的未被修改的非顺序轨道、以及从存储装置10读取以预取用于接下来的操作的预取轨道。
图7图示了非易失性存储设备104的控制块目录110中的非易失性存储控制块170条目的实施例,其包括控制块标识符(ID)172和轨道所处的物理位置174,诸如,如果所述轨道被存储在非易失性存储设备上的LSA中则为LSA位置。在某些实施例中,非易失性存储控制块170可以包括预取标志176,其指示所述轨道是否被从顺序存取存储介质114中读取并置于非易失性存储设备104中而作为预取操作的一部分。在某些实施例中,作为预取操作的一部分而从顺序存取存储介质114中读取的轨道可以在被移除以释放空间之前在非易失性存储设备104中被维持更久。
图8图示了空间索引条目180,其包括非易失性存储设备104中的轨道的轨道标识符182、和将被读取或写入的轨道在顺序存取存储介质114中被存储的物理位置184(诸如柱面(cylinder)、盘片号、柱面上角位置等)。
在实施例中,请求队列116可以包括基于数据在顺序存取存储介质上的位置的空间次序选择用于处理的低优先级读取请求和写入请求。当顺序存取存储设备100包括硬盘驱动且顺序存取存储介质114包括磁盘时,空间索引112指示轨道在磁盘上的柱面。为了确定请求队列116中能够以最少的时间从读取/写入头120的当前位置存取的轨道,I/O管理器102可以分析空间索引112中将被读取或写入的轨道的柱面和角位置,以估计读取/写入头120搜寻到轨道的柱面和旋转读取/写入头之下的磁盘以到达所要求的轨道的角位置的时间。接着,I/O管理器可以选择请求队列116中具有最小估计存取时间的轨道。
优先级读取队列122可以包括高优先级读取请求,并且优先级读取队列122中的请求可以以比请求队列116中的请求更高的优先级被处理。
在其它实施例中,顺序存取存储设备114可以包括具有多个磁盘盘片和用于写入各个盘片的多个写入头的硬盘驱动。I/O管理器102可以确定从写入头的当前位置搜寻和旋转到每个磁盘盘片上的每个被修改的轨道的估计时间,以选择具有最小估计时间的被修改的轨道以跨磁盘盘片而进行存取。
在替代实施例中,请求队列116中的较低优先级请求可以根据被要求的轨道的时间次序(而不仅仅是空间次序)被处理。
另外,如果I/O管理器104确定需要执行离台操作以使非易失性存储设备104中的被修改的轨道离台至顺序存取存储介质114以释放非易失性存储设备104中的空间,则离台操作可以中断对优先级读取队列122和请求队列116中的请求的处理。
图9图示了图1的存储装置10的实施例,其包括顺序存取存储设备200的阵列,其中每个顺序存取存储设备200可以包括顺序存取存储设备100或其它顺序存取存储设备。存储管理器22可以包括RAID控制器以跨顺序存取存储设备200而条带状分布步幅中的轨道和奇偶校验数据。
图10图示了存储装置RAID配置36的实施例,其被维持以确定如何形成第一高速缓存14中的被修改的轨道离台至存储装置10的步幅。RAID级别230指示使用的RAID配置,存储用户数据的轨道的数据磁盘(m)232的数目、以及存储从数据磁盘522计算的奇偶校验的奇偶校验磁盘(p)234的数目(其中p可以是一个或多个)指示用于存储所计算的奇偶校验块的磁盘的数目。来自第一高速缓存14的轨道的步幅可以跨存储系统10中的磁盘200而条带状分布。在替代实施例中,所述轨道和任意奇偶校验数据可以以组被排列,所述组不局限于RAID步幅,而可以是用于对数据进行分组以跨磁盘而写入的其它组类型。
图11图示了预取请求250的实施例,其包括预取请求252操作代码、指示顺序存取存储介质114中开始预取的起始轨道的轨道地址254、以及指示预取开始的转移长度256。
图12图示了由存储管理器22和高速缓存管理器24执行的操作的实施例,其管理具有对于跨顺序存取存储设备200而条带状分布的步幅中的轨道的更新轨道的写入请求。一旦接收到(在块300)包括更新轨道的写入请求,存储管理器22可以将更新轨道存储(在块302)在第一高速缓存14、或第一高速缓存设备中。因为稍后需要步幅中的其它轨道和奇偶校验数据以使更新轨道离台以便为该步幅计算新的奇偶校验,所以存储管理器22对于每个非顺序存取存储设备100生成(在块304)包括至少一个顺序存取存储设备中的轨道和奇偶校验数据至第二高速缓存设备的预取请求250。所述预取轨道可以包括步幅中除了由写入请求更新的轨道之外的轨道、和用于该步幅的奇偶校验数据。在一个实施例中,第二高速缓存设备可以包括存储控制器4中的第二高速缓存18、或者可以替代地包括顺序存取存储设备100中的非易失性存储设备104(图4)。
高速缓存管理器24可以发起(在块306)使第一高速缓存14中的更新轨道离台的操作以便释放第一高速缓存14中的空间。在这种情况下,存储管理器22接着可能需要存取预取轨道以便写入条带状的所有轨道(其包括更新轨道),并计算用于该步幅的奇偶校验。为了获取旧的轨道和旧的奇偶校验,存储管理器22生成(在块308)至少一个读取请求,以读取来自第二高速缓存设备(第二高速缓存18或非易失性存储设备104)的预取轨道。所读取的从第二高速缓存设备18、104返回到读取请求的预取轨道被存储(在块310)在第一高速缓存设备14中。存储管理器22从至少一个更新轨道和所读取的预取轨道(包括奇偶校验数据)计算(在块312)新的奇偶校验数据,并使包括更新轨道和所读取的预取轨道的轨道步幅和新的奇偶校验数据离台(在块314)至至少一个顺序存取存储设备200。
在一个实施例中,当轨道被跨顺序存取存储设备200而条带状分布时,存储管理器22可以根据RAID算法(诸如RAID5或某个其它RAID级别)计算奇偶校验数据。
图13图示了当第一和第二高速缓存设备分别包括存储控制器4中的第一高速缓存14和第二高速缓存18时、高速缓存管理器24处理来自存储管理器22的读取请求的操作的实施例。在图13的实施例中,顺序存取存储设备100可以包括或可以不包括非易失性存储设备104。一旦处理(在块350)读取请求,高速缓存管理器24(或存储管理器22)就确定(在块352)预取轨道是否在第二高速缓存18中。当与更新轨道结合时,如果(在块354)第二高速缓存18中的一些或所有预取轨道被需要以形成全步幅,则高速缓存管理器24将预取轨道从第二高速缓存18提升(在块356)至第一高速缓存14,用于预取第二高速缓存18中的轨道。如果(在块358)在第二高速缓存18中没有为了形成步幅而所需要的一些预取轨道、或者在第二高速缓存18中没有预取轨道(从块354的“否”分支),则高速缓存管理器24传送(在块360)读取请求至具有不在第二高速缓存18中的预取轨道的每个顺序存取存储设备200。响应于被传送至顺序存取存储设备的读取请求而从顺序存取存储设备200返回的预取轨道被存储(在块362)在第一高速缓存14中。在图13的实施例中,顺序存取存储设备200可以包括或可以不包括非易失性存储设备104。
一旦步幅(或组)中的所有轨道都在第一高速缓存14中(其包括旧的预取轨道、新的更新轨道和奇偶校验数据),则数据可以跨存储步幅中的轨道的顺序存取存储设备200而条带状分布。
图14图示了当存储步幅中的轨道和奇偶校验数据的每个非顺序存储设备200包括如图4所示的非易失性存储设备104时、发送读取请求的操作的实施例,其中,在这种情况下,顺序存取存储设备200内包括多个第二高速缓存设备。在这些实施例中,响应于预取请求,预取轨道被存储在每个顺序存取存储设备200中的非易失性存储设备104中。在这些实施例中,一旦发起(在块400)发送读取请求的操作,存储管理器22就发送(在块402)读取请求至每个顺序存取存储设备200,以从顺序存取存储设备200中的非易失性存储设备104存取预取轨道。在一个实施例中,所述读取请求可以被指定为高优先级,诸如比预取请求被提交至顺序存取存储设备200的优先级更高的优先级。
在所述实施例中,所述预取请求被指定为以低于读取请求的优先级被处理。所述预取请求被添加到请求队列116,其中,根据请求队列116中的读取和写入轨道的空间次序处理所述预取请求。然而,如果要针对顺序存取存储介质114而处理读取请求,诸如预取轨道不在非易失性存储设备104中的情况,则会基于优先级读取队列122中的读取请求的时间次序以更高的优先级处理所述读取请求。例如,在稍后当更新轨道准备离台时,以高优先级使轨道的条带离台的存储管理器22会需要旧的轨道和奇偶校验数据以使所述轨道和奇偶校验数据跨顺序存取存储设备200而条带状分布。在这样的情况下,存储管理器22可以以比存储管理器22使更新轨道从第一高速缓存14离台的高优先级低的优先级预取旧的轨道和旧的奇偶校验。然而,当存储管理器22需要使更新轨道离台时,则以比发送预取请求的优先级高的高优先级发出对被预取的轨道的读取请求。
所述实施例提供了如下技术:允许使用初级或第一级高速缓存设备和存储来自顺序存取存储设备的步幅中的旧的轨道和奇偶校验数据的存储装置之间的第二级高速缓存设备,以使得在步幅中的更新轨道需要被离台时可用。所述实施例减少了离台时读取旧的数据和旧的奇偶校验的读取延时,因为旧的轨道和奇偶校验以较低优先级被预取,以使得当离台所需时在更快的存取设备中可用。
进一步的优势通过如下实现:允许读取请求的优先级指示,以便由于使被修改的轨道离台至顺序存取存储介质114的操作而对高优先级读取请求和较低优先级预取请求的处理不会过度地延迟。这样,高优先级读取请求可以以比较低优先级读取请求、预取请求和使对于在非易失性存储设备104中缓存的写入请求的被修改的轨道离台的离台请求更高的优先级被处理。
此外,通过所述实施例,基于请求队列中接收到的较低优先级读取请求和对于写入请求的离台请求的空间次序,处理请求队列116中的较低优先级读取请求。基于接收到的高优先级读取请求的时间次序,处理对于旧的轨道和旧的奇偶校验的高优先级读取和预取请求。然而,基于写入请求、低优先级读取请求、预取请求的空间次序、以及读取/写入头120的当前位置,处理对于写入请求、预取请求和低优先级读取请求的被修改的轨道,以优化读取和写入请求的搜寻和延迟。
所描述的操作可以使用标准的编程和/或工程技术生产出的软件、固件、硬件或者任何上述的组合来实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
所述计算机程序指令也可以被加载到计算机、其它可编程数据处理仪器、或其它设备上,以使得在计算机、其它可编程仪器或其它设备上执行一系列操作步骤以产生计算机实现的处理,使得计算机或其它可编程仪器上运行的指令提供用于实现流程图和/或框图的块中指定的功能/行为的处理。
术语“一实施例”、“实施例”、“多个实施例”、“所述实施例”、“所述多个实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”意指“本发明的一个或多个(而不是所有)实施例”,除非另有明确说明。
术语“包括”、“包含”、“具有”和其变形意指“包括但不限于”,除非另有明确说明。
项目的枚举列表不意味着任意或所有项目是相互排斥的,除非另有明确说明。
术语“一”、“一个”和“所述”意味着“一个或多个”,除非另有明确说明。
相互通信的设备不需要持续地相互通信,除非另有明确说明。另外,相互通信的设备可以直接地或者通过一个或多个中间层间接地通信。
对具有相互通信的若干个组件的实施例的说明不意味着所有这样的组件都被要求。相反,说明多个可选的组件以阐明本发明可能的实施例的广泛多样性。
此外,虽然处理步骤、方法步骤、算法等可以以顺序的次序被说明,但这些处理、方法和算法可以被配置为以交替的次序运作。换言之,所描述的步骤的任意序列或次序不一定指示步骤按那个次序执行的要求。这里描述的处理的步骤可以以任意实际的次序执行。此外,一些步骤可以被同时执行。
当在这里描述单个设备或物件时,显然,多于一个设备/物件(无论它们是否配合)可以替代单个设备/物件而被使用。相似地,当在这里描述多于一个设备或物件(无论它们是否配合)时,显然,单个设备/物件可以替代多于一个设备或物件而被使用,或者,不同数量的设备/物件可以替代所示数量的设备或程序而被使用。设备的功能和/或特征可以被一个或多个未被显式地描述为具有这样的功能/特征的其它设备替代地体现。由此,本发明的其它实施例不需要包括设备本身。
图12至图14所图示的操作显示了以特定次序发生的特定事件。在替代实施例中,某些操作可以以不同的次序被执行、修改或移除。而且,步骤可以被添加到上述逻辑中并仍然符合所述实施例。而且,这里描述的操作可以顺序地发生,或者某些操作可以并行地处理。另外,可以由单个处理单元或由分布式处理单元执行操作。
已经为了示例和说明的目的而示出了对本发明的不同实施例的前述说明。它不是为了穷举或将本发明限于所公开的精确形式。鉴于上述教示,很多修改和变形是可能的。本发明的范围并非意图由这里的详细说明限定,而是由所附的权利要求限定。上述说明书、示例和数据提供了制造和使用本发明的构造的详细说明。由于可以在不背离本发明的范围的情况下做出本发明的许多实施例,因此本发明存在于这里所附的权利要求中。
Claims (34)
1.一种用于处理与至少一个顺序存取存储设备关联的数据轨道组和奇偶校验数据、并与第一高速缓存设备和第二高速缓存设备通信的计算机程序产品,所述计算机程序产品包括在其上包含运行以执行操作的计算机可读程序代码的计算机可读存储介质,所述操作包括:
接收对轨道组的包含至少一个更新轨道的写入请求;
使用所述第一高速缓存设备存储所述至少一个更新轨道;
将预取请求发送至所述至少一个顺序存取存储设备,以将与所述轨道组关联的轨道预取至所述第二高速缓存设备;
在发送所述预取请求之后生成读取请求,以读取预取轨道;
使用所述第一高速缓存设备存储从所述第二高速缓存设备返回至所述读取请求的、所读取的预取轨道;以及
从所述至少一个更新轨道和所读取的预取轨道计算新的奇偶校验数据。
2.如权利要求1所述的计算机程序产品,其中所述操作还包括:
使包含所述更新轨道和所读取的预取轨道的轨道组和新的奇偶校验数据离台至所述至少一个顺序存取存储设备,其中所读取的预取轨道包括该组中除了与所述至少一个顺序存取存储设备关联的所述至少一个更新轨道之外的轨道。
3.如权利要求1或2所述的计算机程序产品,其中响应于接收所述写入请求而生成所述预取请求。
4.如前面任意权利要求所述的计算机程序产品,其中所述预取请求被指定为以第一优先级在所述顺序存取存储设备中被处理,以及其中,所述读取请求被指定为以第二优先级在所述顺序存取存储设备被处理,其中所述第一优先级在所述顺序存取存储设备中具有比更高的优先级低的优先级处理。
5.如权利要求4所述的计算机程序产品,其中所述预取请求被指定为根据使用所述顺序存取存储设备存储第一优先级轨道的物理位置的空间次序在所述顺序存取存储设备被处理,以及其中,所述读取请求被指定为根据第二优先级轨道在所述顺序存取存储设备的时间次序在所述顺序存取存储设备被处理。
6.如前面任意权利要求所述的计算机程序产品,其中所述第一高速缓存设备和所述第二高速缓存设备与所述顺序存取存储设备外部的存储控制器关联,其中所述操作还包括:
处理所述读取请求,以确定所述预取轨道是否与所述第二高速缓存设备关联;
响应于确定所述预取轨道与所述第二高速缓存设备关联,将所述预取轨道从所述第二高速缓存设备提升至所述第一高速缓存设备;
响应于确定所述预取轨道与所述第二高速缓存设备不关联,将所述读取请求传送至所述至少一个顺序存取存储设备;以及
使用所述第一高速缓存设备,存储响应于被传送至所述顺序存取存储设备的读取请求而从所述顺序存取存储设备返回的预取轨道。
7.如前面任意权利要求所述的计算机程序产品,其中所述第二高速缓存设备包括与所述顺序存取存储设备关联的非易失性存储设备,以及所述第一高速缓存设备与所述顺序存取存储设备外部的存储控制器关联。
8.如前面任意权利要求所述的计算机程序产品,其中所述第一高速缓存设备是比所述第二高速缓存设备更快的存取设备。
9.如前面任意权利要求所述的计算机程序产品,其中所述轨道组包括跨多个顺序存取存储设备而写入的轨道的步幅和奇偶校验数据,其中发送所述预取请求包括:向存储所述步幅中的轨道和所述奇偶校验数据的每个所述顺序存取存储设备发送预取请求。
10.如权利要求9所述的计算机程序产品,其中所述操作还包括:
使包含所述更新轨道和所读取的预取轨道的轨道的步幅、以及新的奇偶校验数据离台至存储轨道的步幅和奇偶校验数据的顺序存取存储设备。
11.如权利要求9或10所述的计算机程序产品,其中每个所述顺序存取存储设备包括使用所述步幅存储所述预取轨道的第二高速缓存设备,以及其中,生成所述读取请求包括:发送读取请求至每个所述顺序存取存储设备,以从与所述顺序存取存储设备关联的第二高速缓存设备存取所述预取轨道。
12.一种用于处理至少一个顺序存取存储设备中的数据轨道组和奇偶校验数据、且与第一高速缓存设备和第二高速缓存设备通信的系统,包括:
用于接收对轨道组的包含至少一个更新轨道的写入请求的部件;
用于使用所述第一高速缓存设备存储所述至少一个更新轨道的部件;
用于将预取请求发送至所述至少一个顺序存取存储设备以将与所述轨道组关联的轨道预取至所述第二高速缓存设备的部件;
用于响应于所述预取请求被发送而生成读取请求以读取预取轨道的部件;
用于使用所述第一高速缓存设备存储从所述第二高速缓存设备返回至所述读取请求的所读取的预取轨道的部件;以及
用于从所述至少一个更新轨道和所读取的预取轨道计算新的奇偶校验数据的部件。
13.如权利要求12所述的系统,还包括:
用于使包含所述更新轨道和所读取的预取轨道的轨道组以及新的奇偶校验数据离台至所述至少一个顺序存取存储设备的部件,其中所读取的预取轨道包括该组中除了与所述至少一个顺序存取存储设备关联的所述至少一个更新轨道之外的轨道。
14.如权利要求12或13所述的系统,其中所述预取请求能够操作为响应于所述写入请求的接收而被生成。
15.如权利要求12至14中的任意项所述的系统,其中所述预取请求能够操作为被指定为以第一优先级在所述顺序存取存储设备中被处理,以及其中,所述读取请求能够操作为被指定为以第二优先级在所述顺序存取存储设备被处理,其中所述第一优先级在所述顺序存取存储设备中具有比更高的优先级低的优先级处理。
16.如权利要求15所述的系统,其中所述预取请求能够操作为被指定为根据能够使用所述顺序存取存储设备存储第一优先级轨道的物理位置的空间顺序在所述顺序存取存储设备被处理,以及其中,所述读取请求能够操作为被指定为根据第二优先级轨道在所述顺序存取存储设备的时间次序在所述顺序存取存储设备被处理。
17.如权利要求12至16中的任意项所述的系统,其中所述第一高速缓存设备和所述第二高速缓存设备能够操作为与所述顺序存取存储设备外部的存储控制器关联,所述系统还包括:
用于处理所述读取请求以确定所述预取轨道是否与所述第二高速缓存设备关联的部件;
用于响应于确定所述预取轨道与所述第二高速缓存设备关联而将所述预取轨道从所述第二高速缓存设备提升至所述第一高速缓存设备的部件;
用于响应于确定所述预取轨道与所述第二高速缓存设备不关联而将所述读取请求传送至所述至少一个顺序存取存储设备的部件;以及
用于使用所述第一高速缓存设备存储响应于被传送至所述顺序存取存储设备的读取请求而从所述顺序存取存储设备返回的预取轨道的部件。
18.如权利要求12至17中的任意项所述的系统,其中所述第二高速缓存设备包括与所述顺序存取存储设备关联的非易失性存储设备,以及所述第一高速缓存设备与所述顺序存取存储设备外部的存储控制器关联。
19.如权利要求12至18中的任意项所述的系统,其中所述第一高速缓存设备是比所述第二高速缓存设备更快的存取设备。
20.如权利要求12至19中的任意项所述的系统,其中所述轨道组包括跨多个顺序存取存储设备而写入的轨道的步幅和奇偶校验数据,其中用于发送所述预取请求的部件包括用于向能够操作为存储所述步幅中的轨道和所述奇偶校验数据的每个所述顺序存取存储设备发送预取请求的部件。
21.如权利要求20所述的系统,还包括:
用于使包含所述更新轨道和所读取的预取轨道的轨道的步幅以及新的奇偶校验数据离台至能够操作为存储所述轨道的步幅和奇偶校验数据的顺序存取存储设备的部件。
22.如权利要求20或21所述的系统,其中每个所述顺序存取存储设备包括能够操作为使用所述步幅存储所述预取轨道的第二高速缓存设备,以及其中,用于生成所述读取请求的部件包括用于将读取请求发送至每个所述顺序存取存储设备以从与所述顺序存取存储设备关联的第二高速缓存设备存取所述预取轨道的部件。
23.如权利要求12至22中的任意项所述的系统,其中所述第二高速缓存设备与所述顺序存取存储设备关联。
24.一种用于处理与至少一个顺序存取存储设备关联的数据轨道组和奇偶校验数据、并与第一高速缓存设备和第二高速缓存设备通信的方法,所述包括以下步骤:
接收对轨道组的包含至少一个更新轨道的写入请求;
使用所述第一高速缓存设备存储所述至少一个更新轨道;
将预取请求发送至所述至少一个顺序存取存储设备,以将与所述轨道组关联的轨道预取至所述第二高速缓存设备;
在发送所述预取请求之后生成读取请求,以读取预取轨道;
使用所述第一高速缓存设备,存储从所述第二高速缓存设备返回至所述读取请求的、所读取的预取轨道;以及
从所述至少一个更新轨道和所读取的预取轨道计算新的奇偶校验数据。
25.如权利要求24所述的方法,还包括以下步骤:
使包含所述更新轨道和所读取的预取轨道的轨道组以及新的奇偶校验数据离台至所述至少一个顺序存取存储设备,其中所读取的预取轨道包括该组中除了与所述至少一个顺序存取存储设备关联的所述至少一个更新轨道之外的轨道。
26.如权利要求24或25所述的方法,其中响应于接收所述写入请求而生成所述预取请求。
27.如权利要求24至26中的任意项所述的方法,其中所述预取请求被指定为以第一优先级在所述顺序存取存储设备中被处理,以及其中,所述读取请求被指定为以第二优先级在所述顺序存取存储设备被处理,其中所述第一优先级在所述顺序存取存储设备中具有比更高的优先级低的优先级处理。
28.如权利要求27所述的方法,其中所述预取请求被指定为根据使用所述顺序存取存储设备存储第一优先级轨道的物理位置的空间次序在所述顺序存取存储设备被处理,以及其中,所述读取请求被指定为根据第二优先级轨道在所述顺序存取存储设备中的时间次序在所述顺序存取存储设备被处理。
29.如权利要求24至28中的任意项所述的方法,其中所述第一高速缓存设备和所述第二高速缓存设备与所述顺序存取存储设备外部的存储控制器关联,其中所述方法还包括以下步骤:
处理所述读取请求,以确定所述预取轨道是否与所述第二高速缓存设备关联;
响应于确定所述预取轨道与所述第二高速缓存设备关联,将所述预取轨道从所述第二高速缓存设备提升至所述第一高速缓存设备;
响应于确定所述预取轨道与所述第二高速缓存设备不关联,将所述读取请求传送至所述至少一个顺序存取存储设备;以及
使用所述第一高速缓存设备,存储响应于被传送至所述顺序存取存储设备的读取请求而从所述顺序存取存储设备返回的预取轨道。
30.如权利要求24至29中的任意项所述的方法,其中所述第二高速缓存设备包括与所述顺序存取存储设备关联的非易失性存储设备,以及所述第一高速缓存设备与所述顺序存取存储设备外部的存储控制器关联。
31.如权利要求24至30中的任意项所述的方法,其中所述第一高速缓存设备是比所述第二高速缓存设备更快的存取设备。
32.如权利要求24至31中的任意项所述的方法,其中所述轨道组包括跨多个顺序存取存储设备而写入的轨道的步幅和奇偶校验数据,其中发送所述预取请求包括:向存储所述步幅中的轨道和所述奇偶校验数据的每个所述顺序存取存储设备发送预取请求。
33.如权利要求32所述的方法,还包括以下步骤:
使包含所述更新轨道和所读取的预取轨道的轨道的步幅以及新的奇偶校验数据离台至存储轨道的步幅和奇偶校验数据的顺序存取存储设备。
34.如权利要求32或33所述的方法,其中每个所述顺序存取存储设备包括使用所述步幅存储所述预取轨道的第二高速缓存设备,以及其中,生成所述读取请求包括:将读取请求发送至每个所述顺序存取存储设备以从与所述顺序存取存储设备关联的第二高速缓存设备存取所述预取轨道。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/189,285 US8631190B2 (en) | 2011-07-22 | 2011-07-22 | Prefetching data tracks and parity data to use for destaging updated tracks |
US13/189,285 | 2011-07-22 | ||
PCT/IB2012/053351 WO2013014555A1 (en) | 2011-07-22 | 2012-07-02 | Prefetching data tracks and parity data to use for destaging updated tracks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103703440A true CN103703440A (zh) | 2014-04-02 |
CN103703440B CN103703440B (zh) | 2016-08-17 |
Family
ID=47556623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280036319.9A Expired - Fee Related CN103703440B (zh) | 2011-07-22 | 2012-07-02 | 预取用于使更新轨道离台的数据轨道和奇偶校验数据 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8631190B2 (zh) |
CN (1) | CN103703440B (zh) |
DE (1) | DE112012002615B4 (zh) |
WO (1) | WO2013014555A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105844178A (zh) * | 2016-04-21 | 2016-08-10 | 浪潮电子信息产业股份有限公司 | 一种jbod海量存储数据安全的方法 |
CN108780411A (zh) * | 2015-10-30 | 2018-11-09 | 国际商业机器公司 | 数据存储系统中的自主奇偶交换 |
CN109995670A (zh) * | 2017-12-06 | 2019-07-09 | 马维尔以色列(M.I.S.L.)有限公司 | 具有减少延时的网络设备 |
CN110609796A (zh) * | 2018-06-15 | 2019-12-24 | 伊姆西Ip控股有限责任公司 | 用于存储系统中预取的方法、设备和计算机程序产品 |
WO2022029563A1 (en) * | 2020-08-04 | 2022-02-10 | International Business Machines Corporation | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566530B2 (en) | 2011-07-22 | 2013-10-22 | International Business Machines Corporation | Prefetching source tracks for destaging updated tracks in a copy relationship |
US8650354B2 (en) | 2011-07-22 | 2014-02-11 | International Business Machines Corporation | Prefetching tracks using multiple caches |
US9727247B2 (en) | 2013-03-15 | 2017-08-08 | Nec Corporation | Storage device and method, and storage medium |
US9305298B2 (en) * | 2013-03-22 | 2016-04-05 | Nok Nok Labs, Inc. | System and method for location-based authentication |
US9329938B2 (en) | 2013-04-16 | 2016-05-03 | International Business Machines Corporation | Essential metadata replication |
US9423981B2 (en) | 2013-04-16 | 2016-08-23 | International Business Machines Corporation | Logical region allocation with immediate availability |
US9104332B2 (en) | 2013-04-16 | 2015-08-11 | International Business Machines Corporation | Managing metadata and data for a logical volume in a distributed and declustered system |
US9298398B2 (en) | 2013-04-16 | 2016-03-29 | International Business Machines Corporation | Fine-grained control of data placement |
US9104597B2 (en) | 2013-04-16 | 2015-08-11 | International Business Machines Corporation | Destaging cache data using a distributed freezer |
US9619404B2 (en) | 2013-04-16 | 2017-04-11 | International Business Machines Corporation | Backup cache with immediate availability |
US9298617B2 (en) * | 2013-04-16 | 2016-03-29 | International Business Machines Corporation | Parallel destaging with replicated cache pinning |
US9766978B2 (en) | 2014-12-09 | 2017-09-19 | Marvell Israel (M.I.S.L) Ltd. | System and method for performing simultaneous read and write operations in a memory |
US11403173B2 (en) | 2015-04-30 | 2022-08-02 | Marvell Israel (M.I.S.L) Ltd. | Multiple read and write port memory |
CN107787485B (zh) | 2015-04-30 | 2021-04-09 | 马维尔以色列(M.I.S.L.)有限公司 | 多读取和写入端口存储器 |
CN106960675B (zh) * | 2016-01-08 | 2019-07-05 | 株式会社东芝 | 磁盘装置及写入处理方法 |
CN106776363B (zh) * | 2016-12-27 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 缓存性能优化方法、系统及数据写入方法 |
US10387321B2 (en) | 2017-08-01 | 2019-08-20 | International Business Machines Corporation | Securing exclusive access to a copy of a metadata track via a process while the metadata track is held in a shared mode by another process |
US11226741B2 (en) * | 2018-10-31 | 2022-01-18 | EMC IP Holding Company LLC | I/O behavior prediction based on long-term pattern recognition |
US11467772B2 (en) * | 2020-04-22 | 2022-10-11 | International Business Machines Corporation | Preemptive staging for full-stride destage |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381677B1 (en) * | 1998-08-19 | 2002-04-30 | International Business Machines Corporation | Method and system for staging data into cache |
CN1834943A (zh) * | 2005-03-14 | 2006-09-20 | 富士通株式会社 | 存储系统及其控制方法和程序 |
US20100017591A1 (en) * | 2003-05-13 | 2010-01-21 | Mike Smith | Method for booting an operating system |
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449697B1 (en) | 1999-04-23 | 2002-09-10 | International Business Machines Corporation | Prestaging data into cache in preparation for data transfer operations |
US6611901B1 (en) | 1999-07-02 | 2003-08-26 | International Business Machines Corporation | Method, system, and program for maintaining electronic data as of a point-in-time |
US7464246B2 (en) * | 2004-09-30 | 2008-12-09 | International Business Machines Corporation | System and method for dynamic sizing of cache sequential list |
US7313654B2 (en) | 2004-10-27 | 2007-12-25 | Xiv Ltd | Method for differential discarding of cached data in distributed storage systems |
US8694711B2 (en) | 2009-01-21 | 2014-04-08 | Semtech Canada Corporation | Crosspoint switch for use in video and other applications |
US8195891B2 (en) * | 2009-03-30 | 2012-06-05 | Intel Corporation | Techniques to perform power fail-safe caching without atomic metadata |
US8386714B2 (en) | 2010-06-29 | 2013-02-26 | International Business Machines Corporation | Reducing write amplification in a cache with flash memory used as a write cache |
JP5356540B2 (ja) | 2010-11-01 | 2013-12-04 | 三菱レイヨン株式会社 | 多孔質電極基材、その製造方法、多孔質電極基材前駆体シート、膜−電極接合体、および固体高分子型燃料電池 |
US8650354B2 (en) | 2011-07-22 | 2014-02-11 | International Business Machines Corporation | Prefetching tracks using multiple caches |
-
2011
- 2011-07-22 US US13/189,285 patent/US8631190B2/en not_active Expired - Fee Related
-
2012
- 2012-04-27 US US13/458,791 patent/US8775729B2/en not_active Expired - Fee Related
- 2012-07-02 WO PCT/IB2012/053351 patent/WO2013014555A1/en active Application Filing
- 2012-07-02 CN CN201280036319.9A patent/CN103703440B/zh not_active Expired - Fee Related
- 2012-07-02 DE DE112012002615.2T patent/DE112012002615B4/de active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381677B1 (en) * | 1998-08-19 | 2002-04-30 | International Business Machines Corporation | Method and system for staging data into cache |
US20100017591A1 (en) * | 2003-05-13 | 2010-01-21 | Mike Smith | Method for booting an operating system |
CN1834943A (zh) * | 2005-03-14 | 2006-09-20 | 富士通株式会社 | 存储系统及其控制方法和程序 |
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108780411A (zh) * | 2015-10-30 | 2018-11-09 | 国际商业机器公司 | 数据存储系统中的自主奇偶交换 |
CN108780411B (zh) * | 2015-10-30 | 2021-12-14 | 国际商业机器公司 | 数据存储系统中的自主奇偶交换 |
CN105844178A (zh) * | 2016-04-21 | 2016-08-10 | 浪潮电子信息产业股份有限公司 | 一种jbod海量存储数据安全的方法 |
CN105844178B (zh) * | 2016-04-21 | 2019-05-14 | 浪潮电子信息产业股份有限公司 | 一种jbod海量存储数据安全的方法 |
CN109995670A (zh) * | 2017-12-06 | 2019-07-09 | 马维尔以色列(M.I.S.L.)有限公司 | 具有减少延时的网络设备 |
CN109995670B (zh) * | 2017-12-06 | 2023-10-27 | 马维尔以色列(M.I.S.L.)有限公司 | 具有减少延时的网络设备 |
CN110609796A (zh) * | 2018-06-15 | 2019-12-24 | 伊姆西Ip控股有限责任公司 | 用于存储系统中预取的方法、设备和计算机程序产品 |
CN110609796B (zh) * | 2018-06-15 | 2023-07-21 | 伊姆西Ip控股有限责任公司 | 用于存储系统中预取的方法、设备和计算机程序产品 |
WO2022029563A1 (en) * | 2020-08-04 | 2022-02-10 | International Business Machines Corporation | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
US11294812B2 (en) | 2020-08-04 | 2022-04-05 | International Business Machines Corporation | Obtaining cache resources for expected writes to tracks in a write set after the cache resources were released for the tracks in the write set |
GB2611502A (en) * | 2020-08-04 | 2023-04-05 | Ibm | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
GB2611502B (en) * | 2020-08-04 | 2023-09-13 | Ibm | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
Also Published As
Publication number | Publication date |
---|---|
DE112012002615B4 (de) | 2021-06-02 |
US8631190B2 (en) | 2014-01-14 |
DE112012002615T5 (de) | 2014-12-11 |
US8775729B2 (en) | 2014-07-08 |
US20130024613A1 (en) | 2013-01-24 |
US20130024627A1 (en) | 2013-01-24 |
WO2013014555A1 (en) | 2013-01-31 |
CN103703440B (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103703440A (zh) | 预取用于使更新轨道离台的数据轨道和奇偶校验数据 | |
CN103226519B (zh) | 冗余缓存数据的弹性缓存 | |
US8825944B2 (en) | Populating strides of tracks to demote from a first cache to a second cache | |
CN104145252B (zh) | 两级高速缓存系统中的自适应高速缓存提升 | |
US20180275899A1 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US8949536B2 (en) | Prefetching source tracks for destaging updated tracks in a copy relationship | |
US9026732B2 (en) | Demoting partial tracks from a first cache to a second cache | |
US6378038B1 (en) | Method and system for caching data using raid level selection | |
JP6099059B2 (ja) | ストレージのためのトラックのキャッシュ管理するプログラム、システム、および方法 | |
CN103562843A (zh) | 在具有多个高速缓存的存储系统中高速缓存数据 | |
CN103257932B (zh) | 用于管理计算机可读高速缓存系统中的数据的方法和系统 | |
EP2805241B1 (en) | Populating a first stride of tracks from a first cache to write to a second stride in a second cache | |
US9471496B2 (en) | Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache | |
CN111857540A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160817 Termination date: 20200702 |
|
CF01 | Termination of patent right due to non-payment of annual fee |