CN104050094A - 管理高速缓存存储区的系统、方法和计算机可读介质 - Google Patents

管理高速缓存存储区的系统、方法和计算机可读介质 Download PDF

Info

Publication number
CN104050094A
CN104050094A CN201410053087.9A CN201410053087A CN104050094A CN 104050094 A CN104050094 A CN 104050094A CN 201410053087 A CN201410053087 A CN 201410053087A CN 104050094 A CN104050094 A CN 104050094A
Authority
CN
China
Prior art keywords
cache
data
metadata
stores district
district
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
Application number
CN201410053087.9A
Other languages
English (en)
Inventor
V·B·施瓦山卡拉
S·帕拉麦思沃伦
M·艾什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Infineon Technologies North America Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN104050094A publication Critical patent/CN104050094A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及管理高速缓存存储区的系统、方法和计算机可读介质。具有高速缓存存储区并且与存储系统关联的高速缓存控制器跨高速缓存控制器的重启地维持保存在高速缓存存储区中的信息。高速缓存控制器与主计算机系统和数据存储系统通信。高速缓存控制器分割高速缓冲存储器以包括元数据部分和日志部分。一个独立的部分用于缓存数据元素。高速缓存控制器将元数据的副本保持在主计算机系统可访问的独立存储器中。当元数据日志达到其容量时,数据被写入高速缓存存储区中。当重启时,元数据被复制回到主计算机系统,遍历元数据日历,以将未被保存的高速缓存中的其它变化复制到数据存储系统。

Description

管理高速缓存存储区的系统、方法和计算机可读介质
技术领域
本发明涉及数据存储系统,更具体地,涉及采用基于闪存的数据高速缓存的数据存储系统。
背景技术
一些常规的计算系统采用非易失性存储器作为较慢的数据存储器(例如,磁盘存储介质、光盘存储介质或者可通过网络访问的一个或多个数据存储装置)的块级或文件级存储替代物,以改善计算系统和/或由计算系统执行的应用程序的性能。在这方面,由于与往来于较慢的存储装置相比,对于某些非易失性存储器(为简单起见,下面称为“高速缓存装置”),可以明显较快地进行输入/输出(I/O)操作,因此,高速缓存装置的使用提供显著提高I/O操作的速率的机会。
已知结合数据缓存,以胜过数据存储管理器和存储阵列支持的数据存储系统的I/O性能地提高I/O性能。例如,在图1中例示的系统中,数据存储管理器10按照能够实现可靠的数据存储的方式,控制存储阵列12。主(计算机)系统14通过数据存储管理器10,将数据保存在存储阵列12中和从存储阵列12取回数据。即,按照应用程序或APP18工作的处理器16发出将数据写入存储阵列12或者从存储阵列12读取数据的请求。尽管为清楚起见,主机系统14和数据存储管理器在图1中被描述成单独的元件,不过,数据存储管理器10通常被物理体现为插入所述主机系统14的母板或底板中的卡。
这种系统可根据访问保存在存储阵列12的数据存储装置24、26、28和30中的某些数据的频率,来缓存数据。所述缓存数据或者“热”数据,例如,元素A被保存在基于闪存的存储器15的高速缓存模块22中。可在块级或者文件级,标识元素A。之后,诸如APP18之类应用程序关于“热”数据发出的请求由基于闪存的存储器15服务,而不是由数据存储系统服务。这种常规的数据缓存系统可缩放,并且只由基于闪存的存储装置15的容量限制。因而,填充基于闪存的存储装置15的整个容量要花费相当大量的时间。尽管可以指令基于闪存的高速缓存装置15缓存主机系统14频繁读取的数据项,不过跨基于闪存的装置15的重启,记忆哪些数据被缓存仍然是重要的。如果缺少关于主机系统14频繁需要哪些数据的信息,那么缓存数据的重建会花费大量的时间,在所述时间内,基于闪存的高速缓存装置15的性能和/或主机系统14的性能会受到影响,导致这种常规系统的用户可觉察到的应用性能的降低。
与数据存储管理器10通信的独立并且不同的高速缓存模块21可在配置成可靠地跨存储阵列12的存储元件24、26、28和30分发数据的处理步骤之前或期间,临时缓存数据元素B。
廉价(或独立)磁盘的冗余阵列(RAID)是一种通过能够从一个或多个存储装置的故障复原,来解决可靠性问题的常见数据存储系统。已知在RAID系统中结合数据缓存。在图1中例示的系统中,数据存储管理器10包括以块为单位缓存数据的RAID处理系统20,所述块可被称为读高速缓存块(RCB)和写高速缓存块(WCB)。WCB包括作为将数据保存在存储阵列12中的请求的一部分,主机系统14发送给数据存储管理器10的所述数据。响应来自主机系统14的这种写请求,数据存储管理器10将WCB缓存或临时保存在一个或多个高速缓存模块21中,随后向主机系统14返回确认消息10。在稍后的某个时间点,数据存储管理器10将缓存的WCB(一般连同其它先前缓存的WCB一起)传送给存储阵列12。RCB包含数据存储管理器10响应来自主机系统14的读取请求,频繁地从存储阵列12读取的数据。缓存频繁请求的数据比每次主机系统14请求数据时从存储阵列12读取该数据更高效,因为高速缓存模块21是与数据存储阵列12包含的那种存储器(例如,磁盘驱动器)相比,能够被更快速地访问的一种存储器,比如闪存。
发明内容
在例证实施例中,举例说明了管理高速缓存存储区,以便在重启操作之后,改善高速缓存等待时间的系统和方法的实施例。高速缓存等待时间是高速缓存控制器为恢复和确认保存在高速缓存中的数据元素的内容所用的时间。
在例证实施例中,高速缓存控制器包括用于与主计算机系统和数据存储系统通信的至少一个接口。高速缓存控制器还包括高速缓存存储区和处理系统。处理系统响应保存在高速缓存存储区中的标题信息和可执行指令。处理系统被配置成以可编程方式响应对高速缓存控制器的当前状态作出响应的状态标识符,标识元数据日志的下一个可用序列号,标识高速缓存存储区中的元数据存储区的位置和大小,标识高速缓存存储区中的元数据日志的位置和大小,标识高速缓存存储区中的多个高速缓存窗口的位置和大小,每个高速缓存窗口包括由高速缓存控制器进一步标识的多个高速缓存行。响应指定的条件,处理系统还被配置成将保存在元数据的表示中并且可通过主计算机系统访问的信息写入高速缓存存储区,并替换元数据日志中的下一个可用序列号。
在另一个例证实施例中,公开一种管理高速缓存存储区的方法,所述高速缓存存储区与主计算机系统和数据存储区相关,跨越高速缓存主机控制器的重启地维持高速缓存存储区中的信息。所述方法包括以下步骤:分割高速缓存存储区,以提供用于保存元数据的第一部分、用于保存被数据存储管理器标识成应归入高速缓存存储区的数据的数据值的第二部分、用于保存元数据的变化的第三部分和包含与主机和高速缓存存储区有关的信息的第四部分;按数据存储管理器的指示,用元数据填充第一部分的表示和用数据值填充第二部分的表示,所述数据存储管理器根据表示在期望时间内对保存在数据存储系统中的特定数据项的请求的频率值,标识待保存在高速缓存存储区中的数据项;每当按数据存储管理器的指示用元数据填充第一部分的表示和用数据值填充第二部分的表示时,在高速缓存存储区的第三部分中创建一个条目,其中第一部分、第二部分和第三部分的表示被保存在通过主计算机系统、数据存储管理器和高速缓存主机控制器中的一个或多个能够访问的易失性存储器中;比较在高速缓存存储区的第三部分中的当前索引和初始索引,以判定何时达到第三部分的数据存储容量,当已达到第三部分的数据存储容量时,将在第一部分的表示中的信息写入高速缓存存储区的对应第一存储区中,和用高速缓存存储区的第三部分中的下一个可用存储位置替换初始索引。
在例证实施例中,当完成高速缓存控制器的重启时,处理系统执行可执行指令,所述可执行指令读取高速缓存存储区的表示的内容,所述内容保存在主计算机系统可访问的易失性存储器中,并且还包含下一个可用序列号,将元数据存储区的内容复制到主计算机系统可访问的易失性存储器,在元数据存储区中的一个或多个条目之上应用有效日志条目,以生成恢复的元数据,遍历恢复的元数据,以标识适当的高速缓存窗口,从而用来自数据存储系统的对应数据更新,修改适当的高速缓存窗口的状态,将高速缓存窗口插入散列表和优先级索引中,并更新向数据存储系统指示对高速缓冲存储器的I/O操作被允许的标记。
附图说明
图1是图解说明耦接到主计算机和存储系统的常规高速缓存装置的方框图。
图2是图解说明按照本发明的例证实施例的改进的高速缓存控制器的方框图。
图3是图2的高速缓存存储区的示意图。
图4是图3的元数据存储区的示意图。
图5是图3的日志存储区的示意图。
图6是图2的主机存储器表示或高速缓存存储区镜像的示意图。
图7是表示随着时间的过去,图3的日志存储区的使用的示意图。
图8是图2的高速缓存软件的示意图。
图9A和9B包括图解说明管理高速缓存存储区,以跨越高速缓存装置的重启,改善等待时间的方法的流程图。
具体实施方式
具有高速缓存存储区并且与存储系统关联的高速缓存控制器跨越高速缓存控制器的重启地维持保存在高速缓存存储区中的信息。高速缓存控制器与主计算机系统和数据存储系统通信。改进的高速缓存控制器可以用在与主计算机系统耦接的基于闪存的高速缓存装置中。高速缓存控制器分割高速缓冲存储器,以包括元数据部分和日志部分。一个独立的部分被用于缓存的数据元素。高速缓存控制器将元数据的副本保持在主计算机系统可访问的独立的存储器中。当元数据日志达到其容量时,数据被写入高速缓存存储区中。当重启时,元数据被复制回到主计算机系统,遍历元数据日志,以将未被保存的高速缓存中的其它变化复制到数据存储系统和/或高速缓存存储区。
如图2中图解所示,在本发明的说明性或例证实施例中,主机系统100与数据存储区140和基于闪存的高速缓存装置130耦接。数据存储区140可以是直接附加存储(DAS)或存储区域网(SAN)。在这些实施例中,按照数据存储管理器的指示,数据存储区140将包括多个数据存储装置,比如结合存储阵列12(图1)说明的那些数据存储装置。尽管为了清楚起见,这里未详细举例说明,不过应理解,通过跨多个数据存储装置地分配数据,数据存储管理器可提供RAID保护,比如RAID-5保护。
RAID控制器(未示出)通过接口,比如总线,与数据存储区140通信,还通过另一个接口,比如另一条总线,与主(计算机)系统100通信。为简单起见,在图2中,用主机系统100和数据存储区140之间的双向箭头,图解说明RAID控制器和与RAID控制器、主机系统100和数据存储区140的接口。RAID控制器可被物理地包含在可插入主机系统100的母板或底板(未示出)中的组合件,或者任何其它适当的结构中。
主机系统100将数据保存在数据区140中,和从数据存储区140取回数据。即,按照应用程序124或类似软件工作的主机系统100中的处理器110发出往来于数据存储区140读取和写入数据的请求。注意,尽管应用程序124被概念地描述成保存或驻留在存储器120中,不过,本领域的技术人员可理解这种软件可以采取按照常规的计算原则,酌情载入存储器120中的多个模块、片段、程序、文件等的形式。类似地,尽管为了清楚起见,存储器120被描述成单个元件,不过,存储器120可包括多个元件。同样地,尽管为了清楚起见,处理器110被描述成单个元件,不过,处理器110可包括多个元件。
除了应用程序124之外,存储器120还包括管理数据文件和程序的文件系统122、高速缓存存储区镜像600和高速缓存软件800。将结合图6中的例示的说明,详细说明高速缓存存储区镜像600的体系结构和使用。类似地,将结合图8中的例示的说明,详细说明高速缓存软件800的体系结构和操作。
基于闪存的高速缓存装置130被安排成通过颇具策略地将数据存储区140中最频繁访问的数据缓存在高速缓存存储区300中,改善诸如APP124之类的应用程序的性能。基于主机系统的软件,比如高速缓存软件800用于检测保存在数据存储区140中的被频繁访问的数据项,并将这些数据项保存在高速缓存存储区300中。
基于闪存的高速缓存装置130的高速缓存控制器(未示出)通过接口,比如总线,与主机系统100和数据存储区140通信。基于闪存的高速缓存装置130可被物理地包含在可插入主机系统100的母板或底板(未示出)的组合件中,或者任何其它适当的结构中。在优选实施例中,基于闪存的高速缓存装置130通过利用双向箭头描述的高速外设互联标准2.0(PCIe)接口总线,耦接到主机系统100。
图3是图2的高速缓存存储区300的示意图。高速缓存存储区300被划分或分割成至少4个独立的存储区。第一部分或分区包括标题信息310。第二部分包括一组高速缓存窗口320。第三部分包括元数据存储区400。第四部分包括日志存储区500。标题信息包括指示基于闪存的高速缓存装置130(图1)的操作状态的标记中其它指示符,用于导航日志存储区500中的条目的下一个可用序列号,表示元数据存储区400的位置和大小的信息,表示日志存储区500的位置和大小的信息,以及表示第二部分中的高速缓存窗口322的数目的信息。高速缓存存储区400的相当大量的存储容量被分配给在例证中被标识成高速缓存窗口的区域。每个高速缓存窗口被进一步细分成期望大小的高速缓存块或高速缓存行。
访问数据存储区140的规定区域的I/O操作被分配虚拟高速缓存窗口。在规定区域的重复访问时(和在达到阈值之后),虚拟高速缓存窗口(VCW)被转换成物理高速缓存窗口。在VCW被释放的时候,物理高速缓存窗口(CW)(即,高速缓存窗口322之一)被填充来自数据存储区140的规定区域的数据。在成功完成对CW的写操作之后,规定区域的后续读取请求将由基于闪存的高速缓存装置130而不是数据存储区140处理。
当基于闪存的高速缓存装置130最初被介绍给主机系统100时,高速缓存窗口对象在主机存储器120中被分配并添加到空闲高速缓存窗口列表(未示出)中。足够数目的VCW对象还被分配并放入空闲虚拟高速缓存窗口列表中。当收到I/O操作时,搜索散列表,以寻找VCW或CW。如果找到一个VCW或CW,那么从空闲列表中除去该VCW,将其用于跟踪接收的I/O的区域。该VCW现在被插入散列表中。当收到对VCW的足够访问时,从空闲列表中取得一个物理CW。在高速缓存存储区300中的所述一组高速缓存窗口320中的对应位置,填充高速缓存窗口322。当高速缓存存储区300首次被初始化时,标题信息310将包含为0的下一个可用序列号,并且日志存储区500和元数据存储区400中的所有条目将被初始化成期望的二进制值(即,逻辑0或逻辑1)。
图4是图3的元数据存储区400中的条目402的示意图。元数据条目402包括一组字段,所述一组字段保持与保存在高速缓存存储区300中的数据有关的信息。元数据存储区400中的每个条目402代表一个物理CW(即,保存在一组高速缓存窗口320中的一个高速缓存窗口322)。元数据存储区400的大小取决于分配的CW322的数目。元数据存储区400中的每个元数据条目402映射或标识高速缓存存储区300中的特定CW322。每个元数据条目402包括虚拟目录标识符(VDI)、虚拟目录逻辑块地址(VD LBA)、优先级索引(PI)、和已被传送给高速缓存存储区300的数据的范围或块的高速缓存行位图。每个元数据条目400还包括用于保存“脏”位的保留存储区。脏位记录高速缓存存储区中的未被回传送给数据存储区140中的对应存储位置I数据的变化。
在优选实施例中,VDI包括标识多达64个虚拟磁盘的6个位,所述64个虚拟磁盘以1:1的关系对应于数据存储区140中的多达64个数据存储装置。VD LBA包括26个位,标识从为0的逻辑源地址或基准位置到从基准位置移动多达64TB的位置缓存的一系列数据。PI包括4个位,标识其中逻辑地插入CW的16个优先级或队列。高速缓存行位图指示哪些高速缓存块在使用中。可构思元数据条目402中的各个字段的备选排列(即,位置和位长度)。
表示主机系统100上的应用程序如何频繁地访问数据的度量的PI索引随某些CW按第一优先级或桶(bucket)移入高速缓存存储区300,并且随着时间的过去而上移或下移优先级而不断变化。当高速缓存控制器使用存储容量时,替代不经常被访问的缓存CW。优先级索引使高速缓存控制器能够根据区域内的高速缓存命中的权重,区分CW中的数据。在规定时间内的足够数目的命中之后,特定的CW将被提升到更高的优先值或索引。如果在一段时间内,特定的CW未得到足够的I/O操作,那么该CW将被降级到较低的优先级。当不再可得到存储容量时,CW在被从最低优先级除去之后被重新使用或重新分配。
在高速缓存数据存储区容量为1TB,CW为1MB的例证实施例中,需要1百万个CW。为了表示1百万个CW,元数据存储区400需要8MB的存储容量。额外的64MB数据容量被分配或划分给日志存储区500。日志存储区500可用于记录当处理I/O操作时对分配的CW322任意之一的元数据的更新。
通过为每个基于闪存的高速缓存装置130配置和维持元数据存储区400,可以部署多个基于闪存的高速缓存装置。当这样部署多个基于闪存的高速缓存装置130时,高速缓存软件800将将所述装置和指定的群标识符联系起来,并跟踪所述装置。
图5是图3的日志存储区500中的条目502的示意图。日志条目502包括与在元数据条目402中提供的相同的一组字段。除了该信息之外,日志条目502还包括标识日志存储区中的可供条目之用的位置的检查点或序列号,和表示高速缓存存储区300中的单个CW322的CW索引。
每当可高速缓存的区域变“热”时(被标识成被在主机系统100上运行的一个或多个应用程序频率访问时),VCW就被转换成物理CW。依据CW322的每个I/O访问,如果高速缓存行未被充满,那么从数据存储区140取回所需范围的数据(例如,64KB),并填充到高速缓存存储区300中的对应空间中。同时,在CW322内的高速缓存行位图中启用适当的位。当I/O操作重叠高速缓存行和或CW322时,特别要注意。
每当CW被从空闲池利用时,高速缓存行位图变化,发生优先级桶内的CW提升/降级。因而,在保持在与主机系统100相关的存储器120中的高速缓存存储镜像600(元数据存储器和高速缓存窗口对象的表示)中,更新对应的信息。根据高速缓存装置CW位置,在元数据存储区内选择元数据条目位置。随后,生成日志条目并记录在高速缓存条目300的条目存储区500中。当所有元数据事务完成时,完成主机系统I/O。
一旦在为日志存储区500分配的存储空间(例如,64MB)中,填充了所有的日志条目,元数据块或元数据镜像的主机存储器表示就被写入基于闪存的高速缓存装置130的高速缓存存储区300。在元数据存储区400的成功更新之后,用下一个可用日志序列号更新高速缓存存储区300的标题信息310。
当CW索引被分配20个位时,图5中图解说明的日志条目排列能够表示多达1百万个CW,从而提供1TB的高速缓存存储容量。序列号将具有能够环绕日志存储区500的值。可构思日志条目502中的各个字段的备选排列(即,位置和位长度)。
图6是图2的主机存储器表示或高速缓存存储镜像600的示意图。如图6中所示,高速缓存软件800将高速缓存存储区镜像600保持在主机系统存储器120中。高速缓存存储区镜像包括来自基于闪存的高速缓存装置130上的高速缓存存储区300的元数据存储区的副本,并保留指定传送给高速缓存存储区300的CW的高速缓存窗口对象。如上所述,只有在高速缓存存储区300中的日志存储区500达到其存储容量之后,高速缓存存储区镜像600中的信息才被用于更新高速缓存存储区300中的信息。
图7是表示随着时间的过去,图3的日志存储区500的使用的示意图。如图7中所示,当在日志存储器500中记录日志条目712时,从用箭头710示意指示的初始检查点或序列号开始,顺序添加日志条目712。如上所述,在高速缓存存储区300的标题信息310中,定义初始序列号。
图8是图2的高速缓存软件800的示意图。在例证实施例中,各个逻辑元件或模块被彼此分离地表示成高速缓存软件800的单个组件。在这点上,高速缓存软件800包括管理逻辑805、分区逻辑810、高速缓存存储区逻辑812、日志条目逻辑814、比较逻辑816和元数据恢复逻辑818。管理逻辑805包括可执行指令,用于当被处理器执行时,协调主机系统100内的数据操作,包括往来于数据存储区140和往来于基于闪存的高速缓存装置130的I/O操作。操作中,管理逻辑805使能数据存储管理器标识数据存储器140中的应缓存在基于闪存的高速缓存装置130中的数据。
分区逻辑810包括可执行指令,当被处理器执行时,协调基于闪存的高速缓存装置130的高速缓存存储区300内的标题信息310、CW存储区320、元数据存储区400和日志存储区500的相对放置和大小。分区逻辑810可包括按照标识数据存储区140和基于闪存的高速缓存装置130的特性的一个或多个输入参数,计算元数据存储区400和日志存储区500的最佳大小和放置的规则和算法。
高速缓存存储区逻辑812包括可执行指令,当被处理器执行时,协调往来于基于闪存的高速缓存装置130的I/O操作。如上所述,高速缓存存储区逻辑812管理VCW、CW、VCW空闲列表,具有表格和优先级列表或桶。高速缓存存储区逻辑812可以与监视主机系统100和数据存储区140之间的I/O操作以标识保存在其中的应被传送给基于闪存的高速缓存装置130的数据项的模块相结合。另一方面,高速缓存存储区逻辑812可从在主机系统100上运行,并被配置成标识这种“热”数据的独立应用程序接收输入。另外,高速缓存存储区逻辑812指导呈条目402形式的适当排列的信息到元数据存储区400的传送。
日志条目逻辑814包括可执行指令,如上结合图5中图解说明的实施例举例所述,当被处理器执行时,确定什么信息将被传送到日志存储区500中的适当排列的日志条目502。另外如上所述,日志条目逻辑814将取回初始索引或序列号,顺序输入每个日志条目,同时每个日志条目与高速缓存存储区300中的CW322成1:1关系地,通过与元数据存储区400的条目中的那些字段一样的信息字段,被映射到位于数据存储区140中的数据。
比较逻辑816包括当被处理器执行时,确定日志存储区500中的有效日志条目的可执行指令。在这点上,比较每个条目的序列号和下一个条目的序列号。采用唯一的递增序列号。从而,只要序列号的差异为0或1,日志条目就有效(从而被应用于元数据400)。当所述差异不为0或1时,比较逻辑816指出处理已到达无效的日志条目,从而终止日志的进一步处理。如上所述,标题信息310提供将在比较中使用的第一个序列号。
在初始化处理期间,选择随机序列号。随机序列号被记录在高速缓存存储区上的标题信息中。第一日志条目将利用保存在标题信息中的序列号。对随后的日志条目来说,序列号被加1。另外如上所述,序列号是按照处理将从逻辑存储区500的结尾绕回到逻辑存储区500的起点的方式排列的。当依据不为0或1的差异值确定日志已满时,易失性存储器中的元数据被写入高速缓存存储区中,序列号被加1,并被保存在标题信息中。对日志的下一次更新将在依据序列号标识的日志位置。
元数据恢复逻辑818包括可执行指令,当被处理器执行时,进行根据元数据存储区400的内容和日志存储器500中的有效条目重建高速缓存镜像600的一系列活动。首先,读取高速缓存存储区300中的标题信息310,以了解高速缓存存储区300的布局和取回下一个可用序列号。元数据存储区的内容被复制到主机系统100的存储器120中的高速缓存镜像600。对照从标题信息310恢复的下一个可用序列号,检查第一个日志条目。如果序列号匹配,那么日志条目有效,与该日志条目相关的数据应被恢复。之后,递增序列号,并关于有效的日志条目,检查序列号。在高速缓存镜像600之上应用有效的日志条目。当序列号不匹配时,最新的元数据被保存在高速缓存存储区中,并终止日志的处理。遍历高速缓存镜像600中的元数据,更新适当的CW。恢复的元数据被写入高速缓存存储区,下一个可用序列号被保存在标题信息310中。这些CW从空闲列表中除去,并按适当的优先级索引或优先值,插入散列表和优先级列表中。另外,CW命中计数被初始化成优先级索引或桶和提升阈值的函数,以确保在适当的较“热”范围中标识CW。之后,允许主机I/O操作。下一个日志条目将按照保存在标题信息310中的序列号,被保存在日志存储区中。
图9A和9B包括图解说明管理高速缓存存储区,以跨越高速缓存装置的重启来改善等待时间的方法900的流程图。等待时间是高速缓存控制器从重启操作恢复所用的时间。恢复意味高速缓存存储区300被复原到包括所有的“热度”和优先队列特性的有效状态。换句话说,高速缓存历史被无损失地恢复。
应注意,方法900包括多个步骤,所述多个步骤包括建立能够跨越重启操作地维持元数据的系统的预备步骤,以及当检测到源于重启的系统恢复时进行的步骤。方法900始于方框902,在方框902,高速缓存存储区被分区,以支持元数据存储区、日志存储区、一组CW和标题信息存储区。在方框904,在主机系统可访问的独立存储器中,填充元数据副本和CW对象的副本。在方框906,每当在保存在独立存储器中的副本中更新元数据副本和CW对象时,就在高速缓存装置的日志存储区中创建一个条目。在方框908,比较日志存储区中的当前索引或序列号与初始索引或检查点,以判定何时达到了日志存储区的容量。在判定框910,判定日志是否已满。当日志未达到容量时,如用退出判定框910的标记“NO”的流程控制箭头所示,处理返回方框906。否则,处理继续进行方框912,在方框912,所述独立存储器中的元数据副本和CW对象被传送给高速缓存存储区。之后,如在方框914中所示,用独立存储器中的下一个可用存储位置,替换标题信息中的初始索引或序列号。
如用连接符A所示,方法900继续进行判定框916,在判定框916,判定高速缓存装置是否已从重启操作恢复。如果否,那么处理继续进行方框906,如用连接符B所示。否则,系统已重启,处理继续进行方框918,在方框918,设定状态标记,以从高速缓存装置130暂停主机I/O操作,从高速缓存存储区读取标题信息,以标识日志中的下一个可用存储位置。在方框920,保存在高速缓存中的元数据的内容被复制到主机系统可访问的独立存储器中的元数据镜像中。在方框922,在元数据之上应用有效日志条目。在方框924,处理恢复的元数据,以标识需要用来自数据存储系统的信息更新的CW。在方框926,该CW从空闲列表中被除去,在散列表中被更新,并按照优先级索引被插入适当的位置。在方框928,按照优先级索引提升阈值,初始化计数器。之后,如在判定框932中所示,判定下一个日志条目是否有效。如果是,那么用唯一的序列号递增索引,如在方框932中所示,然后处理返回方框924。否则,所有的日志条目都已被处理,从而在方框934中复位状态标记,以指示允许I/O操作。
结果,如果高速缓存已满,并且新的数据元素被标识成应归入高速缓存中,那么高速缓存控制器将将在刚好在重启之前的一段时间内,收到相对较低的I/O请求的CW标识成用于CW替换的合适候选者。这样,改进的高速缓存控制器重新使用接收较低的I/O请求的CW,而不是从高速缓存存储区中丢弃相对“较热”的数据区。
为了降低在CW被频繁升级或降级时的日志更新的频度,可以修改日志条目中的更新的粒度。例如,当CW被提升或降低不止25%的优先级时,不管有多少级,都只记录一个日志条目。
应理解,图9A和9B的流程图只是用来例证或说明成为所述方法的基础的逻辑。本领域的技术人员会理解,在各个实施例中,可以按照任意各种方式设计或配置包括高速缓存处理系统或高速缓存控制器的数据处理系统,以实现所述方法。上面说明的步骤或动作可按任何适当的顺序或序列发生,包括并行或者彼此同步地发生。在一些实施例中,上面关于图9A和9B说明的步骤或动作可以与其它步骤或动作结合,或者被省略。尽管为了清楚起见,以图9A和9B中的流程图的形式进行了说明,基础的逻辑可被模块化,或者以任何适当的方式布置。本领域的技术人员能够容易地编程或配置适当的软件或适当的逻辑,比如以专用集成电路(ASIC)或者类似装置或者装置的组合的形式,以实现上面说明的方法。另外,应理解软件指令或类似逻辑与其中保存或包含这样的软件指令或类似逻辑,以便由处理器110执行的局部存储器120或其它存储器的组合包括“计算机可读介质”或“计算机程序产品”,如在专利词典中使用该术语一样。
应注意为了说明本发明的原理和概念,参考一个或多个例证实施例,说明了本发明。本发明并不局限于这些实施例。鉴于这里提供的说明,本领域的技术人员会明白,可对这里说明的实施例作出许多变化,所有这样的变化都在权利要求书中限定的本发明的范围之内。

Claims (20)

1.一种管理高速缓存存储区的方法,所述高速缓存存储区与主计算机系统和数据存储系统相关,用于跨越高速缓存主机控制器的重启地维持高速缓存存储区中的信息,所述方法包括:
分割高速缓存存储区,以提供用于保存元数据的第一部分、用于保存被数据存储管理器标识成应归入高速缓存存储区的数据的数据值的第二部分、用于保存元数据的变化的第三部分和包含与主机和高速缓存存储区有关的信息的第四部分;
按数据存储管理器的指示,用元数据填充第一部分的表示和用数据值填充第二部分的表示,所述数据存储管理器根据表示在期望时间内对保存在数据存储系统中的特定数据项的请求的频率值,标识待保存在高速缓存存储区中的数据项;
每当按数据存储管理器的指示用元数据填充第一部分的表示和用数据值填充第二部分的表示时,在高速缓存存储区的第三部分中创建一个条目,其中第一部分和第二部分的表示被保存在通过主计算机系统、数据存储管理器和高速缓存主机控制器中的一个或多个能够访问的易失性存储器中;
比较在高速缓存存储区的第三部分中的当前索引和初始索引,以判定何时达到第三部分的数据存储容量,当已达到第三部分的数据存储容量时:
将在第一部分的表示中的信息写入高速缓存存储区的对应第一存储区中;和
用高速缓存存储区的第三部分中的下一个可用存储位置替换初始索引。
2.按照权利要求1所述的方法,还包括:
将第一部分的表示、第二部分的表示和第三部分的表示初始化成期望的二进制值。
3.按照权利要求1所述的方法,其中第四部分包含主机的状态的指示、定义第一部分的位置和大小的第一标识符和第一范围、标识第二部分中的高速缓存存储单元的数目和高速缓存存储单元内的每个高速缓存行的大小的第二标识符和第三标识符、以及定义第三部分的相应位置和大小的第四标识符和第四范围。
4.按照权利要求1所述的方法,其中第一部分包含第一条目,第一条目包括虚拟目标标识符、逻辑块地址、优先级索引、保留区域和高速缓存行位图。
5.按照权利要求1所述的方法,其中第三部分包含序列号、高速缓存行位图、虚拟目录标识符、逻辑块地址、优先级索引、保留区域和高速缓存窗口索引。
6.按照权利要求1所述的方法,还包括:
当高速缓存主机控制器重启时,读取第四部分的内容以标识下一个可用序列号;
将高速缓存存储装置的第一部分复制到数据存储管理器和高速缓存存储区可访问的易失性存储器中;
在数据存储管理器和高速缓存存储区可访问的易失性存储器的第一部分中的一个或多个条目之上,应用有效日志条目,以生成恢复的元数据;
遍历恢复的元数据以标识适当的高速缓存窗口,从而用来自数据存储系统的对应数据进行更新;
修改所述适当的高速缓存窗口的状态;
将高速缓存窗口插入散列表和优先级索引中;和
一旦遍历了所有的元数据条目,就向高速缓存主机控制器发送指示。
7.按照权利要求6所述的方法,其中确定有效日志条目包括第一条目中的序列号和随后的条目中的序列号的比较。
8.按照权利要求7所述的方法,其中所述比较包括:
计算第一条目中的序列号与下一个条目中的序列号之间的差异;
确定所述差异是否为0或1;和
当所述差异不为0或1时,终止恢复的元数据的遍历。
9.一种高速缓存控制器,包括:
用于与主计算机系统和数据存储系统进行数据通信的接口;
高速缓存存储区;和
对保存在高速缓存存储区中的标题信息作出响应的处理系统,所述处理系统被配置成:
以可编程方式响应对高速缓存控制器的当前状态作出响应的状态标识符;
标识元数据日志的下一个可用序列号;
标识高速缓存存储区内的元数据存储区的位置和大小;
标识高速缓存存储区内的元数据日志的位置和大小;
标识高速缓存存储区内的多个高速缓存窗口的位置和大小,每个高速缓存窗口包括由高速缓存控制器进一步标识的多个高速缓存行;
将保存在元数据的表示中并且通过主计算机系统能够访问的信息写入高速缓存存储区;和
替换元数据日志中的下一个可用序列号。
10.按照权利要求9所述的高速缓存控制器,其中处理系统还被配置成:
将元数据、高速缓存窗口对象和元数据日志保持在高速缓存存储区中。
11.按照权利要求10所述的高速缓存控制器,其中元数据包括至少一个条目,所述条目包括虚拟目录标识符、逻辑块地址、优先级索引、保留区域和高速缓存行位图。
12.按照权利要求11所述的高速缓存控制器,其中元数据日志包括序列号、高速缓存行位图、虚拟目录标识符、逻辑块地址、优先级索引、保留区域信息和高速缓存窗口索引。
13.按照权利要求9所述的高速缓存控制器,其中处理系统还被配置成:
当高速缓存控制器的重启完成时,
读取高速缓存存储区的表示的内容,所述内容保存在主计算机系统可访问的易失性存储器中并且还包含下一个可用序列号;
将元数据存储区的内容复制到主计算机系统可访问的易失性存储器中;
在元数据存储区中的一个或多个条目之上应用有效日志条目,从而生成恢复的元数据;
遍历恢复的元数据以标识适当的高速缓存窗口,从而用来自数据存储系统的对应数据进行更新;
修改适当的高速缓存窗口的状态;
将高速缓存窗口插入散列表和优先级索引中;和
更新向数据存储系统指示对高速缓冲存储器的输入/输出操作被允许的标记。
14.按照权利要求13所述的高速缓存控制器,其中通过第一条目中的随后序列号和随后的条目中的随后序列号的比较,标识有效日志条目。
15.按照权利要求14所述的高速缓存控制器,其中所述比较包括:
计算第一条目中的随后序列号与下一个条目中的随后序列号的差异;和
确定所述差异是否为0或1。
16.一种计算机可读介质,具有保存在其上的计算机可执行的非临时性的指令,所述指令当在高速缓存控制器的处理系统上执行时指导处理系统:
分割高速缓存存储区,以提供用于保存元数据的第一部分、用于保存被数据存储管理器标识成应归入高速缓存存储区的数据的数据值的第二部分、用于保存元数据的变化的第三部分和包含与主机和高速缓存存储区有关的信息的第四部分;
按数据存储管理器的指示,用元数据填充第一部分的表示和用数据值填充第二部分的表示,所述数据存储管理器根据表示在期望时间内对保存在数据存储系统中的特定数据项的请求的频率值,标识待保存在高速缓存存储区中的数据项;
每当按数据存储管理器的指示用元数据填充第一部分的表示和用数据值填充第二部分的表示时,在高速缓存存储区的第三部分中创建条目,其中第一部分和第二部分的表示被保存在通过主计算机系统、数据存储管理器和高速缓存主机控制器中的一个或多个能够访问的易失性存储器中;
比较在高速缓存存储区的第三部分中的当前索引和初始索引,以判定何时达到第三部分的数据存储容量,当已达到第三部分的数据存储容量时:
将在第一部分的表示中的信息写入高速缓存存储区的对应第一存储区中;和
用高速缓存存储区的第三部分中的下一个可用存储位置替换初始索引。
17.按照权利要求16所述的计算机可读介质,其中处理器还被指导将第一部分的表示、第二部分的表示和第三部分的表示初始化成期望的二进制值。
18.按照权利要求16所述的计算机可读介质,其中第四部分包含主机的状态的指示、定义第一部分的位置和大小的第一标识符和第一范围、标识第二存储部分中的高速缓存存储单元的数目和高速缓存存储单元内的每个高速缓存行的大小的第二标识符和第三标识符、以及定义第三部分的相应位置和大小的第四标识符和第四范围。
19.按照权利要求16所述的计算机可读介质,其中第一部分包含第一条目,第一条目包括虚拟目标标识符、逻辑块地址、优先级索引、保留区域和高速缓存行位图,其中第三部分包含序列号、高速缓存行位图、虚拟目录标识符、逻辑块地址、优先级索引、保留区域和高速缓存窗口索引。
20.按照权利要求16所述的计算机可读介质,其中处理器还被指导:
当高速缓存主机控制器重启时,读取第四部分的内容,以标识下一个可用序列号;
将高速缓存存储区的第一部分复制到通过数据存储管理器、主计算机系统和高速缓存控制器可访问的易失性存储器中;
在通过数据存储管理器和高速缓存存储区可访问的易失性存储器的第一部分中的一个或多个条目之上,应用有效日志条目,以生成恢复的元数据;
遍历恢复的元数据以标识适当的高速缓存窗口,从而用来自数据存储系统的对应数据进行更新;
修改所述适当的高速缓存窗口的状态;
将高速缓存窗口插入散列表和优先级索引中;和
一旦遍历了所有的元数据条目,就向高速缓存主机控制器发送指示。
CN201410053087.9A 2013-03-11 2014-02-17 管理高速缓存存储区的系统、方法和计算机可读介质 Pending CN104050094A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN272/KOL/2013 2013-03-11
IN272KO2013 2013-03-11

