CN109213696A - 用于缓存管理的方法和设备 - Google Patents

用于缓存管理的方法和设备 Download PDF

Info

Publication number
CN109213696A
CN109213696A CN201710526543.0A CN201710526543A CN109213696A CN 109213696 A CN109213696 A CN 109213696A CN 201710526543 A CN201710526543 A CN 201710526543A CN 109213696 A CN109213696 A CN 109213696A
Authority
CN
China
Prior art keywords
caching
data
read
response
write
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
Application number
CN201710526543.0A
Other languages
English (en)
Other versions
CN109213696B (zh
Inventor
徐鑫磊
高健
贾瑞勇
李雄成
董继炳
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201710526543.0A priority Critical patent/CN109213696B/zh
Priority to US16/021,614 priority patent/US10761990B2/en
Publication of CN109213696A publication Critical patent/CN109213696A/zh
Application granted granted Critical
Publication of CN109213696B publication Critical patent/CN109213696B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0815Cache consistency protocols
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Abstract

本公开的实施例涉及用于缓存管理的方法和设备。该方法包括响应于接收到读请求,确定与读请求相关联的数据是否在第一缓存中,第一缓存是只读缓存。该方法还包括响应于在第一缓存中未命中数据,确定数据是否在第二缓存中,第二缓存是可读且可写缓存。该方法进一步包括响应于在第二缓存中命中数据,返回数据作为对读请求的响应;以及将数据读入第一缓存。

Description

用于缓存管理的方法和设备
技术领域
本公开的实施例涉及存储器领域,具体涉及缓存管理的方法和设备。
背景技术
随着计算机技术的发展,为了提高处理器的处理速度以及其与大容量存储装置之间的存取速度的差异,在处理器和大容量存储装置之间设置了缓存。由于缓存的数据处理能力和处理器的处理能力相近,因此能够快速的接收处理器发送的数据并能将缓存的数据快速的发送给处理器。
在设置缓存后,当要读取的数据在缓存中命中,则从缓存中直接读取数据并返回到上层应用。如果要读取的数据未在缓存中命中,则从下层的大容量存储设备读取数据,此时数据读取时间会比较长。在写入过程中,当要写入的数据在缓存中命中,则直接写入缓存中;如未命中,则会在缓存中分配存储空间以写入数据。所述写入的数据在以后的冲刷过程中存储在下层的大容量存储设备中。因此,为了更好的提高数据处理能力,会将经常用到的数据存储在缓存中。
发明内容
本公开的实施例提供一种缓存管理的方法和设备。
根据本公开的第一方面,提供了一种缓存管理的方法。该方法包括响应于接收到读请求,确定与读请求相关联的数据是否在第一缓存中,第一缓存是只读缓存。该方法还包括响应于在所述第一缓存中未命中所述数据,确定所述数据是否在第二缓存中,所述第二缓存是可读且可写缓存。该方法进一步包括响应于在所述第二缓存中命中所述数据,返回所述数据作为对所述读请求的响应;以及将所述数据读入所述第一缓存。
在某些实施例中,该方法还包括:响应于在第二缓存中未命中数据,从与缓存相关联的下层存储设备读取数据以作为对读请求的响应;以及将数据存储到第一缓存。
在某些实施例中,该方法还包括:基于存储器空间的使用情况,动态地调整第一缓存的大小。
在某些实施例中,其中第一缓存选自用于文件系统的存储器空间。
根据本公开的第二方面,提供了一种缓存管理的方法。该方法包括响应于接收到写请求,确定与所述写请求相关联的数据是否在第一缓存中,所述第一缓存是只读缓存。该方法还包括响应于在所述第一缓存中命中所述数据,将所述数据写入第二缓存中,所述第二缓存是可读且可写缓存;以及将所述数据写入所述第一缓存中。
根据本公开的第三方面,提供了一种缓存管理器。该管理器包括:处理器;存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制该缓存管理器执行动作,动作包括:响应于接收到读请求,确定与读请求相关联的数据是否在第一缓存中,第一缓存是只读缓存;响应于在第一缓存中未命中数据,确定数据是否在第二缓存中,第二缓存是可读且可写缓存;响应于在第二缓存中命中数据,返回数据作为对读请求的响应;以及将数据读入第一缓存。
根据本公开的第四方面,提供了一种缓存管理器。该管理器包括:处理器;存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制该缓存管理器执行动作,所述动作包括:响应于接收到写请求,确定与写请求相关联的数据是否在第一缓存中,第一缓存是只读缓存;响应于在第一缓存中命中所述数据,将数据写入第二缓存中,第二缓存是可读且可写缓存;以及将数据写入第一缓存中。
根据本公开的第五方面提供了一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行本公开的第一方面和第二方面中的方法的步骤。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1A和图1B示出了根据本公开的实施例的存储设备100的架构图;
图2示出了根据本公开的实施例的处理读请求的方法200的示意图;
图3图示了根据本公开的实施例的处理写请求的方法300的流程图;
图4图示了根据本公开的实施例的管理第一缓存的方法400的流程图;以及
图5示出了适于用来实施本公开内容的实施例的示例设备500的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
由于缓存的成本较高,一般在计算设备中设置的缓存容量有限,因此,限制了进一步提高处理器处理数据的能力。另一方面,在计算设备中通常会为一些潜在的服务预先分配预定大小的存储器空间。如果不使用这些潜在的服务,则为这些服务预留的存储器空间空闲,因此造成了存储器资源的浪费。为此,本公开的实施例提供了一种缓存管理的解决方案。在该解决方案中,通过将预留的存储空间作为缓存来使用以改善缓存的数据处理效率。
图1A和图1B图示了根据本公开的实施例的存储系统100的架构图,其中图1A涉及存储系统100上的读操作过程,而图1B涉及存储系统100上的写操作过程。
总体上,存储系统100包括缓存102,控制器116和RAID管理器108。RAID管理器108为能够存储大量数据的大容量存储设备,其包括多个RAID组。在本实施例中其包括三个RAID组110、112、114。上述RAID组的数量仅作为示例,并不用于限制RAID组的数量。在备选的实施例中,RAID管理器108内包括其它数量的RAID组。RAID组内的盘阵列可以为不同级别的盘阵列,可以包括但不限于RAID0、RAID1、RAID0+1、RAID2、RAID3、RAID4、RAID5、RAID7、RAID10、RAID53。在备选的实施例中,RAID管理器108也可以为其它类型的大容量存储设备,其包括各种易失性和/或非易失性数据存储介质。存储介质的示例可以包括但不限于盘阵列、磁盘、光盘、硬盘、固态硬盘(SSD)。
控制器116控制缓存102和RAID管理器108内的各种操作。缓存102能够缓存需要读取或写入的数据。缓存102包括只读缓存104和可读且可写缓存106。可读且可写缓存106为计算设备中通用的缓存,其相对于上层应用是可读的和可写的缓存,在本公开的实施例中也被称为第二缓存。在图1中可读且可写缓存106可被设置为多核缓存MCC。在一个备选实施例中,可读且可写缓存106也可以设置为其它常用的缓存。
只读缓存104也被称为第一缓存,来自为访问RAID管理器108中数据的其它服务预留的存储空间。在一个备选实施例中,只读缓存104来自为通过文件系统访问RAID管理器108而预留的存储空间。该预留的存储空间是用于存储用于文件系统访问的相关信息。如EMC公司的Unity存储设备,其上专门有为通过文件系统访问设置的预留缓存空间。在另一备选实施例中,预留缓存也可用于其它服务。如果不运行与该预留的存储空间相对应的服务时,该预留的缓存空间则会被闲置。
为了能够在通用缓存存储容量有限的情况下提高缓存的处理能力,当预留缓存存在空闲存储空间时,将其空闲的存储空间用作处理器处理数据的缓存,可以提高缓存的利用率并且提高数据处理的效率。
由于该预留缓存是用于其它服务的,因此设置该第一缓存相对于上层应用是只读的,以便在其它服务再次使用该部分存储空间时能够及时释放相应的存储空间,并且在电源关闭时也不会造成数据的丢失。
在本公开中只读缓存104结合可读且可写缓存106共同作为计算设备100的缓存来处理数据,使得在不改变原有缓存存储空间的情况下增加了可用的缓存空间,提高了数据处理的效率。下面的内容将详细介绍利用只读缓存104结合可读且可写缓存106进行数据读写处理的过程。
图2示出了根据本公开的实施例的用于处理读请求的方法200的示意图。下面将结合图1A和图2的方法200详细描述使用只读缓存104和可读且可写缓存106进行读取操作的过程。
当应用需要读取数据存储系统100中的数据时,在框202处,控制器116接收到读取请求。此时,控制器116会在缓存102中查找是否存在与读请求相关联的数据。由于本文中缓存102包括只读缓存104和可读且可写缓存106。因此,设置读取操作首先查找只读缓存104。
在框204处,控制器112判定与读请求相关联的数据是否在只读缓存104中。如果与读请求相关联的数据在只读缓存104中,则表明数据在只读缓存中命中,因此直接从只读缓存104中读取数据,并将该数据作为对读请求的响应返回给应用,如框216所示。
当与读请求相关联的数据未存于第一缓存中时,表示在第一缓存中缺失要读取的数据,如图1A所示,则读取操作则进入到可读且可写缓存106,此时如在框206处所示,需要确定要读取的数据是否位于可读且可写缓存106,即是否位于第二缓存中。当该数据位于可读且可写缓存106中时,如框208所示,从可读且可写缓存106读取数据,然后将读取的数据读入只读缓存104,即读入第一缓存,如框212所示,同时还将读取的数据作为对读请求的响应返回给上层应用,如框214所示。
从上述内容可知,在从可读且可写缓存106读取的数据返回上层应用时还读入只读缓存104,这样操作的好处在于在下次读取操作时,可以提高第一缓存中数据的读取命中率。在本公开的实施例中,图2中示出的框212、214的顺序仅是为了示意的目的,不表示这两个框内的操作具有特定的顺序。在一个备选实施例中,可以先进行框214内的操作,然后进行框212内的操作。在一个备选实施例中,可以同时进行上述两个操作。
如果要读取的数据也不在可读且可写缓存106中,表明所要读取的数据在可读且可写缓存106中也未命中,在框210处,直接从RAID管理器108中读取数据,即从下层的大容量存储设备中读取数据。然后将读取的该数据读入只读缓存104,如框212所示,然后将数据作为对读请求的响应返回给上层应用,如框214所示。
在上述图2所示的读取过程中,通过利用增加的只读缓存104增大了用于数据处理的缓存的容量,提高了缓存的利用率。同时,在读取过程中,当要读取的数据在只读缓存中未命中时,将数据在返回上层应用时也读入只读缓存,使得提高了针对只读缓存的读请求的命中率,也将有效提高整体缓存的命中率。
上文在图2中描述了由只读缓存104和可读且可写缓存106组成的新的缓存的读取过程,下面将结合图1B和图3中详细描述由只读缓存104和可读且可写缓存106组成的新的缓存的写入过程。图3示出了根据本公开的实施例的处理写请求的方法300的流程图。
在框302处,当控制器116接收到写请求时,控制器会首先查找缓存中是否存在要写入的数据。由于新的缓存是由只读缓存104和可读且可写缓存106组成的,即由第一缓存和第二缓存组成的,在确定与写请求相联的数据否在缓存中命中时,设置先确定在只读缓存104中是否存在与写请求相关联的数据,如框304所示。
在本公开中只读缓存104仅被设置为相对于上层应用是只读的,其在存储系统内部是可写入的。在本公开中在只读缓存104中存储的是干净数据。如果与只读缓存104中的数据对应的第二缓存106或RAID管理器108内的数据不一致时,只读缓存104中的数据也要做出相应的变化以保证数据干净。由于写入操作会导致数据的变化,因此,需判定与写请求相关联的数据是否在第一缓存中。
当与写请求相关联的数据在只读缓存104中时,为了保证只读缓存104中数据与可读且可写缓存106中的数据相同,在框306处,将与写请求相关联的数据写入第一缓存。
在框308处,将数据写入可读且可写缓存106。在一个备选实施例中,在可读且可写缓存106中无论是否命中要写入的数据,均将数据写入可读且可写缓存106中。
虽然图3中图示了框306和框308的顺序,但其仅为示意,而非限定其顺序。在一个备选实施例中,在写请求相关联的数据在只读缓存104中时,先将数据写入可读且可写缓存,然后将数据写入只读缓存。在一个备选实施例中,还可以同时将数据写入可读且可写缓存106和写入只读缓存104。
当与写请求相关联的数据不在第一缓存中时,在框308处,将数据写入第二缓存。在上述操作中,将数据写入第二缓存后,向上层应用返回写操作完成命令。
上述图3描述了由只读缓存104和可读且可写缓存106组成的缓存实现写请求的过程。在一个备选实施例中在可读和可写缓存中存储的脏数据通过冲刷操作写入到下层存储设备。其冲刷过程可以采用各种已知的方式进行。
上述图2和图3描述了只读缓存104结合可读且可写缓存106作为新的缓存的读写操作过程。但是由于只读缓存是利用为其它服务预留的存储空间的空闲空间来实现的。因此,只读缓存的存储空间是变化的,如图4所示,这种设置使得存储空间在保证其它服务顺利进行的同时又最大限度的利用空闲存储空间,提高了缓存的利用率。
在框402处,当接收到其它服务(诸如文件访问)使用预留缓存的命令时,即需要为其它服务分配缓存空间时,会减小只读缓存104的大小,以便释放存储空间用于实现其它服务。在一个备选实施例中,所述其它服务可以为文件访问服务之外的其它服务。
在框404处,当接收到其它服务(诸如文件访问)不使用预留缓存的命令时,即收到释放用于其它服务的存储空间时,可以增大只读缓存的空间。此时可以重新将存储在可读且可写缓存106和RAID管理器中的数据读入只读缓存104。
图5示出了可以用来实施本公开内容的实施例的示例设备500的示意性框图。例如,如图1所示的108、116中的任一项可以由设备500来实施。如图所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、300和400,可由处理单元501执行。例如,在一些实施例中,方法200、300和400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到RAM503并由CPU 701执行时,可以执行上文描述的方法200、300或400的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (15)

1.一种缓存管理的方法,包括:
响应于接收到读请求,确定与所述读请求相关联的数据是否在第一缓存中,所述第一缓存是只读缓存;
响应于在所述第一缓存中未命中所述数据,确定所述数据是否在第二缓存中,所述第二缓存是可读且可写缓存;
响应于在所述第二缓存中命中所述数据,
返回所述数据作为对所述读请求的响应;以及
将所述数据读入所述第一缓存。
2.根据权利要求1所述的方法,还包括:
响应于在所述第二缓存中未命中所述数据,从与所述缓存相关联的下层存储设备读取所述数据以作为对所述读请求的响应;以及
将所述数据存储到所述第一缓存。
3.根据权利要求1所述的方法,还包括:
基于存储器空间的使用情况,动态地调整所述第一缓存的大小。
4.根据权利要求1所述的方法,其中所述第一缓存选自用于文件系统的存储器空间。
5.一种缓存管理的方法,包括:
响应于接收到写请求,确定与所述写请求相关联的数据是否在第一缓存中,所述第一缓存是只读缓存;
响应于在所述第一缓存中命中所述数据,
将所述数据写入第二缓存中,所述第二缓存是可读且可写缓存;以及
将所述数据写入所述第一缓存中。
6.根据权利要求5所述的方法,还包括:
基于存储器空间的使用情况,动态地调整所述第一缓存的大小。
7.根据权利要求5所述的方法,其中所述第一缓存选自用于文件系统的存储器空间。
8.一种缓存管理器,所述管理器包括:
处理器;
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令以控制该缓存管理器执行动作,所述动作包括:
响应于接收到读请求,确定与所述读请求相关联的数据是否在第一缓存中,所述第一缓存是只读缓存;
响应于在所述第一缓存中未命中所述数据,确定所述数据是否在第二缓存中,所述第二缓存是可读且可写缓存;
响应于在所述第二缓存中命中所述数据,
返回所述数据作为对所述读请求的响应;以及
将所述数据读入所述第一缓存。
9.根据权利要求8所述的缓存管理器,还包括:
响应于在所述第二缓存中未命中所述数据,从与所述缓存相关联的下层存储设备读取所述数据以作为对所述读请求的响应;以及
将所述数据存储到所述第一缓存。
10.根据权利要求8所述的缓存管理器,还包括:
基于存储器空间的使用情况,动态地调整所述第一缓存的大小。
11.根据权利要求8所述的缓存管理器,还包括:
其中所述第一缓存选自用于文件系统的存储器空间。
12.一种缓存管理器,所述管理器包括:
处理器;
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令以控制该缓存管理器执行动作,所述动作包括:
响应于接收到写请求,确定与所述写请求相关联的数据是否在第一缓存中,所述第一缓存是只读缓存;
响应于在所述第一缓存中命中所述数据,
将所述数据写入第二缓存中,所述第二缓存是可读且可写缓存;以及
将所述数据写入所述第一缓存中。
13.根据权利要求12所述的缓存管理器,还包括:
基于存储器空间的使用情况,动态地调整所述第一缓存的大小。
14.根据权利要求12所述的缓存管理器,其中所述第一缓存选自用于文件系统的存储器空间。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至4或者5至7中任一项所述的方法的步骤。
CN201710526543.0A 2017-06-30 2017-06-30 用于缓存管理的方法和设备 Active CN109213696B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710526543.0A CN109213696B (zh) 2017-06-30 2017-06-30 用于缓存管理的方法和设备
US16/021,614 US10761990B2 (en) 2017-06-30 2018-06-28 Methods and devices for managing cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710526543.0A CN109213696B (zh) 2017-06-30 2017-06-30 用于缓存管理的方法和设备

Publications (2)

Publication Number Publication Date
CN109213696A true CN109213696A (zh) 2019-01-15
CN109213696B CN109213696B (zh) 2023-06-06

Family

ID=64734818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710526543.0A Active CN109213696B (zh) 2017-06-30 2017-06-30 用于缓存管理的方法和设备

Country Status (2)

Country Link
US (1) US10761990B2 (zh)
CN (1) CN109213696B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083549A (zh) * 2019-04-01 2019-08-02 福建天泉教育科技有限公司 一种缓存读写的方法及终端
CN113672525A (zh) * 2020-05-15 2021-11-19 爱思开海力士有限公司 存储器系统
CN114489551A (zh) * 2022-02-09 2022-05-13 广东乐心医疗电子股份有限公司 数据显示方法、装置及电子设备
CN115061972A (zh) * 2022-07-05 2022-09-16 摩尔线程智能科技(北京)有限责任公司 处理器、数据读写方法、装置和存储介质
CN115098045A (zh) * 2022-08-23 2022-09-23 成都止观互娱科技有限公司 一种数据存储系统及网络数据读取和写入方法
CN116303135A (zh) * 2023-02-24 2023-06-23 格兰菲智能科技有限公司 任务数据的装载方法、装置和计算机设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US10970222B2 (en) * 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088789A (en) * 1998-05-13 2000-07-11 Advanced Micro Devices, Inc. Prefetch instruction specifying destination functional unit and read/write access mode
US20030101307A1 (en) * 2001-03-15 2003-05-29 Riccardo Gemelli System of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US20060294312A1 (en) * 2004-05-27 2006-12-28 Silverbrook Research Pty Ltd Generation sequences
CN101149668A (zh) * 2007-11-02 2008-03-26 杭州华三通信技术有限公司 一种包括读写缓存的存储设备及缓存实现方法
US8943273B1 (en) * 2008-08-14 2015-01-27 Marvell International Ltd. Method and apparatus for improving cache efficiency
US20170091107A1 (en) * 2015-09-25 2017-03-30 Dell Products, L.P. Cache load balancing by reclaimable block migration

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745324B1 (en) * 2000-11-16 2004-06-01 International Business Machines Corporation Dynamic firmware image creation from an object file stored in a reserved area of a data storage device of a redundant array of independent disks (RAID) system
US7203939B2 (en) * 2002-06-04 2007-04-10 Mirapoint, Inc. Dense allocation for data storage
US8924647B1 (en) 2012-09-26 2014-12-30 Emc Corporation Dynamic selection of data replacement protocol for multi-level cache
US9047225B1 (en) 2012-09-27 2015-06-02 Emc Corporation Dynamic selection of data replacement protocol for cache
US9563382B2 (en) * 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US9727479B1 (en) 2014-09-30 2017-08-08 EMC IP Holding Company LLC Compressing portions of a buffer cache using an LRU queue
US9864683B1 (en) 2014-09-30 2018-01-09 EMC IP Holding Company LLC Managing cache for improved data availability by associating cache pages with respective data objects
US9645932B1 (en) 2014-12-19 2017-05-09 EMC IP Holding Company LLC Persistent metadata cache

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088789A (en) * 1998-05-13 2000-07-11 Advanced Micro Devices, Inc. Prefetch instruction specifying destination functional unit and read/write access mode
US20030101307A1 (en) * 2001-03-15 2003-05-29 Riccardo Gemelli System of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US20060294312A1 (en) * 2004-05-27 2006-12-28 Silverbrook Research Pty Ltd Generation sequences
CN101149668A (zh) * 2007-11-02 2008-03-26 杭州华三通信技术有限公司 一种包括读写缓存的存储设备及缓存实现方法
US8943273B1 (en) * 2008-08-14 2015-01-27 Marvell International Ltd. Method and apparatus for improving cache efficiency
US20170091107A1 (en) * 2015-09-25 2017-03-30 Dell Products, L.P. Cache load balancing by reclaimable block migration

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083549A (zh) * 2019-04-01 2019-08-02 福建天泉教育科技有限公司 一种缓存读写的方法及终端
CN110083549B (zh) * 2019-04-01 2021-10-01 福建天泉教育科技有限公司 一种缓存读写的方法及终端
CN113672525A (zh) * 2020-05-15 2021-11-19 爱思开海力士有限公司 存储器系统
CN114489551A (zh) * 2022-02-09 2022-05-13 广东乐心医疗电子股份有限公司 数据显示方法、装置及电子设备
CN115061972A (zh) * 2022-07-05 2022-09-16 摩尔线程智能科技(北京)有限责任公司 处理器、数据读写方法、装置和存储介质
CN115061972B (zh) * 2022-07-05 2023-10-13 摩尔线程智能科技(北京)有限责任公司 处理器、数据读写方法、装置和存储介质
CN115098045A (zh) * 2022-08-23 2022-09-23 成都止观互娱科技有限公司 一种数据存储系统及网络数据读取和写入方法
CN116303135A (zh) * 2023-02-24 2023-06-23 格兰菲智能科技有限公司 任务数据的装载方法、装置和计算机设备
CN116303135B (zh) * 2023-02-24 2024-03-22 格兰菲智能科技有限公司 任务数据的装载方法、装置和计算机设备

Also Published As

Publication number Publication date
US10761990B2 (en) 2020-09-01
CN109213696B (zh) 2023-06-06
US20190004959A1 (en) 2019-01-03

Similar Documents

Publication Publication Date Title
CN109213696A (zh) 用于缓存管理的方法和设备
US10936202B2 (en) Allocating storage extents in a storage system
US9639459B2 (en) I/O latency and IOPs performance in thin provisioned volumes
CN110413199A (zh) 管理存储系统的方法、设备和计算机程序产品
CN108733518A (zh) 用于管理存储系统的方法、设备和计算机可读介质
CN110413201A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN109213694A (zh) 用于缓存管理的方法和设备
CN105760111B (zh) 用于管理介质的预加载特征参数的方法和系统
CN108984104A (zh) 用于缓存管理的方法和设备
CN106484330A (zh) 一种混合磁盘分层数据优化方法和装置
US10380023B2 (en) Optimizing the management of cache memory
CN108733316A (zh) 用于管理存储系统的方法和管理器
US11023383B2 (en) Cache management based on types of I/O operations
CN104951239B (zh) 高速缓存驱动器、主机总线适配器及其使用的方法
CN110058953A (zh) 用于改变存储系统的类型的方法、设备和计算机程序产品
CN109725830A (zh) 管理独立磁盘冗余阵列的方法、设备和计算机程序产品
CN109582213A (zh) 数据重构方法及装置、数据存储系统
CN109471843A (zh) 一种元数据缓存方法、系统及相关装置
CN109871181A (zh) 一种对象存取方法及装置
CN109725823A (zh) 用于管理混合存储盘阵列的方法和设备
CN108984566A (zh) 用于文件系统日志的方法和设备
US11567664B2 (en) Distributing data across a mixed data storage center
US11169933B2 (en) Integration of application indicated maximum time to cache for a two-tiered cache management mechanism
CN108733307A (zh) 存储管理方法、设备以及计算机可读介质
US11176057B2 (en) Integration of application indicated minimum time to cache for a two-tiered cache management mechanism

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant