CN102841854A - 根据动态分级存储器缓存认知执行数据读取的方法和系统 - Google Patents

根据动态分级存储器缓存认知执行数据读取的方法和系统 Download PDF

Info

Publication number
CN102841854A
CN102841854A CN2012101553258A CN201210155325A CN102841854A CN 102841854 A CN102841854 A CN 102841854A CN 2012101553258 A CN2012101553258 A CN 2012101553258A CN 201210155325 A CN201210155325 A CN 201210155325A CN 102841854 A CN102841854 A CN 102841854A
Authority
CN
China
Prior art keywords
data
memory
module
storage
policy
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
CN2012101553258A
Other languages
English (en)
Inventor
B·S·吉尔
H·海尔曼
E·什姆里
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102841854A publication Critical patent/CN102841854A/zh
Pending legal-status Critical Current

Links

Images

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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy

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

本发明涉及根据动态分级存储器缓存认知执行数据读取的方法和系统。描述了一种用于在存储系统内实现动态分级存储器缓存(HMC)认知的方法、系统和计算机程序产品。具体地讲,当在存储系统内执行动态读操作时,数据模块根据确定数据是否存在于分级存储器缓存中的策略评估数据预取方针并在之后在需要的情况下修改数据预取方针。该系统随后使用该数据预取方针执行存储装置的读操作以使存储装置的未来数据检索最小化。另外,在包括进行协作以满足数据检索请求的多个存储节点的分布式存储环境中,能够针对每个存储节点执行动态分级存储器缓存认知而不会降低分布式存储环境的总体性能。

Description