Publications (1)

Publication Number Publication Date
CN104050094A true CN104050094A (zh) 2014-09-17

Family

ID=50241211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410053087.9A Pending CN104050094A (zh) 2013-03-11 2014-02-17 管理高速缓存存储区的系统、方法和计算机可读介质

Country Status (6)

Country Link
US (1) US20140258628A1 (zh)
EP (1) EP2778933A1 (zh)
JP (1) JP2014174992A (zh)
KR (1) KR20140111588A (zh)
CN (1) CN104050094A (zh)
TW (1) TW201439763A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107045484A (zh) * 2016-02-05 2017-08-15 爱思开海力士有限公司 数据存储装置
CN107257957A (zh) * 2015-02-25 2017-10-17 微软技术许可有限责任公司 至次级应用的应用高速缓存复制
CN107526689A (zh) * 2016-06-17 2017-12-29 希捷科技有限公司 读高速缓存管理
CN110413199A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品
CN110832466A (zh) * 2017-07-14 2020-02-21 华为技术有限公司 读、部分写数据方法以及相关装置
CN110869912A (zh) * 2017-07-06 2020-03-06 华为技术有限公司 在pcm介质中实现lba淘汰
CN111108485A (zh) * 2017-08-08 2020-05-05 大陆汽车有限责任公司 操作高速缓存的方法
CN111338560A (zh) * 2018-12-19 2020-06-26 北京奇虎科技有限公司 一种缓存重建方法和装置
CN111475345A (zh) * 2019-01-24 2020-07-31 旺宏电子股份有限公司 存储器及存储器操作方法
CN112148640A (zh) * 2019-06-26 2020-12-29 深圳市航顺芯片技术研发有限公司 一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统
CN112889038A (zh) * 2019-02-13 2021-06-01 谷歌有限责任公司 系统级缓存
CN113050893A (zh) * 2021-03-30 2021-06-29 重庆紫光华山智安科技有限公司 一种高并发的文件存储方法、系统、介质及电子终端
CN115437853A (zh) * 2022-11-07 2022-12-06 四川省华存智谷科技有限责任公司 系统异常重启下的缓存数据保护方法及系统

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710199B2 (en) 2014-11-07 2017-07-18 International Business Machines Corporation Non-volatile memory data storage with low read amplification
US10162700B2 (en) 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
US10061590B2 (en) * 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10255182B2 (en) 2015-02-11 2019-04-09 Samsung Electronics Co., Ltd. Computing apparatus and method for cache management
US9600417B2 (en) 2015-04-29 2017-03-21 Google Inc. Data caching
CN106503008B (zh) * 2015-09-07 2020-02-14 网宿科技股份有限公司 文件存储方法和装置及文件查询方法和装置
US9712190B2 (en) 2015-09-24 2017-07-18 International Business Machines Corporation Data packing for compression-enabled storage systems
US9870285B2 (en) 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory
KR102517129B1 (ko) 2015-11-19 2023-04-04 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
EP3188025A1 (en) * 2015-12-29 2017-07-05 Teknologian Tutkimuskeskus VTT Oy Memory node with cache for emulated shared memory computers
JP6717153B2 (ja) * 2016-10-06 2020-07-01 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
US10769134B2 (en) 2016-10-28 2020-09-08 Microsoft Technology Licensing, Llc Resumable and online schema transformations
US10599585B2 (en) * 2017-03-23 2020-03-24 Intel Corporation Least recently used-based hotness tracking mechanism enhancements for high performance caching
US10691566B2 (en) * 2017-07-27 2020-06-23 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
US11036641B2 (en) 2017-08-09 2021-06-15 International Business Machines Corporation Invalidating track format information for tracks demoted from cache
US10579532B2 (en) 2017-08-09 2020-03-03 International Business Machines Corporation Invalidating track format information for tracks in cache
US10565109B2 (en) * 2017-09-05 2020-02-18 International Business Machines Corporation Asynchronous update of metadata tracks in response to a cache hit generated via an I/O operation over a bus interface
US11347600B2 (en) 2017-09-12 2022-05-31 Western Digital Technologies, Inc. Database transaction log migration
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
US10976965B1 (en) * 2020-10-14 2021-04-13 First Capitol Consulting, Inc. Optimization of in-memory processing of data represented by an acyclic graph so that the removal and re-materialization of data in selected nodes is minimized
US11868256B2 (en) * 2021-07-20 2024-01-09 EMC IP Holding Company LLC Techniques for metadata updating and retrieval
CN114301931B (zh) * 2022-03-11 2022-07-08 上海凯翔信息科技有限公司 一种基于云端nas的数据同步系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083263A1 (en) * 2000-12-21 2002-06-27 Yael Petruschka DASD-free non-volatile updates
US20040085849A1 (en) * 2002-04-11 2004-05-06 Samsung Electronics Co., Ltd. Flash memory, and flash memory access method and apparatus
CN1520549A (zh) * 2001-06-27 2004-08-11 英特尔公司 系统启动时间减少的方法
US20050268031A1 (en) * 2004-05-28 2005-12-01 Yoshinori Matsui Method for controlling cache memory of storage device
CN101202732A (zh) * 2006-12-11 2008-06-18 中兴通讯股份有限公司 一种基于媒体服务器实现高速缓存的方法和装置
US20110191522A1 (en) * 2010-02-02 2011-08-04 Condict Michael N Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260114B1 (en) * 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US7380059B2 (en) * 2003-05-16 2008-05-27 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
US7143240B2 (en) * 2003-10-31 2006-11-28 International Business Machines Corporation System and method for providing a cost-adaptive cache
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
EP2577470A4 (en) * 2010-06-04 2013-12-25 Sandisk Entpr Ip Llc CACHE ADMINISTRATION AND ACCELERATION IN STORAGE MEDIA
US8812788B2 (en) * 2010-11-09 2014-08-19 Lsi Corporation Virtual cache window headers for long term access history
KR101824295B1 (ko) * 2011-08-12 2018-01-31 샌디스크 테크놀로지스 엘엘씨 솔리드 스테이트 장치 가상화를 포함하는 캐시 관리
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking
US9251056B2 (en) * 2012-06-01 2016-02-02 Macronix International Co., Ltd. Bucket-based wear leveling method and apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083263A1 (en) * 2000-12-21 2002-06-27 Yael Petruschka DASD-free non-volatile updates
CN1520549A (zh) * 2001-06-27 2004-08-11 英特尔公司 系统启动时间减少的方法
US20040085849A1 (en) * 2002-04-11 2004-05-06 Samsung Electronics Co., Ltd. Flash memory, and flash memory access method and apparatus
US20050268031A1 (en) * 2004-05-28 2005-12-01 Yoshinori Matsui Method for controlling cache memory of storage device
CN101202732A (zh) * 2006-12-11 2008-06-18 中兴通讯股份有限公司 一种基于媒体服务器实现高速缓存的方法和装置
US20110191522A1 (en) * 2010-02-02 2011-08-04 Condict Michael N Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107257957A (zh) * 2015-02-25 2017-10-17 微软技术许可有限责任公司 至次级应用的应用高速缓存复制
US10613978B2 (en) 2015-02-25 2020-04-07 Microsoft Technology Licensing, Llc Application cache replication to secondary application(s)
CN107257957B (zh) * 2015-02-25 2020-05-08 微软技术许可有限责任公司 至次级应用的应用高速缓存复制
CN107045484A (zh) * 2016-02-05 2017-08-15 爱思开海力士有限公司 数据存储装置
CN107045484B (zh) * 2016-02-05 2020-08-25 爱思开海力士有限公司 数据存储装置
CN107526689B (zh) * 2016-06-17 2024-01-16 希捷科技有限公司 读高速缓存管理
CN107526689A (zh) * 2016-06-17 2017-12-29 希捷科技有限公司 读高速缓存管理
CN110869912A (zh) * 2017-07-06 2020-03-06 华为技术有限公司 在pcm介质中实现lba淘汰
CN110832466B (zh) * 2017-07-14 2023-03-10 华为技术有限公司 读、部分写数据方法以及相关装置
CN110832466A (zh) * 2017-07-14 2020-02-21 华为技术有限公司 读、部分写数据方法以及相关装置
CN111108485A (zh) * 2017-08-08 2020-05-05 大陆汽车有限责任公司 操作高速缓存的方法
CN111108485B (zh) * 2017-08-08 2023-11-24 大陆汽车科技有限公司 操作高速缓存的方法
CN110413199A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品
CN110413199B (zh) * 2018-04-28 2023-02-21 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读存储介质
CN111338560A (zh) * 2018-12-19 2020-06-26 北京奇虎科技有限公司 一种缓存重建方法和装置
CN111475345A (zh) * 2019-01-24 2020-07-31 旺宏电子股份有限公司 存储器及存储器操作方法
CN111475345B (zh) * 2019-01-24 2023-03-31 旺宏电子股份有限公司 存储器及存储器操作方法
CN112889038A (zh) * 2019-02-13 2021-06-01 谷歌有限责任公司 系统级缓存
CN112889038B (zh) * 2019-02-13 2024-03-15 谷歌有限责任公司 用于分配缓存资源的方法和系统
CN112148640A (zh) * 2019-06-26 2020-12-29 深圳市航顺芯片技术研发有限公司 一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统
CN113050893B (zh) * 2021-03-30 2022-08-30 重庆紫光华山智安科技有限公司 一种高并发的文件存储方法、系统、介质及电子终端
CN113050893A (zh) * 2021-03-30 2021-06-29 重庆紫光华山智安科技有限公司 一种高并发的文件存储方法、系统、介质及电子终端
CN115437853A (zh) * 2022-11-07 2022-12-06 四川省华存智谷科技有限责任公司 系统异常重启下的缓存数据保护方法及系统