根据动态分级存储器缓存认知执行数据读取的方法和系统
技术领域
本发明涉及根据动态分级存储器缓存认知(dynamichierarchical memory cache awareness)策略执行数据读操作的计算系统。
背景技术
分级存储器系统包括多层的存储器,从而使一层可以比另一层更快且更小,所述另一层可以更慢且更大。例如,已知随机存取存储器(RAM)具有寄存器寻址以便能够针对数据检索实现快速直接存储器存取。相比之下,硬盘驱动器(HDD)是电磁存储装置,它需要旋转盘以在盘上找到正确位置以检索数据。已知用于找到存储在硬盘驱动器上的数据的查找时间远长于随机存取存储器的查找时间。
因此,避免在硬盘驱动器上执行查找的数据检索可改进总体存储系统响应时间。
发明内容
描述了一种动态地形成用于分级存储器缓存存储系统的数据预取策略的本发明的实施例。例如,通过检查分级存储器缓存存储系统的至少一层,系统形成未来读操作所需的数据的认知,由此通过使用合适的选择性数据预取方针避免从存储系统的可能较慢的存储装置的不必要的数据检索操作。根据数据预取策略能够确定这种方针。
在示例性实施例中,一种用于分布式存储环境中的数据检索的计算装置实现的方法包括:分配分级存储器缓存模块和海量存储模块的数据存储位置。该方法还包括:由数据模块确定数据预取方针。数据模块还包括用于确定数据是否存在于分级存储器缓存模块的第一存储器中的方法。另外,该方法包括:确定数据是否存在于分级存储器缓存模块的第二存储器中。最后,该方法包括:如果数据不存在于第一存储器中,则选择由数据模块基于数据存在于第二存储器还是海量存储模块中确定的至少一种数据预取方针。
在存储系统的另一实施例中,该系统包括用于由数据模块确定数据预取方针的处理器和存储器。该存储器包括用于数据的分配的分级存储器缓存,从而分级存储器缓存还包括第一存储器和比第一存储器大的第二存储器。此外,该系统包括用于数据的分配的海量存储模块。数据模块在分级存储器缓存的数据检索操作期间确定数据预取方针。
在用于执行动态读操作的计算机程序产品的另一实施例中,计算机程序产品包括存储有计算机可读程序代码部分的计算机可读存储介质。计算机可读程序代码部分包括:第一可执行部分,用于通过确定数据是否存在于分级存储器缓存模块中确定执行存储装置的读操作的至少一种数据预取方针。该实施例还包括:第二可执行部分,用于通过使用当数据不存在于分级存储器模块中时由数据模块确定的所述至少一种数据预取方针执行存储装置的读操作。
应该理解,通过下面结合附图进行的详细描述,本发明的其它方面将会变得清楚,该详细描述作为示例示出了本发明的原理。
附图说明
图1是示出了根据本发明实施例执行数据操作的分布式存储环境的图;
图2A是示出了根据本发明实施例的分布式存储环境的存储节点的图;
图2B是示出了根据本发明实施例的分布式存储环境的一对存储节点的图;
图2C是示出了根据本发明实施例的存储节点的数据模块的示图。
图3是示出了根据本发明实施例的存储节点内的动态分级缓存认知的操作的图;以及
图4是根据本发明实施例能够在分布式存储环境内实现动态分级缓存认知的可执行代码部分的操作的流程图。
具体实施方式
下面的实施例描述一种用于在存储系统内实现动态分级存储器缓存认知的方法、系统和计算机程序产品。具体地讲,当在存储系统内执行动态读操作时,数据模块根据确定数据是否存在于分级存储器缓存中的策略评估数据预取方针并在之后修改数据预取方针(如果需要的话)。该系统随后使用数据预取方针执行存储装置的读操作以使存储装置的未来数据检索最小化。通过根据需要经常动态改变数据预取方针(也称为选择性预取),系统能够学习如何预测未来的数据存取模式。另外,在包括进行协作以满足数据检索请求的多个存储节点的分布式存储环境中,能够针对每个存储节点执行动态分级存储器缓存认知而不会降低分布式存储环境的总体性能。然而,对于本领域技术人员而言显而易见的是,可以在没有这些特定细节中的一些或全部细节的情况下实施本发明的实施例。在其它实例中,公知的处理操作未被详细描述以防止模糊本文描述的本发明的实施例。
例如,图1是示出了根据本发明实施例执行数据操作的分布式存储环境的图。多个主机计算机(诸如,主机-A 102、主机-B 104和主机-C 106)在分布式存储环境内与至少一个存储节点140通信。每个主机计算机能够是服务器、客户机、膝上型计算机、平板计算机、控制台、交换机、路由器、移动装置(诸如,智能电话)或者向分布式存储环境的用户提供数据存储/检索/修改服务的其它计算装置。另外,每个存储节点140是包括至少一个处理器、随机存取存储器等的计算装置。存储节点140的内部部件能够包括可商购获得的现成部件,或者能够根据规范而被制造。不管如何制造存储节点140,应该理解,它用作用于满足数据操作(诸如,读和写操作)的存储装置。产生这些读和写操作以满足对主机计算机的数据请求和来自主机计算机的数据请求。
存储节点140从一个或多个主机计算机接收输入/输出(I/O)请求,所述I/O请求是用于在逻辑卷(未示出)上的逻辑地址读或写数据的命令。任何数量的主机计算机通过现有技术中已知的任何方式(例如,使用网络110)耦接到存储节点140。这里,仅作为示例,假设主机计算机和存储节点140耦接在一起以用作包括数据连接和主机总线适配器(HBA)(未示出)的存储区域网络(SAN)。逻辑地址指定SAN的逻辑卷内的数据块的范围,每个块的大小为例如512字节。在一个实施例中,主机-A 102上的数据处理应用中使用的10KB数据记录可存储为20个块,主机计算机可指定这20个块存储在包括逻辑卷的块1000至1019的逻辑地址。应该理解,存储节点140也能够用作网络连接存储器(NAS)或者混合SAN/NAS系统。
每个存储节点140包括分级存储器缓存(HMC)模块120和海量存储模块130。HMC模块120包括至少一个高速存储器装置,诸如动态随机存取存储器、固态存储装置等。通过使用高速存储器装置,与其它物理存储装置(诸如,硬盘驱动器(HDD)、磁带等)相比能够更快地存储和检索数据。应该理解,存储节点140中使用的HMC模块120的数量可以是任何合适的数量。尽管存储节点140中的所有HMC模块120可以按照基本上相同的方式工作并包括基本上相似的元件,但在其它实施例中不要求如此。每个HMC模块120耦接到一组物理存储装置(诸如,海量存储模块130)并且与所述一组物理存储装置通信。海量存储模块130能够包括任何类型的存储介质,诸如硬盘驱动器(HDD)、磁带、光驱等。本领域技术人员将能够使本文的HMC模块120和海量存储模块130的描述适应于不同的大小,诸如兆字节、吉字节(gigabyte)、太字节(terabyte)、艾字节(exabyte)等。
每组物理存储装置可包括不同的慢和/或快存取时间。例如,一个物理存储装置可以是高速HDD,而另一物理存储装置可以是低速HDD,因此也许具有比高速HDD低的成本。响应于I/O命令,HMC模块120可在海量存储模块130的每个物理存储装置的可寻址物理位置读或写数据。如稍后参照图2B的实施例所述,HMC模块120可在物理存储装置上施加某些控制功能。这些控制功能(诸如,访问哪个HDD以执行数据查找操作)可替代地由诸如盘控制器(未示出)的硬件装置实现,所述硬件装置能够链接到HMC模块120或者与HMC模块120通信。
具有连续逻辑地址的数据通常分布在海量存储模块130的物理存储装置之间。或者,数据能够使用其它算法(例如,字节或者块交织)分布。通常,这例如通过允许一次从超过一个盘对SAN中的卷或者网络连接存储器中的文件进行读或写而增加了带宽。然而,这种技术需要各种HDD之间的协作,并且在实践中可能需要针对盘故障的复杂规定。另外,该技术可能需要用于处理错误校验信息的策略,例如用于存储与分布的数据相关的奇偶校验信息的技术。实际上,当逻辑单元分区以足够小的粒度分布时,与单个逻辑单元关联的数据可跨越所有的物理存储装置。
图2A是示出了根据本发明实施例的分布式存储环境的存储节点140的图。在一个实施例中,HMC模块120能够包括高级存储器缓存204和低级存储器缓存206。在另外的实施例中,可存在更多或更少级别的存储器缓存。与海量存储模块130的物理存储装置的存取时间相比,这些存储器缓存中的每一个能够具有更快的用于数据检索的存取时间。例如,高级存储器缓存204可以是易失性动态随机存取存储器(DRAM)并且低级存储器缓存206可以是非易失性固态驱动器(SSD)。应该理解,这些仅是例子,并且这两种存储器缓存可以都是非易失性的或者易失性的并且能够容易地互换以提供例如非易失性高级存储器缓存204和易失性低级存储器缓存206。
如上所述,海量存储模块130包括一组存储介质,诸如HDD、磁带等。应该理解,海量存储模块130的物理存储装置也可以是SSD,但为了简单,对于以下描述的实施例的例子将会描述HDD。因此,作为示例,高级存储器缓存204可以具有比低级存储器缓存206快的数据存取时间。进而,低级存储器缓存206具有比海量存储模块130快的数据存取时间。其它实施例可在各级的存储器缓存和海量存储模块130之间具有近乎同时的数据存取时间,但在那些实施例中,HMC模块120和海量存储模块130之间的数据带宽可能有限,因此与仅对HMC模块120的数据存取请求相比更慢地响应数据存取请求。因此,以下情况将是有益的:能够预测数据存取模式以满足从高速存储装置的数据读操作而不必访问低速存储装置。
现在参照图2B,图2B是示出了根据本发明实施例的分布式存储环境的一对存储节点的图。在具有两个存储节点的例子中,第一存储节点242与第二存储节点244一起用作分布式存储环境。特别地,主机-A 102能够通过在网络110上通信请求存储在第一存储节点242上的数据。具体地讲,如果要存取的数据存储在第一存储节点242的海量存储模块(未示出)上,则数据存取请求由接口模块212接收并被发送给数据模块222,数据模块222在本地搜索该数据。或者,如果数据请求源自主机-C 106,则第一存储节点242可接收该请求并与第二存储节点244的数据模块224通信以满足该数据请求。因此,在一些实施例中,应该理解,任何存储节点的任何接口模块能够与任何其它存储节点的数据模块通信以找到数据。具体地讲,一旦任何存储节点的任何数据模块从接口模块接收数据查找操作请求,该数据模块就与该数据模块所在的存储节点的海量存储模块通信以寻找数据。
另外,第一存储节点242和第二存储节点244均包括操作系统。操作系统能够为任何类型,诸如任何Unix或者类似于Unix的操作系统或者专有/非专有操作系统。任何存储节点的每个操作系统的功能在于管理任何存储节点的所有硬件和软件资源。应该理解,能够实现接口模块和数据模块的功能的一些或者全部功能能够在操作系统内工作。然而,为了由图2B显示的例子的目的,接口模块和数据模块在操作系统的外部工作。
特别地,图2C是示出了根据本发明实施例的存储节点的数据模块222的图。数据模块222包括提取模块250和至少一个方针270。提取模块250确定是否改变数据预取方针,诸如方针270。另外,提取模块250能够根据能够由用户、系统管理员等确定的数据预取策略执行这些方针改变。具体地讲,管理员可建立方针,诸如:执行数据块读,包括查找到的数据连同该数据周围的100KB的块。随着时间过去,通过执行本发明的实施例,方针也许能够改变以读取查找到的数据块周围的更多或更少的数据。或者,通过监测多久一次从特定卷检索数据的历史,能够由数据模块222改变方针270。例如,该历史可保存在由数据模块222在存储器中保持的日志或数据库中。具体地讲,在一个实施例中,日志能够是代表已在读操作期间访问的数据块的页的位图。这些页能够是存储在HMC中的页并且是已满足的数据读操作的记录。纯粹作为例子,位图至少为DRAM的大小。应该理解,位图仅是例子,并且数据库能够用于这个目的,诸如平面或关系数据库。
作为简单例子,考虑诸如参照图3描述的数据请求,图3示出了根据本发明实施例的存储节点内的动态分级缓存认知的操作。主机-B104正在操作数据库(DB)应用,诸如例如任何公知的关系数据库。DB应用不具有主机-B 104上需要的数据并产生数据读操作。最后,如以下所讨论,通过执行已假定由存储系统存储的数据块(数据区块,data chunk)的查找操作,数据读操作将满足该请求。当然,如果数据未由该存储系统存储,则替代于该数据,消息“未找到数据”可被返回给主机-B 104。
接下来,数据读操作请求由接口模块212接收,接口模块212把该请求转发给数据模块222。现在,数据模块222检查可在HMC模块120中实现为高级存储器缓存204的DRAM。如果在高级存储器缓存204中未找到数据区块,则数据模块222检查可以是SSD的低级存储器缓存206。如果未找到数据区块,则数据模块222检查可包括HDD的海量存储模块130。通过利用数据局部性的概念,所述数据局部性的概念可定义为:如果请求一个数据区块,则认为在不远的将来会请求相邻的数据区块。因此,本发明的各种实施例的优点执行数据预取或者数据预读取(readahead)。具体地讲,当数据模块222发起查找数据的请求并最后在海量存储模块130中找到数据区块时,存在这样的假设:不久可能访问相邻的数据区块。因此,数据模块222使用提取模块250执行数据预取方针270以从海量存储模块130读取比原本请求的数据多的数据。有益地,数据模块222能够避免未来针对低速存储装置的另一查找。
例如,关于分布式存储环境的实施例中的数据预取方针的操作,数据能够按照1MB数据区块被写到海量存储模块130。在逻辑上,卷上的1MB的逻辑数据能够位于HDD上的1MB的物理存储区上。此外,数据区块(诸如,数据区块310至数据区块380)能够以连续的方式被写到HDD。因此,如果由主机-B 104的DB应用查找数据区块320,则执行的读能够是数据区块320连同周围的数据区块310和数据区块330。因此,由低级存储器缓存206存储3MB的数据区块,低级存储器缓存206能够具有比海量存储模块130快的查找时间。之后,数据区块320能够被存储在高级存储器缓存204中并返回给数据模块222。进而,数据模块222把数据区块320发送给接口模块212并且发送给主机-B 104。
在稍后的时间,主机-B 104请求数据区块310。在这个读操作期间,在高级存储器缓存204中的无结果的搜索之后,数据模块222在低级存储器缓存206中找到查找到的数据区块310。之后,数据区块310被存储在高级存储器缓存204中并以类似于数据区块320的方式被发送给主机-B 104。关于本发明的实施例,随着时间过去,预取到HMC模块120中的数据区块可能多于为满足数据读请求而实际需要的数据区块,或者,可能不够并且可能需要查找的数据区块周围的超过1MB的数据区块。因此,方针270能够改变以停止数据预取、预取更少的数据区块或者预取更多的数据区块。每个数据读操作提供使数据模块222学习预取多少数据区块的机会,并且相应地能够在每个读操作之后修改方针270。
应该理解,虽然一个方针270显示在图3中,但能够存在超过一个方针。例如,能够存在用于海量存储模块130至低级存储器缓存206数据区块传送的第一方针并且能够存在用于低级存储器缓存206至高级存储器缓存204数据区块传送的第二方针。另外,数据模块222能够存储超过一个方针,所述超过一个方针能够由提取模块250使用以确定在存储器层级的任何两层之间应用什么预取方针。例如,实施例可包括能够在执行海量存储模块130和低级存储器缓存206之间的读操作时选择使用的两种动态方针。一种方针能够在主机-A 102发出数据请求时使用并且另一种方针能够在主机-B 104发出数据请求时使用。在其它实施例中,源自单个主机的不同应用或处理能够触发使用特定方针。因此,数据请求的预取方针的粒度和组合能够实时地改变。
另外,由于其它实施例可在存储器层级中包括任何数量的存储位置,所以能够管理任何数量的方针以控制存储器层级之间的数据预取活动。这些方针可由数据模块222管理并且彼此独立地改变。
随着时间过去,从HMC模块120的各级逐出数据,因为数据未在最近被访问,诸如例如最近最少使用(LRU)。或者,可能过去一定量的规定时间(也许由管理员规定):数据区块未被访问并因此被逐出以便为新的数据区块腾出空间。例如,考虑这样的情形:数据区块已被从高级存储器缓存204逐出,但继续留在低级存储器缓存206上。在逐出之后,数据模块222接收数据请求并发现该数据不在高级存储器缓存204中。数据模块222随后必须决定预取策略。具体地讲,数据模块222必须决定为了未来的数据读请求从低存储层预取多少数据。可能在低级存储器缓存206中找到查找到的数据或者可能在低级存储器缓存206中未找到查找到的数据。如果在低级存储器缓存206中找到该数据,则取回该数据区块并把它返回给请求者。不管怎样,数据模块222使用数据读操作决定为了未来的数据读操作执行的预取方针。
例如,如果从低级存储器缓存204取回该数据区块,则选择的预取方针可以是“完全不进行预取”。如果该数据区块不在低级存储器缓存204中,则从海量存储模块130(或者具有比低级存储器缓存204高的查找时间的低层)执行64K-512K的预取。因此,通过查询HMC 120以决定预取方针,本发明的实施例能够通过根据存储器层级中的数据的位置动态地学习如何预取数据区块来改进总体数据请求时间。这些实施例是动态的,因为任何预取方针可根据每个读操作而改变。
图4是根据本发明实施例能够在分布式存储环境内实现动态分级缓存认知的可执行代码部分的操作的流程图。最初,计算装置能够在操作410中执行数据的读操作。该读操作能够在网络(不管是有线网络还是无线网络或者它们的任何组合)上被发送给分布式存储环境的存储节点。当接收到发送的读操作时,存储节点能够在操作420中访问分级存储器缓存以获得数据。之后,在操作430中,存储节点的数据模块确定该数据是否存储在高级存储器缓存中。如果该数据存储在高级存储器缓存中,则在操作460中把数据返回给数据模块并最终返回给计算装置。然而,如果未找到数据,则在操作440中,数据模块访问低级存储器缓存并基于结果确定缓存预取方针。具体地讲,如果在低级存储器缓存中未找到数据,则在操作450中改变数据预取方针。然后,在操作470中根据该缓存预取方针访问海量存储模块。即使在低级存储器缓存中找到数据并在操作460中返回数据,也可以改变缓存预取方针。
如果在操作480中在海量存储模块中找到该数据,则在操作460中返回该数据。如果在操作480中在海量存储模块中未找到该数据,则在操作490中返回错误消息。应该理解,能够存在超过一个预取方针。例如,针对对存储器的一级执行的每个读操作,可存在一方针且能够被改变。因此,针对对高级存储器缓存执行的每个读操作,第一方针能够存在并且被动态修改。此外,针对对低级存储器缓存执行的每个读操作,第二方针能够存在并且被动态修改,并且针对海量存储模块,第三方针能够存在并且被修改。在其它实施例中,海量存储模块可具有可存储未在海量存储模块中找到的数据的低速磁带装置的后备存储器。因此,能够存在能够根据描述的方法而动态修改的第四方针。
前面的描述涉及本发明的特定实施例。然而,清楚的是,可以在获得所描述的实施例的一些或全部优点的情况下对所描述的实施例做出其它变化和修改。例如,虽然本文描述的实施例包括分布式存储管理系统的多个计算系统,但本领域普通技术人员将会意识到,至少一个计算装置能够执行本文描述的所有操作。
根据上述实施例,应该理解,本发明能够采用包括存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要物理量的物理操纵的那些操作。通常但并非必然地,这些量采用能够被存储、传送、组合、比较和以其它方式操纵的电、磁、光信号等的形式。形成本发明的一部分的本文描述的任何操作是有用的机器操作。另外,本文描述的过程、处理和/或模块可以以硬件、软件实现,实现为具有程序指令、固件或者它们的组合的计算机可读介质。具体地讲,本发明可采用通常全部可在本文称为“电路”、“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等)或组合软件和硬件方面的实施例的形式。
另外,本发明的各方面可以采用实现于具有计算机可读程序代码的一个或多个计算机可读介质的计算机程序产品的形式。可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光学、电磁、红外或半导体系统、设备或装置或者前述各项的任何合适的组合。计算机可读存储介质的更具体的例子(非穷举列表)包括下述各项:具有一个或多个线的电气连接、便携式计算机盘、硬盘、固态(SSD)存储装置、闪存、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光学存储装置、磁存储装置或前述各项的任何合适的组合。在本文的上下文中,计算机可读存储介质可以是能够包含或存储由指令执行系统、设备或装置使用或结合指令执行系统、设备或装置使用的程序的任何有形介质。
可以使用合适的介质(包括但不限于无线、有线、光缆、RF等或前述各项的任何合适的组合)传输计算机可读介质上包含的程序代码。可按照一种或多种编程或脚本语言的任何组合编写用于执行本发明的各方面的操作的计算机程序代码,所述一种或多种编程或脚本语言包括:面向对象的编程语言,诸如Java、C++等;和常规程序化编程语言,诸如“C”编程语言或类似编程语言。程序代码可以完全在用户计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上并且部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后面的方案中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以(例如,使用互联网服务提供商通过互联网)连接到外部计算机。
以下参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图描述本发明的各方面。应该理解,流程图和/或方框图中的每个方框以及流程图和/或方框图中的方框的组合能够由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机或者其它可编程数据处理设备,以产生一台机器,从而指令(所述指令经计算机或者其它可编程数据处理设备的处理器执行)产生用于实现流程图和/或方框图的一个或多个方框中规定的功能/动作的装置。
这些计算机程序指令也可存储在计算机可读介质中,该计算机可读介质能够指示计算机、其它可编程数据处理设备或其它装置按照特定的方式发挥作用,从而存储在计算机可读介质中的指令产生一种制造产品,所述制造产品包括实现流程图和/或方框图的一个或多个方框中规定的功能/动作的指令。计算机程序指令也可被加载到计算机、其它可编程数据处理设备或其它装置上,以使得在所述计算机、其它可编程设备或其它装置上执行一系列的操作步骤以产生计算机实现的过程,从而在该计算机或其它可编程设备上执行的指令提供用于实现流程图和/或方框图的一个或多个方框中规定的功能/动作的处理。
附图中的流程图和方框图示出了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这个方面,流程图或方框图中的每个方框可代表包括用于实现规定的逻辑功能的一个或多个可执行指令的代码的模块、段或一部分。还应该注意的是,在一些另外的实现方式中,方框中标注的功能可以不按附图中标注的次序执行。例如,事实上,根据涉及的功能,连续示出的两个方框可以基本上同时执行,或者这些方框有时候可以以相反的次序执行。还应该注意的是,方框图和/或流程图中的每个方框以及方框图和/或流程图中的方框的组合能够由执行规定的功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合实现。
虽然以上在一定程度上具体描述了本发明的各种代表性实施例,但在不脱离在说明书和权利要求中阐述的本发明的主题的精神或范围的情况下本领域技术人员能够对公开的实施例做出许多修改。

Claims (20)

1.一种用于分布式存储环境中的数据检索的计算装置实现的方法,包括:
分配分级存储器缓存模块和海量存储模块的数据存储位置;
由数据模块确定数据预取方针,其中数据模块还包括,
确定数据是否存在于分级存储器缓存模块的第一存储器中,
确定数据是否存在于分级存储器缓存模块的第二存储器中;以及
如果数据不存在于第一存储器中,则选择由数据模块基于数据存在于第二存储器还是海量存储模块中而确定的至少一种数据预取方针。
2.如权利要求1所述的计算装置实现的方法,还包括:在数据检索期间改变数据预取方针。
3.如权利要求1所述的计算装置实现的方法,还包括:在数据检索期间避免数据预取方针的改变。
4.如权利要求2所述的计算装置实现的方法,还包括:预取海量存储模块的检索到的数据周围的较多数据区块。
5.如权利要求2所述的计算装置实现的方法,还包括:预取海量存储模块的检索到的数据周围的较少数据区块。
6.如权利要求1所述的计算装置实现的方法,其中至少一个数据库记录在分级存储器缓存模块中分配的数据的数据位置。
7.一种存储系统,包括:
处理器,用于由数据模块确定数据预取方针;和
存储器,包括:
分级存储器缓存,用于数据的分配,其中分级存储器缓存还包括第一存储器和比第一存储器大的第二存储器;和
海量存储模块,用于数据的分配,其中数据模块在分级存储器缓存中的数据检索操作期间确定数据预取方针。
8.如权利要求7所述的存储系统,其中未从所述分级存储器缓存获得数据。
9.如权利要求8所述的存储系统,其中所述数据预取方针预取海量存储模块的检索到的数据周围的较多数据区块。
10.如权利要求8所述的存储系统,其中所述数据预取方针预取海量存储模块的检索到的数据周围的较少数据区块。
11.如权利要求1所述的存储系统,还包括存储数据库的存储器,其中所述数据库记录在分级存储器缓存模块中分配的数据的数据位置。
12.一种用于执行动态读操作的系统,包括:
构造为通过确定数据是否存在于分级存储器缓存模块中来确定执行存储装置中的读操作的至少一种数据预取方针的装置;和
构造为通过使用当数据不存在于分级存储器缓存模块中时由数据模块确定的所述至少一种数据预取方针来执行存储装置中的读操作的装置。
13.如权利要求12所述的系统,还包括构造为在动态读操作期间改变数据预取方针的装置。
14.如权利要求12所述的系统,还包括构造为在动态读操作期间避免数据预取方针的改变的装置。
15.如权利要求13所述的系统,还包括构造为预取存储装置的检索到的数据周围的较多数据区块的装置。
16.如权利要求13所述的系统,还包括构造为预取存储装置的检索到的数据周围的较少数据区块的装置。
17.如权利要求12所述的系统,还包括构造为记录在分级存储器缓存模块中分配的数据的数据位置的装置。
18.如权利要求12所述的系统,还包括构造为检查分级存储器缓存模块的多个级别的装置。
19.如权利要求18所述的系统,其中所述分级存储器缓存模块还包括第一存储器和第二存储器。
20.如权利要求12所述的系统,还包括构造为从分级存储器缓存模块逐出数据的装置。
CN2012101553258A 2011-05-20 2012-05-18 根据动态分级存储器缓存认知执行数据读取的方法和系统 Pending CN102841854A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/112,601 2011-05-20
US13/112,601 US9201794B2 (en) 2011-05-20 2011-05-20 Dynamic hierarchical memory cache awareness within a storage system