Also Published As

Publication number Publication date
US20140258628A1 (en) 2014-09-11
JP2014174992A (ja) 2014-09-22
EP2778933A1 (en) 2014-09-17
KR20140111588A (ko) 2014-09-19
TW201439763A (zh) 2014-10-16

Similar Documents

Publication Publication Date Title
CN104050094A (zh) 管理高速缓存存储区的系统、方法和计算机可读介质
US10152381B1 (en) Using storage defragmentation function to facilitate system checkpoint
US9280478B2 (en) Cache rebuilds based on tracking data for cache entries
US9619351B2 (en) Clustered RAID assimilation management
US11199973B2 (en) Storage system, computer system, and control method for storage system
US10402091B1 (en) Managing data in log-structured storage systems
US9311015B2 (en) Storage system capable of managing a plurality of snapshot families and method of operating thereof
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US20150347310A1 (en) Storage Controller and Method for Managing Metadata in a Cache Store
US20080016121A1 (en) Method, an apparatus and a system for managing a snapshot storage pool
US20110072225A1 (en) Application and tier configuration management in dynamic page reallocation storage system
US20150074355A1 (en) Efficient caching of file system journals
CN105917318A (zh) 用于实现基于ssd的i/o高速缓存的系统和方法
US8255637B2 (en) Mass storage system and method of operating using consistency checkpoints and destaging
US9053027B1 (en) Techniques for maintaining and restoring dirty caches across CPU resets
CN105302744A (zh) 高速缓存器的无效数据区
CN110737394B (zh) 管理缓存的方法、装置和计算机程序产品
JP2023055998A (ja) ストレージシステム及びストレージシステムの制御方法
US11288006B2 (en) Storage system and volume copying method where changes to address conversion table is rolled back
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US11947811B2 (en) Storage system and data replication method in storage system
US9864688B1 (en) Discarding cached data before cache flush
JP2021022213A (ja) ストレージシステム、ストレージ制御装置およびプログラム
US12105972B2 (en) Storage system and storage control method of data deduplication between virtual devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) CORPORAT

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES CORP.

Effective date: 20150804

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150804

Address after: Singapore Singapore

Applicant after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: California, USA

Applicant before: LSI Corp.

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140917