Publications (1)

Publication Number Publication Date
CN102841854A true CN102841854A (zh) 2012-12-26

Family

ID=47175838

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101553258A Pending CN102841854A (zh) 2011-05-20 2012-05-18 根据动态分级存储器缓存认知执行数据读取的方法和系统

Country Status (2)

Country Link
US (3) US9201794B2 (zh)
CN (1) CN102841854A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239164A (zh) * 2013-06-19 2014-12-24 国家电网公司 基于云存储的灾备切换系统
CN104615419A (zh) * 2013-11-01 2015-05-13 索尼电脑娱乐公司 信息处理设备、程序和记录介质
CN105573673A (zh) * 2015-12-11 2016-05-11 芜湖乐锐思信息咨询有限公司 一种基于数据库的数据缓存系统
US10754779B2 (en) 2013-01-17 2020-08-25 Sony Interactive Entertainment Inc. Information processing device and method for managing file
CN112235356A (zh) * 2020-09-23 2021-01-15 青岛数智船海科技有限公司 一种基于集群的分布式pb级cfd仿真数据管理系统
CN114780031A (zh) * 2022-04-15 2022-07-22 北京志凌海纳科技有限公司 一种基于单机存储引擎的数据处理方法和装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9521198B1 (en) 2012-12-19 2016-12-13 Springpath, Inc. Systems and methods for implementing an enterprise-class converged compute-network-storage appliance
US9420058B2 (en) * 2012-12-27 2016-08-16 Akamai Technologies, Inc. Stream-based data deduplication with peer node prediction
US9411741B2 (en) * 2013-07-29 2016-08-09 Wipro Limited System and method for application level caching
US9672026B2 (en) * 2014-07-21 2017-06-06 Xiaomi Inc. Light app offline updating method, device and terminal
US20180275919A1 (en) * 2015-12-23 2018-09-27 Hewlett Packard Enterprise Development Lp Prefetching data in a distributed storage system
US9800481B1 (en) 2016-10-20 2017-10-24 International Business Machines Corporation Communicating health status when a management console is unavailable for a server in a mirror storage environment
US10831374B2 (en) 2016-12-06 2020-11-10 International Business Machines Corporation Minimizing seek times in a hierarchical storage management (HSM) system
US11940920B2 (en) * 2018-06-20 2024-03-26 International Business Machines Corporation Dynamically determining tracks to prestage from storage to cache using a machine learning module
US10719445B1 (en) * 2019-02-28 2020-07-21 Western Digital Technologies, Inc. System and method for scaling a historical pattern matching data structure in a memory device
US10877889B2 (en) * 2019-05-16 2020-12-29 Micron Technology, Inc. Processor-side transaction context memory interface systems and methods
US10877894B2 (en) 2019-05-16 2020-12-29 Micron Technology, Inc. Memory-side transaction context memory interface systems and methods, wherein first context and first address are communicated on plural wires during different clock cycles and second context (of block of the first context) is communicated on additional wire during one of the different clock cycles
US11379376B2 (en) 2020-05-20 2022-07-05 Micron Technologies, Inc. Embedding data in address streams
CN114327257A (zh) * 2021-11-30 2022-04-12 南京南瑞继保电气有限公司 一种网源协调在线监测系统中多层次数据存储系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1685321A (en) * 1927-08-22 1928-09-25 Bucher & Gibbs Plow Company Self-leveling wheeled plow
CN101013427A (zh) * 2006-02-03 2007-08-08 国际商业机器公司 用于管理数据的方法和系统
CN101595462A (zh) * 2007-01-31 2009-12-02 高通股份有限公司 用以减少多级高速缓冲存储器层级中的掷出的设备和方法
US20100095070A1 (en) * 2007-06-19 2010-04-15 Fujitsu Limited Information processing apparatus and cache memory control method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US6574707B2 (en) 2001-05-07 2003-06-03 Motorola, Inc. Memory interface protocol using two addressing modes and method of operation
US6990558B2 (en) 2002-06-18 2006-01-24 Ip-First, Llc Microprocessor, apparatus and method for selective prefetch retire
US7877546B2 (en) * 2004-08-09 2011-01-25 International Business Machines Corporation System, method, and circuit for retrieving data in data blocks into a cache memory from a mass data storage device based on a triggering event
US7272710B2 (en) 2004-09-30 2007-09-18 Dell Products L.P. Configuration aware pre-fetch switch setting by BIOS based on the number of CPUs and cache size
US20060174228A1 (en) * 2005-01-28 2006-08-03 Dell Products L.P. Adaptive pre-fetch policy
US7472256B1 (en) 2005-04-12 2008-12-30 Sun Microsystems, Inc. Software value prediction using pendency records of predicted prefetch values
US20080065718A1 (en) 2006-09-12 2008-03-13 Emc Corporation Configuring a cache prefetch policy that is controllable based on individual requests
US7565494B1 (en) 2006-09-12 2009-07-21 Emc Corporation Configuring a bounded cache prefetch policy in a computer system employing object addressable storage
KR100847021B1 (ko) 2006-10-26 2008-07-17 한국과학기술원 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된컴퓨터로 읽을 수 있는 기록매체
US7908439B2 (en) 2007-06-25 2011-03-15 International Business Machines Corporation Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache
US7702857B2 (en) * 2007-08-22 2010-04-20 International Business Machines Corporation Adjusting parameters used to prefetch data from storage into cache
JP4829191B2 (ja) 2007-08-30 2011-12-07 株式会社東芝 キャッシュシステム
US20090106498A1 (en) 2007-10-23 2009-04-23 Kevin Michael Lepak Coherent dram prefetcher
US20090193187A1 (en) 2008-01-25 2009-07-30 International Business Machines Corporation Design structure for an embedded dram having multi-use refresh cycles
US20100185816A1 (en) 2009-01-21 2010-07-22 Sauber William F Multiple Cache Line Size
US8195878B2 (en) 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US8112587B2 (en) 2009-04-30 2012-02-07 International Business Machines Corporation Shared data prefetching with memory region cache line monitoring
US9141525B2 (en) * 2011-01-31 2015-09-22 International Business Machines Corporation Adaptive prestaging in a storage controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1685321A (en) * 1927-08-22 1928-09-25 Bucher & Gibbs Plow Company Self-leveling wheeled plow
CN101013427A (zh) * 2006-02-03 2007-08-08 国际商业机器公司 用于管理数据的方法和系统
CN101595462A (zh) * 2007-01-31 2009-12-02 高通股份有限公司 用以减少多级高速缓冲存储器层级中的掷出的设备和方法
US20100095070A1 (en) * 2007-06-19 2010-04-15 Fujitsu Limited Information processing apparatus and cache memory control method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754779B2 (en) 2013-01-17 2020-08-25 Sony Interactive Entertainment Inc. Information processing device and method for managing file
CN104239164A (zh) * 2013-06-19 2014-12-24 国家电网公司 基于云存储的灾备切换系统
CN104615419A (zh) * 2013-11-01 2015-05-13 索尼电脑娱乐公司 信息处理设备、程序和记录介质
CN105573673A (zh) * 2015-12-11 2016-05-11 芜湖乐锐思信息咨询有限公司 一种基于数据库的数据缓存系统
CN112235356A (zh) * 2020-09-23 2021-01-15 青岛数智船海科技有限公司 一种基于集群的分布式pb级cfd仿真数据管理系统
CN112235356B (zh) * 2020-09-23 2021-09-07 青岛数智船海科技有限公司 一种基于集群的分布式pb级cfd仿真数据管理系统
CN114780031A (zh) * 2022-04-15 2022-07-22 北京志凌海纳科技有限公司 一种基于单机存储引擎的数据处理方法和装置
CN114780031B (zh) * 2022-04-15 2022-11-11 北京志凌海纳科技有限公司 一种基于单机存储引擎的数据处理方法和装置

Also Published As

Publication number Publication date
US20120297144A1 (en) 2012-11-22
US9201795B2 (en) 2015-12-01
US9817765B2 (en) 2017-11-14
US20120297142A1 (en) 2012-11-22
US9201794B2 (en) 2015-12-01
US20160048452A1 (en) 2016-02-18

Similar Documents

Publication Publication Date Title
CN102841854A (zh) 根据动态分级存储器缓存认知执行数据读取的方法和系统
US10482032B2 (en) Selective space reclamation of data storage memory employing heat and relocation metrics
US9164676B2 (en) Storing multi-stream non-linear access patterns in a flash based file-system
US9767032B2 (en) Systems and methods for cache endurance
US8972662B2 (en) Dynamically adjusted threshold for population of secondary cache
US10152423B2 (en) Selective population of secondary cache employing heat metrics
US9417808B2 (en) Promotion of partial data segments in flash cache
US9772949B2 (en) Apparatus, system and method for providing a persistent level-two cache
US8533397B2 (en) Improving performance in a cache mechanism by way of destaging data in partial strides
US9442858B2 (en) Solid state drives as a persistent cache for database systems
US20140082310A1 (en) Method and apparatus of storage tier and cache management
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
CN110737394B (zh) 管理缓存的方法、装置和计算机程序产品
CN108664415B (zh) 共享替换策略计算机高速缓存系统和方法
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
WO2012021847A2 (en) Apparatus, system and method for caching data
US9864688B1 (en) Discarding cached data before cache flush
Chen et al. Co-optimizing storage space utilization and performance for key-value solid state drives
KR102403063B1 (ko) 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법
US20240061786A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
CN117609105A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121226