CN104115133B - 用于复合非易失性存储设备的数据迁移的方法、***和设备 - Google Patents
用于复合非易失性存储设备的数据迁移的方法、***和设备 Download PDFInfo
- Publication number
- CN104115133B CN104115133B CN201380009538.2A CN201380009538A CN104115133B CN 104115133 B CN104115133 B CN 104115133B CN 201380009538 A CN201380009538 A CN 201380009538A CN 104115133 B CN104115133 B CN 104115133B
- Authority
- CN
- China
- Prior art keywords
- unit
- data structure
- data storage
- volatile
- logical block
- 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.)
- Active
Links
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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明描述了管理复合非易失性数据存数设备的方法。在一个实施例中,用于管理由快速非易失性存储装置诸如固态设备和慢速非易失性存储装置诸如传统磁性硬盘驱动器组成的复合存储设备的方法可包括:维护第一数据结构,该第一数据结构存储对快速非易失性存储设备诸如SSD设备中的一组单元中的每个单元进行的最近访问的实例;并且还维护第二数据结构,该第二数据结构指示慢速存储设备诸如HDD的单元是否已被访问至少预定的次数。在一个实施例中,第二数据结构可为布隆过滤器队列,其具有较低的所需存储器开销,但是相对于慢速存储设备中的单元或块最近是否已被引用不能保证总是提供正确的回答。
Description
交叉引用
本申请要求提交于2012年2月16日的临时申请序列号61/599,930的权益,并且该临时申请据此以引用方式并入。本申请还涉及同样提交于2012年2月16日的共同未决的申请序列号61/599,927,并且该申请据此以引用方式并入。
技术领域
本发明涉及用于在复合非易失性存储器中管理数据存储的方法,该复合非易失性存储器是慢速存储器设备和快速存储器设备的复合体。
背景技术
在复合磁盘***中,可将大的、慢速且廉价的磁性硬盘驱动器与小的、快速但昂贵的存储设备诸如固态驱动器结合以形成逻辑卷。这可通过固态驱动器(SSD)来提供快速访问的优点,同时提供磁性硬盘驱动器(HDD)的大容量。用于管理此类复合磁盘的现有技术已使用了诸如最近最少使用的(LRU)算法或时钟算法或由Song Jiang所描述的ClockPro算法。这些现有技术可改善在复合磁盘的快速部分与慢速部分之间的数据分配,但是它们往往不是空间高效的,因为它们需要大量的主存储器诸如大量的DRAM,以便实现这些技术中所使用的数据结构来用于在复合磁盘的两个部分之间分配数据。因此,需要改进的空间高效技术,其不需要同样多的存储器来对复合磁盘的两个或更多个组件之间分配或迁移数据中所使用的数据结构进行存储。
发明内容
在一个实施例中,用于管理对快速非易失性存储设备诸如固态设备和慢速非易失性存储设备诸如磁性硬盘驱动器进行访问的方法可包括:维护第一数据结构,该第一数据结构指示对快速非易失性存储设备诸如SSD设备中的一组单元中的每个单元进行的近期访问(recency of access);并且还维护第二数据结构,该第二数据结构指示慢速存储设备诸如HDD设备中的单 元或块最近是否已被引用(诸如最近已被引用过仅一次的单元或块)。在一个实施例中,第二数据结构可为具有低存储器开销的布隆过滤器队列。布隆过滤器队列相对于慢速存储设备中的单元或块最近是否已被引用而言大多数时候均是正确的,但是不能保证总是提供正确的回答。
通过附图以及通过以下具体实施方式,本发明的其他特征将显而易见。
以上概述不包括本发明所有方面的详尽列表。预期本发明包括可根据以上概述的各方面以及以下具体实施方式中所公开的那些的所有合适的组合来实践的所有***和方法。
附图说明
本发明以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。
图1示出了数据处理***的例子,该数据处理***可与本发明的实施例一起使用。
图2示出了根据本发明的一个实施例的复合非易失性存储器的例子。
图3示出了算法的数据结构的例子,该算法可称为时钟算法。
图4示出了根据本发明的一个实施例的数据结构诸如虚影表(ghost table)的例子,该数据结构可与本文所述的一种或多种方法一起使用。
图5为流程图,其示出了根据本发明的至少一个实施例的方法。
图6为流程图,其示出了根据本发明的至少一个实施例的方法。
图7为流程图,其示出了根据本发明的一个实施例的方法。
图8示出了布隆过滤器数据结构的例子,该数据结构可与本发明的至少一个实施例一起使用。
图9为流程图,其示出了根据本发明的一个实施例的方法。
图10为流程图,其示出了根据本发明的一个实施例的方法。
具体实施方式
本发明描述了改善复合非易失性数据存储设备的管理的方法。将参考以下讨论的细节来描述本发明的多个实施例和方面,并且附图将对所述多个实施例进行说明。以下说明书和附图对于本发明是示例性的,并且不应被理解为限制本发明。描述了众多的具体细节以提供对本发明的各种实施 例的彻底理解。然而,在某些实例中,众所周知或常规的细节并未被描述,以便提供对本发明的实施例的简明论述。
在本说明书中对“一个实施例”或“实施例”的引用是指结合该实施例描述的特定特征、结构或特性可以被包括在本发明的至少一个实施例中。在本说明书中的各个位置出现的短语“在一个实施例中”不一定都是指同一个实施例。在随后的附图中所描绘的过程由包括硬件(例如,电路***、专用逻辑等等)、软件(如非暂态机器可读存储介质上的指令)、或两者的组合的处理逻辑来执行。虽然下文按照某些顺序操作来描述该过程,但应当理解,所描述的某些操作可以不同的顺序被执行。此外,某些操作可并行地执行而并非按顺序执行。
图1示出了计算***10的例子,其为数据处理***的形式,其可与本文所述的一个或多个实施例一起使用。***10可为台式计算机***、或膝上型计算机***、或智能电话、或一些其他电子设备或消费电子设备。如在本领域已知的,***10可包括耦接到可选的高速缓存14的一个或多个微处理器或其他逻辑单元12。在一个实施例中,该高速缓存14可为SRAM。一个或多个微处理器12通过一条或多条总线18耦接到***的其余部分,该一条或多条总线18将一个或多个微处理器12耦接到主存储器,该主存储器可为易失性RAM 16。在一个实施例中,易失性RAM可为在计算机***中所使用的常规的DRAM,其中该DRAM通过总线耦接到***10中的其余组件。***10还可包括一个或多个输入/输出控制器20,其通过一条或多条总线18将一个或多个输入/输出设备22耦接到***的其余部分。***10还包括非易失性存储器19,其可为复合磁盘,诸如固态驱动器形式的闪存存储器与常规的磁性硬盘驱动器的组合。
图2示出了根据一个实施例的复合磁盘的例子。非易失性存储器19包括固态驱动器51和磁性硬盘驱动器52,其可被文件***和操作***当作单个逻辑卷或块设备,并且由一个或多个控制器控制,诸如包括固态驱动器控制器的控制器53和包括硬盘驱动器控制器的控制器54。一个或多个控制器通过总线18将图2中所示的复合驱动器耦接到***10中的其余组件。应当理解,闪存存储器是快速非易失性存储设备的一种形式,并且其他快速存储设备可或者与慢速存储设备或其他非易失性存储设备一起使用,慢速存储设备可为常规的磁性硬盘驱动器,其他非易失性存储设备比该快速 存储设备慢。应当理解,在本说明书中,对SSD或HDD的引用应被理解为是指快速非易失性存储设备和慢速非易失性存储设备,并且不应被理解为限于或特定于任何存储设备技术。
图3示出了根据本发明的一个实施例的第一数据结构的例子,该第一数据结构与时钟算法一起使用。一个实施例中的时钟算法可类似于现有技术中使用的现有时钟算法。时钟算法可使用数据结构301,该数据结构301可为包括时钟指针304的循环队列,该指针304基于时钟算法指向队列中的特定位置。循环队列中的每个位置对应于快速非易失性存储器设备中的特定单元;诸如通过闪存存储器***实现的固态驱动器。在某种意义上,第一数据结构类似于由文件***维护的块分配位图,该块分配位图指示哪些块是空闲的以及哪些块是分配在硬盘驱动器上的(非空闲的)。
例如,位置302对应于SSD上的单元0,并且在右边的下一个单元与SSD上的单元1对应,并且位置303与SSD上的另一个单元对应。每个位置存储指示SSD内的相应存储单元的状态的值。在一个实施例中,可使用两位值,使得值0可指示SSD上的特定单元中的一个或多个块或其他组件是空闲的,而位置中的值1可指示SSD上的特定单元最近还未被引用,并且值2可指示SSD中的该单元最近已被引用。值3可指示单元被固定到SSD,并且不能降级到HDD。作为另外一种选择,在一个实施例中,可使用三位值,其可追踪对单元的具体访问数。在该实施例中,值0还可指示单元是空闲的;值1可指示单元最近还未被引用,并且最大值7可指示单元被固定。其他值可指示单元最近已被引用的次数,诸如值6,其将指示五次最近的引用。
在一个实施例中,第一数据结构301可按如下进行管理。当算法需要查找从SSD降级到HDD的候选时,其将使用时钟指针304。在一个实施例中,时钟指针304将在顺时针方向上从一个单元扫描到下一个单元,直到其找到值为1的单元,这意味着该单元最近还未被引用。在一个实施例中,时钟指针304可在逆时针方向上扫描。如果单元中的值被设置为最大值,则该单元被固定到SSD,并且不能降级到HDD。在时钟指针移动到下一个单元之前,如果值大于1但不是最大值,则该值以1递减,下降至最小值1。当SSD中的特定单元被访问时,对应于SSD上的该单元的位置中的计数器可递增。使用该方法,SSD上的被频繁访问的单元将在与SSD上的该单元 对应的数据结构的单元中获得越来越高的计数,直到预设的计数极限。然而,随着每次时钟指针304从单元扫描到单元,则需要用于降级的候选,每个顺序单元(例如302,303)中的计数将在每次时钟指针304经过该单元时递减,下降至最小值1,这指示该单元最近还未被访问。接下来将被描述的与使用相对于第二数据结构的时钟算法有关的进一步的细节结合图5、6和7被提供。
图4示出了第二数据结构的例子,该第二数据结构可被称为虚影表,该虚影表针对超过一次以上的最近访问或多于预定次数的最近访问的访问而用于保持对慢速非易失性存储器诸如HDD上的单元的访问进行追踪。在一个实施例中,就数据结构中的位置的数量而言,第二数据结构可与SSD中的单元数的大小相同,或者其可与SSD中单元数的大小成比例。在一个实施例中,HDD中的特定单元号的签名值可存储在第二数据结构的每个位置中。在一个实施例中,从文件***的角度来看,该单元可为磁性硬盘驱动器上的逻辑块。第二数据结构401包括三个位置402、403和404以及其他位置,并且这些位置中的每一个可存储HDD中的单元号的签名。位置404示出了HDD中的单元X的签名值的例子,该签名值指示HDD上的该单元中的数据最近已被访问(通过读或写)至少一次或至少预定次数。
图5示出了根据本发明的一个实施例的方法的例子,该方法用于利用第一数据结构诸如数据结构301和第二数据结构诸如数据结构401来控制快速存储设备诸如SSD与慢速存储设备诸如HDD之间的数据迁移。图5的方法可开始于操作501,在此操作中***接收对非易失性存储器进行读写访问的请求。在一个实施例中,文件***控制复合磁盘并将复合磁盘当作单个逻辑卷。然后文件***或数据处理***中的另一个组件继续确定如何使用图5中所示的方法来在复合磁盘的两个或更多个部分之间分配数据。响应于对读写访问的请求的接收,该方法进行到操作503,在此操作中其确定请求数据是否在快速存储设备中。如果其在快速存储设备中,则SSD中存在命中;在这种情况下,处理进行到操作505,在此操作中循环队列诸如数据结构301中的计数对于在SSD上找到的单元以1递增。这在不移动时钟指针304的情况下完成。这样,时钟算法通过第一数据结构保持追踪对SSD中的单元的访问数。如果操作503确定SSD中存在未命中,则***进行到操作507,在此操作中其确定数据是否在第二数据结构中,诸如图4中 所示的虚影表401,该虚影表401为概率散列表的形式。在第二数据结构中查找数据示于图7中,这将在下文讨论。
如果操作507确定该单元尚未在第二数据结构中,则其进行到操作509,在此操作中单元号或单元号的表示被添加到第二数据结构,该第二数据结构可为虚影表401。结合图6所提供的关于操作509的进一步的信息将在下文进行描述。如果在操作507中确定包含请求数据的单元已在第二数据结构中,则处理从操作507进行到操作511,在此操作中确定快速存储设备是否已满。如果其未满,则随后进行操作515。各种常规算法可用于确定SDD是否未满,并且它们不需要依赖于使用时钟算法或第一数据结构301。
在操作515中,被访问的HDD的单元中的数据使用本领域已知的技术从HDD迁移到SDD。另外,已被迁移或待迁移的数据的单元的单元号从第二数据结构诸如虚影表401被移除。如果在操作511中***确定SSD已满,则在操作515之前进行操作513。应当理解,文件***将仍然维护常规的数据结构,该数据结构响应于操作515中的数据迁移来指示各种数据的位置。在操作513中,***通过在一个实施例中使用时钟算法而在SSD上创建空间。在这种情况下,时钟算法使用时钟指针304以按顺序移动穿过循环队列,从时钟指针的当前位置开始至指示SSD中的单元最近还未被引用的位置;在一个实施例中,这由存储于循环队列中的位置中的值1来指示。随着时钟指针304以循环方式移动穿过循环队列,每个位置中的值以1递减。随着时钟指针304移动穿过在每个位置中将值递减的队列,最终,单元之一将接收指示其为可用单元的值。一旦时钟算法确定SSD中的下一个可用单元位置,则SSD的该单元中的数据可被刷新到HDD,并且在操作515中,HDD上的访问数据可从HDD迁移至SSD中的所述位置或单元,操作515可在操作513之后进行。结合图7进一步描述单元号从第二数据结构的移除。
图6示出了用于将数据添加到第二数据结构中的方法的例子,其中X可表示HDD中的单元号,诸如硬盘驱动器上的一个或多个逻辑块。可以理解,图6和7的方法允许创建概率散列表,其可为图4中所示的数据结构401。由于散列和签名用于创建存储于第二数据结构中的值,并且散列和签名还用于指定该数据结构内的位置,因此概率散列表相对于HDD上的单元的访问数而言可能不总是正确的。当使用散列时,对于散列函数中的一个 以上的输入可能返回相同的散列值。这意味着作为不同单元共享相同签名的单元可被升级到SSD代替适当的单元。然而,这发生的可能性很小。因此,虽然散列表相对于HDD上的单元已接收到的访问数而言可能不总是正确的,但是数据结构大多数时候是正确的并且是空间高效的,因为其相对于所消耗的内存的量可存储大量的信息。
图6中所示的方法可在图5的操作509中实现。在操作601中,***为被读请求或写请求访问的HDD中的单元号计算一组散列值。该组散列值可从一组不同的散列函数得出。例如,在一个实施例中,可使用三个不同的散列函数h1、h2和h3,尽管大于或等于1的任意数量的散列函数均可被使用。此外,操作601计算X的签名,其可被表示为S(X),其中S表示X的值的签名。该签名可由密码算法或其他算法得出,所述密码算法或其他算法尝试为给定输入创建相对唯一的值,但是不保证为X的每个可能值创建唯一的值。这种全局唯一性的缺乏有助于散列表的概率性质。在操作601中计算出值之后,***进行到操作603,在此操作中其确定由散列值所指定的任何位置在第二数据结构中是否为空。换句话讲,在一个实施例中,在虚影表中检查由散列值所指定的那些位置中的每一个以确定它们是否为空。如果它们中的任一个为空,则随后进行操作605,其中该签名诸如HDD的单元号的S(X)存储于由该散列值之一所指定的那些空位置之一中。另一方面,如果操作603确定那些位置中没有一个为空,则执行操作607,其中第二数据结构中的随机位置在操作607中随机选择,并且在操作609中,该签名存储于所选择的随机位置中。使用随机位置可引起存储在该位置中的现有签名的覆写。
图7示出了用于从数据结构查找或移除数据的方法的例子。当图7的方法用于查找时,不执行操作707。图7中所示的用于查找的方法可在图5的操作507中执行。当图7中所示的方法用于将数据从虚影表移除时,则执行操作707,并且该方法被用作图5中所示的操作515的一部分。图7的方法可开始于操作701中,在此操作中计算X的一组散列值。该组散列值应对应于具有先前在操作601中使用的相同组散列函数的同一组散列值。相似地,对X的值计算签名,该签名是与在操作601中计算的签名类似的签名。然后在操作703中,***在虚影表的位置中查找签名值,所述位置是由在操作701中计算的一组散列值所指定的。如果在操作705中找到签 名,则单元号的该签名在操作707中从第二数据结构移除,如图7所示。在一个实施例中,数据结构的大小可基于数据结构的性能和可用内存的量来加倍或减半。
本发明的可供选择的实施例可采用布隆过滤器而不是概率散列表,该概率散列表可实现为虚影表。布隆过滤器的例子示出于图8中。布隆过滤器是可用于测试第二存储设备上的单元最近是否可能已被访问的概率数据结构。布隆过滤器是概率性的,因为有可能返回假阳性结果,意味着当其实际上并非如此时,单元被确定为在数据结构内。然而,假阴性是不可能的,所以第二数据结构的查询将返回该单元最近可能已被访问,或该单元最近肯定还未被访问的结果。布隆过滤器可具有多个位置,该多个位置与SSD中的每个单元或SSD的成比例数量的单元对应。在一个实施例中,每个位置存储1或0,这指示HDD上的特定单元的访问数的状态。HDD的单元号的散列值用作访问布隆过滤器中的特定位置的地址。如图8所示,布隆过滤器801包括位置802、803和804。位置803由X的散列函数h1所指定,其指定该位置。值1已被设置在位置803中,并且还被设置在由两个其他地址X的h2和X的h3所指定的两个其他位置中。图8中所示的布隆过滤器可通过在操作507中用布隆过滤器替换虚影表以及通过在操作509中用布隆过滤器替换虚影表来与图5的方法一起使用。然而,在操作515中,当布隆过滤器用于替代虚影表时,单元号未从布隆过滤器移除,因为不可能从布隆过滤器移除单元并且确保布隆过滤器不会产生假阴性结果。因此,在一个实施例中,当第二数据结构中的布隆过滤器填满时,可在循环队列中添加另外的布隆过滤器。
图9示出了用于将HDD中的单元添加到布隆过滤器的方法的例子。当布隆过滤器用于替代虚影表时,图9中所示的操作在操作509中执行。在一个实施例中,可使用布隆过滤器的循环队列,使得多个布隆过滤器保持在循环队列中,其中最新的布隆过滤器用于存储各个值,并且较旧的布隆过滤器通过循环队列进行循环,如从图9中将显而易见。当操作509开始时,就图5的布隆过滤器实现而言,操作901确定最新的布隆过滤器是否已满。如果未满,则随后进行操作905,在此操作中将表示HDD上的当前访问单元的数据通过将在一组散列值中指定的每个位置设置为预先确定的值诸如1来添加到最新的布隆过滤器。在一个实施例中,如在操作1001中 时计算一组散列值,并且那些散列值中的每一个指定布隆过滤器内的特定位置或地址,并且值1被写入到在该组散列值中所指定的那些地址或位置中的每一个中。
图10示出了用于查找HDD中的特定单元号是否在第二数据结构中的方法,在这种情况下,该第二数据结构为布隆过滤器。当图5的方法使用布隆过滤器代替虚影表时,图10可作为操作507的一部分而被执行。在操作1001中,***对HDD中的单元号计算一组散列值。在一个实施例中,三个不同的散列函数可用于计算三个散列值。然后,在操作1003中,在由该组散列值所指定的每个位置中,***检查位是否已被设置为预先确定的值,诸如队列中的至少一个布隆过滤器中的值1。在操作1005中,确定在由该组散列值中的散列值所指定的位置中的每一个中是否所有位都被设置为1。如果队列中的每个布隆过滤器中的位置中的至少一个未被设置,则***推断该单元未被找到,并且进行到操作1007,其使得接下来进行图5中的操作509。如果另一方面***确定所有位已被设置在由该组散列值所确定的合适位置中,则处理进行到操作1009,其使得接下来进行图5中的操作511。如同图4中的虚影表,本发明的实施例可根据需要来增加或减小第二数据结构的大小。随着循环队列中的布隆过滤器填满,可将另外的布隆过滤器添加到循环队列中。在布隆过滤器的循环队列的大小超过限定值之后,可将最旧的布隆过滤器从列表移除。
在以上说明书中,结合本发明的特定实施例已描述了本发明。但显而易见的是,在不脱离本发明的更广泛的实质和范围的情况下,可对这些实施例进行各种修改和变更。因此,说明书和附图应被视为是示例性的而非限制性的。
Claims (17)
1.一种用于管理对多设备复合数据存储***进行访问的方法,所述方法包括:
管理第一数据结构,所述第一数据结构存储第一非易失性数据存储设备上的第一组单元中的每个单元的数据,其中,对于所述第一组单元中的每个单元,所述第一数据结构包括指示对于该单元的最近访问的计数以及该单元的固定状态的值,其中所述固定状态指示每个单元是否要保持在第一非易失性数据存储设备上,并且其中,管理所述第一数据结构包括接收访问所述多设备复合数据存储***上的第一逻辑块的请求,从第一非易失性数据存储设备上的第一组单元中的第一单元访问所述第一逻辑块,并且更新对于所述第一单元的最近访问的计数;以及
管理第二数据结构,所述第二数据结构概率性地指示第二非易失性数据存储设备上的第二单元最近是否已被引用,其中所述第二数据结构为一个或多个布隆过滤器的队列,并且所述第二单元包括多个逻辑块,其中管理所述第二数据结构包括接收访问所述多设备复合数据存储***上的第二逻辑块的请求,将表示所述第二非易失性数据存储设备上的第二单元的标识符的数据添加到所述第二数据结构,所述第二单元包含所述第二逻辑块,并且将所述第二单元迁移到所述第一非易失性数据存储设备,并且其中,将所述第二单元迁移到所述第一非易失性数据存储设备包括响应于访问所述第二逻辑块的请求将所述第二单元中包含的多个逻辑块作为单个单元移动。
2.根据权利要求1所述的方法,其中将表示所述第二非易失性数据存储设备上的第二单元的标识符的数据添加到所述第二数据结构包括:
计算所述第二单元的标识符的散列值;以及
在由所述第二单元的标识符的所述散列值限定的索引处设置指示所述第二单元已被引用的值。
3.根据权利要求2所述的方法,其中多个散列函数用于计算所述第二单元的标识符的多个散列值。
4.根据权利要求3所述的方法,其中将所述第二单元从所述第二非易失性数据存储设备迁移到所述第一非易失性数据存储设备包括:
在由每个散列值限定的索引处,在所述第二数据结构中搜索指示所述第二单元已被引用的所述值;以及
如果所搜索的每个索引包含指示所述第二单元已被引用的所述值,则将所述第二单元从所述第二非易失性数据存储设备移动到所述第一非易失性数据存储设备。
5.根据权利要求4所述的方法,其中,添加包含所请求的逻辑块的单元的标识符包括:
计算包含所请求的逻辑块的单元的标识符的一组散列值;以及
在由该组散列值中的散列值限定的每个索引处设置指示包含所请求的逻辑块的单元已被引用的值。
6.一种用于管理对多设备复合数据存储设备进行访问的***,所述***包括:
第一非易失性数据存储设备,其用于将数据存储在第一组单元中;
第一数据结构,其用于指示对所述第一非易失性数据存储设备上的所述第一组单元中的每个单元进行的近期访问,其中,所述第一数据结构使用通过算法来进行维护的循环队列和指针,所述循环队列包括指示对于所述第一组单元中的每个单元的最近访问的计数以及固定状态的值,其中所述固定状态指示每个单元是否要保持在第一非易失性数据存储设备上;
第二非易失性数据存储设备,其耦接到所述第一非易失性数据存储设备以将数据存储在第二组单元中;以及
第二数据结构,其用于概率性地指示所述第二非易失性数据存储设备上的单元最近是否已被引用,其中所述第二数据结构为指示要迁移到第一非易失性数据存储设备的第二组单元中的单元的布隆过滤器队列,并且第一组单元和第二组单元中的每个单元包括多个逻辑块;以及
其中,所述第二数据结构指示所述第二组单元中的第一单元的多个逻辑块将响应于访问所述第一单元内的逻辑块的请求作为单个单元被迁移到所述第一非易失性数据存储设备。
7.根据权利要求6所述的***,其中所述第一非易失性数据存储设备是固态盘。
8.根据权利要求7所述的***,其中所述第二非易失性数据存储设备是磁性硬盘驱动器,并且第一和第二非易失性数据存储设备作为单个逻辑卷被寻址。
9.根据权利要求6所述的***,其中所述第二数据结构由参数限定,所述参数包括:
所述第一非易失性数据存储设备上的单元数;
所述队列中所允许的布隆过滤器数;
存储于所述布隆过滤器中的单元的最大数目;和
每个布隆过滤器的大小。
10.根据权利要求9所述的***,其中所述第一数据结构包含用于所述第一非易失性数据存储设备上的每个单元的元素。
11.根据权利要求10所述的***,其中所述第一数据结构的元素指示所述第一非易失性数据存储设备上的单元是空闲的。
12.一种被配置成执行用于管理对多设备复合数据存储***进行访问的操作的设备,所述设备包括:
用于初始化第一数据结构的装置,所述第一数据结构包括指示对于第一非易失性数据存储设备上的第一组单元中的每个单元的最近访问的计数以及该单元的固定状态的值,其中所述第一数据结构通过时钟算法来管理,并且其中所述固定状态指示每个单元是否要保持在第一非易失性数据存储设备上;
用于初始化第二数据结构的装置,所述第二数据结构概率性地指示第二非易失性数据存储设备上的单元最近已被引用,其中所述第二数据结构为布隆过滤器队列;
用于接收对所述多设备复合数据存储***的逻辑块进行访问的请求的装置;
用于当所述逻辑块被包含在所述第一非易失性数据存储设备上时从所述第一非易失性数据存储设备上的单元访问所述逻辑块、并且更新所述第一数据结构以指示所述多设备复合数据存储***的逻辑块最近从所述第一非易失性数据存储设备上的单元被访问,除非该单元被固定于第一非易失性数据存储设备的装置;
用于当在所述第一非易失性数据存储设备上的单元中未找到所述逻辑块时在所述第二数据结构中搜索所述逻辑块的装置;
用于当在所述第二数据结构中未找到被请求的逻辑块时将包含所请求的逻辑块的单元的标识符添加到所述第二数据结构的装置;以及
用于当在所述第二数据结构中找到包含所请求的逻辑块的单元时将包含所请求的逻辑块的单元从所述第二非易失性数据存储设备迁移到所述第一非易失性数据存储设备的装置,其中用于迁移该单元的装置包括用于响应于访问逻辑块的请求将该单元的多个逻辑块作为单个单元进行迁移的装置。
13.根据权利要求12所述的设备,用于添加包含所请求的逻辑块的单元的标识符的装置包括:
用于针对所述单元的标识符计算一组散列值的装置;以及
用于在由所述一组散列值中的散列值限定的每个索引处设置指示所述单元已被引用的值的装置。
14.根据权利要求13所述的设备,其中计算所述一组散列值使用多个散列函数。
15.根据权利要求14所述的设备,还包括用于在所述第二数据结构中重置布隆过滤器的装置。
16.根据权利要求14所述的设备,还包括用于将另外的布隆过滤器添加到所述第二数据结构的装置。
17.根据权利要求16所述的设备,还包括用于从所述第二数据结构移除布隆过滤器的装置。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261599930P | 2012-02-16 | 2012-02-16 | |
US201261599927P | 2012-02-16 | 2012-02-16 | |
US61/599,930 | 2012-02-16 | ||
US61/599,927 | 2012-02-16 | ||
US13/605,921 US9710397B2 (en) | 2012-02-16 | 2012-09-06 | Data migration for composite non-volatile storage device |
US13/605,921 | 2012-09-06 | ||
PCT/US2013/025597 WO2013122881A1 (en) | 2012-02-16 | 2013-02-11 | Data migration for composite non-volatile storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104115133A CN104115133A (zh) | 2014-10-22 |
CN104115133B true CN104115133B (zh) | 2017-08-08 |
Family
ID=48983237
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380009551.8A Active CN104115134B (zh) | 2012-02-16 | 2013-02-07 | 用于管理对复合数据存储设备进行访问的方法和*** |
CN201380009538.2A Active CN104115133B (zh) | 2012-02-16 | 2013-02-11 | 用于复合非易失性存储设备的数据迁移的方法、***和设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380009551.8A Active CN104115134B (zh) | 2012-02-16 | 2013-02-07 | 用于管理对复合数据存储设备进行访问的方法和*** |
Country Status (8)
Country | Link |
---|---|
US (2) | US9710397B2 (zh) |
EP (2) | EP2798501B1 (zh) |
JP (2) | JP5943095B2 (zh) |
KR (2) | KR101599177B1 (zh) |
CN (2) | CN104115134B (zh) |
AU (2) | AU2013221868B2 (zh) |
TW (2) | TWI524348B (zh) |
WO (2) | WO2013122818A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700578B1 (en) * | 2012-09-27 | 2014-04-15 | Emc Corporation | System and method for determining physical storage space of a deduplicated storage system |
US10073851B2 (en) | 2013-01-08 | 2018-09-11 | Apple Inc. | Fast new file creation cache |
CN105122745B (zh) * | 2013-02-27 | 2019-06-28 | 马维尔国际贸易有限公司 | 用于网络设备的高效最长前缀匹配技术 |
EP3069254B1 (en) * | 2013-11-12 | 2020-07-29 | RunSafe Security, Inc. | Improved control flow integrity system and method |
CN105701018B (zh) * | 2014-11-24 | 2019-01-11 | 阿里巴巴集团控股有限公司 | 一种用于流计算的数据处理方法与设备 |
JP2016207033A (ja) * | 2015-04-24 | 2016-12-08 | 株式会社東芝 | 情報記憶システムおよび情報記憶装置 |
US10263784B2 (en) | 2015-09-09 | 2019-04-16 | Amazon Technologies, Inc. | Signature verification for data set components using probabilistic data structures |
EP3347831B1 (en) * | 2015-09-09 | 2021-08-11 | Amazon Technologies, Inc. | Deletion of elements from a bloom filter |
US10262160B2 (en) | 2015-09-09 | 2019-04-16 | Amazon Technologies, Inc. | Verification of data set components using digitally signed probabilistic data structures |
KR101675694B1 (ko) * | 2015-09-11 | 2016-11-23 | 성균관대학교산학협력단 | 블록 인기도에 기반한 ssd의 블록 교체방법 |
KR101704936B1 (ko) * | 2015-12-07 | 2017-02-09 | 성균관대학교산학협력단 | 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템 |
US10942844B2 (en) | 2016-06-10 | 2021-03-09 | Apple Inc. | Reserved memory in memory management system |
US10019456B2 (en) * | 2016-06-29 | 2018-07-10 | Microsoft Technology Licensing, Llc | Recovering free space in nonvolatile storage with a computer storage system supporting shared objects |
US10275541B2 (en) | 2016-08-05 | 2019-04-30 | Micron Technology, Inc. | Proactive corrective actions in memory based on a probabilistic data structure |
US10228860B2 (en) * | 2016-11-14 | 2019-03-12 | Open Drives LLC | Storage optimization based I/O pattern modeling |
US11010300B2 (en) | 2017-05-04 | 2021-05-18 | Hewlett Packard Enterprise Development Lp | Optimized record lookups |
US10811096B2 (en) * | 2017-05-19 | 2020-10-20 | Aspiring Sky Co. Limited | Multi-block non-volatile memories with single unified interface |
CN107678892B (zh) * | 2017-11-07 | 2021-05-04 | 黄淮学院 | 基于跳跃恢复链的连续数据保护方法 |
US11093140B2 (en) | 2018-01-19 | 2021-08-17 | Micron Technology, Inc. | Performance allocation among users for accessing non-volatile memory devices |
US11243703B2 (en) | 2018-04-27 | 2022-02-08 | Hewlett Packard Enterprise Development Lp | Expandable index with pages to store object records |
US10628063B2 (en) * | 2018-08-24 | 2020-04-21 | Advanced Micro Devices, Inc. | Implementing scalable memory allocation using identifiers that return a succinct pointer representation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和*** |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4132989A (en) | 1977-10-18 | 1979-01-02 | Nasa | Azimuth correlator for real-time synthetic aperture radar image processing |
US4292634A (en) | 1978-12-15 | 1981-09-29 | Nasa | Real-time multiple-look synthetic aperture radar processor for spacecraft applications |
US5059318A (en) | 1990-05-14 | 1991-10-22 | Benesi Steve C | Fluid seal for a traveling sheet filter press |
US5680640A (en) | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
GB2318479B (en) | 1996-10-21 | 2001-04-04 | Northern Telecom Ltd | Problem model for alarm correlation |
GB2318478B (en) | 1996-10-21 | 2001-01-17 | Northern Telecom Ltd | Network model for alarm correlation |
US6266771B1 (en) * | 1997-02-10 | 2001-07-24 | The Regents Of The University Of California | Probabilistic signature scheme |
CA2312444A1 (en) * | 2000-06-20 | 2001-12-20 | Ibm Canada Limited-Ibm Canada Limitee | Memory management of data buffers incorporating hierarchical victim selection |
US6631017B2 (en) | 2000-10-12 | 2003-10-07 | Jed Khoury | Matched amplification and switch joint transform correlator |
US6804763B1 (en) | 2000-10-17 | 2004-10-12 | Igt | High performance battery backed ram interface |
US6920533B2 (en) * | 2001-06-27 | 2005-07-19 | Intel Corporation | System boot time reduction method |
US20030056058A1 (en) | 2001-09-17 | 2003-03-20 | Alistair Veitch | Logical volume data migration |
US6978259B1 (en) | 2001-10-23 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Automated system adaptation technique particularly for data storage systems |
US7093004B2 (en) | 2002-02-04 | 2006-08-15 | Datasynapse, Inc. | Using execution statistics to select tasks for redundant assignment in a distributed computing platform |
US6918020B2 (en) | 2002-08-30 | 2005-07-12 | Intel Corporation | Cache management |
JP2004102374A (ja) | 2002-09-05 | 2004-04-02 | Hitachi Ltd | データ移行装置を有する情報処理システム |
EP1505506A1 (en) * | 2003-08-05 | 2005-02-09 | Sap Ag | A method of data caching |
US7103740B1 (en) | 2003-12-31 | 2006-09-05 | Veritas Operating Corporation | Backup mechanism for a multi-class file system |
US20110179219A1 (en) * | 2004-04-05 | 2011-07-21 | Super Talent Electronics, Inc. | Hybrid storage device |
US20110145489A1 (en) * | 2004-04-05 | 2011-06-16 | Super Talent Electronics, Inc. | Hybrid storage device |
US20060069876A1 (en) * | 2004-09-30 | 2006-03-30 | Sorav Bansal | Method and system of clock with adaptive cache replacement and temporal filtering |
US20060248391A1 (en) | 2005-05-02 | 2006-11-02 | Glover Jeffrey C | State machine-based command line debugger |
US7548908B2 (en) * | 2005-06-24 | 2009-06-16 | Yahoo! Inc. | Dynamic bloom filter for caching query results |
US7548928B1 (en) * | 2005-08-05 | 2009-06-16 | Google Inc. | Data compression of large scale data stored in sparse tables |
JP2007072813A (ja) | 2005-09-07 | 2007-03-22 | Hitachi Ltd | ストレージシステム、ファイル移動方法、及びコンピュータプログラム |
US8099556B2 (en) | 2005-09-13 | 2012-01-17 | Arm Limited | Cache miss detection in a data processing apparatus |
US7730058B2 (en) * | 2005-10-05 | 2010-06-01 | Microsoft Corporation | Searching for information utilizing a probabilistic detector |
US7386673B2 (en) | 2005-11-30 | 2008-06-10 | Red Hat, Inc. | Method for tracking of non-resident pages |
US20070168398A1 (en) | 2005-12-16 | 2007-07-19 | Powerfile, Inc. | Permanent Storage Appliance |
KR100772863B1 (ko) * | 2006-01-13 | 2007-11-02 | 삼성전자주식회사 | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 |
US7500050B2 (en) * | 2006-03-20 | 2009-03-03 | International Business Machines Corporation | Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage |
US7555575B2 (en) | 2006-07-27 | 2009-06-30 | Hitachi, Ltd. | Method and apparatus for migrating data between storage volumes of different data pattern |
US7937428B2 (en) * | 2006-12-21 | 2011-05-03 | International Business Machines Corporation | System and method for generating and using a dynamic bloom filter |
US8032529B2 (en) * | 2007-04-12 | 2011-10-04 | Cisco Technology, Inc. | Enhanced bloom filters |
US8745523B2 (en) | 2007-06-08 | 2014-06-03 | Apple Inc. | Deletion in electronic backups |
US7930547B2 (en) * | 2007-06-15 | 2011-04-19 | Alcatel-Lucent Usa Inc. | High accuracy bloom filter using partitioned hashing |
KR101347285B1 (ko) * | 2007-09-28 | 2014-01-07 | 삼성전자주식회사 | 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치 |
US7788220B1 (en) | 2007-12-31 | 2010-08-31 | Emc Corporation | Storage of data with composite hashes in backup systems |
US8407398B2 (en) | 2008-10-01 | 2013-03-26 | Lenovo (Singapore) Pte. Ltd. | Cache mapping for solid state drives |
US8301650B1 (en) * | 2008-12-19 | 2012-10-30 | Google, Inc. | Bloom filter compaction |
KR101517767B1 (ko) * | 2009-01-07 | 2015-05-06 | 시게이트 테크놀로지 엘엘씨 | 하이브리드 저장 장치 및 그의 자원 공유 방법 |
JP5025670B2 (ja) * | 2009-01-28 | 2012-09-12 | 株式会社東芝 | 情報処理装置およびデータ記憶装置 |
US8719486B2 (en) | 2009-06-24 | 2014-05-06 | Micron Technology, Inc. | Pinning content in nonvolatile memory |
US8612666B2 (en) | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
US8140537B2 (en) | 2009-07-21 | 2012-03-20 | International Business Machines Corporation | Block level tagging with file level information |
US9291712B2 (en) | 2009-09-10 | 2016-03-22 | Nextnav, Llc | Cell organization and transmission schemes in a wide area positioning system (WAPS) |
CN102576333B (zh) | 2009-10-05 | 2016-01-13 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
WO2011068699A1 (en) * | 2009-12-04 | 2011-06-09 | Marvell World Trade Ltd. | Virtualization of storage devices |
US8438334B2 (en) * | 2009-12-22 | 2013-05-07 | International Business Machines Corporation | Hybrid storage subsystem with mixed placement of file contents |
US20110191522A1 (en) * | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
US20110320754A1 (en) | 2010-02-23 | 2011-12-29 | Hitachi, Ltd | Management system for storage system and method for managing storage system |
US8732133B2 (en) | 2010-03-16 | 2014-05-20 | Commvault Systems, Inc. | Extensible data deduplication system and method |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US20110276744A1 (en) * | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US8935487B2 (en) | 2010-05-05 | 2015-01-13 | Microsoft Corporation | Fast and low-RAM-footprint indexing for data deduplication |
US8380949B2 (en) | 2010-05-20 | 2013-02-19 | International Business Machines Corporation | Managing write operations to an extent of tracks migrated between storage devices |
US9401967B2 (en) | 2010-06-09 | 2016-07-26 | Brocade Communications Systems, Inc. | Inline wire speed deduplication system |
US8954669B2 (en) | 2010-07-07 | 2015-02-10 | Nexenta System, Inc | Method and system for heterogeneous data volume |
US8478934B2 (en) * | 2010-07-19 | 2013-07-02 | Lsi Corporation | Managing extended RAID caches using counting bloom filters |
TWI467581B (zh) * | 2010-09-07 | 2015-01-01 | Phison Electronics Corp | 複合式儲存裝置及其複合式儲存媒體控制器與定址方法 |
US8677004B2 (en) | 2010-09-10 | 2014-03-18 | International Business Machines Corporation | Migration of logical partitions between two devices |
US9244779B2 (en) | 2010-09-30 | 2016-01-26 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
WO2012053040A1 (en) | 2010-10-22 | 2012-04-26 | Hitachi, Ltd. | File server for migration of file and method for migrating file based on file's attributes and storage apparatuses ' attributes |
US9032146B2 (en) | 2010-11-30 | 2015-05-12 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Dynamic use of raid levels responsive to workload requirements |
US8862845B2 (en) | 2010-12-06 | 2014-10-14 | Xiotech Corporation | Application profiling in a data storage array |
US8583966B2 (en) | 2011-04-29 | 2013-11-12 | Lsi Corporation | Methods and structure for debugging DDR memory of a storage controller |
US9417794B2 (en) * | 2011-07-26 | 2016-08-16 | Apple Inc. | Including performance-related hints in requests to composite memory |
US8788788B2 (en) | 2011-08-11 | 2014-07-22 | Pure Storage, Inc. | Logical sector mapping in a flash storage array |
US8914381B2 (en) | 2012-02-16 | 2014-12-16 | Apple Inc. | Correlation filter |
US9081503B2 (en) | 2012-02-16 | 2015-07-14 | Apple Inc. | Methods and systems for maintaining a storage volume with holes and filling holes |
-
2012
- 2012-09-06 US US13/605,921 patent/US9710397B2/en active Active
- 2012-09-06 US US13/605,916 patent/US20130219116A1/en not_active Abandoned
-
2013
- 2013-02-07 WO PCT/US2013/025224 patent/WO2013122818A1/en active Application Filing
- 2013-02-07 CN CN201380009551.8A patent/CN104115134B/zh active Active
- 2013-02-07 EP EP13706810.2A patent/EP2798501B1/en active Active
- 2013-02-07 JP JP2014557696A patent/JP5943095B2/ja active Active
- 2013-02-07 KR KR1020147022828A patent/KR101599177B1/ko active IP Right Grant
- 2013-02-07 AU AU2013221868A patent/AU2013221868B2/en active Active
- 2013-02-08 TW TW102105367A patent/TWI524348B/zh active
- 2013-02-08 TW TW102105368A patent/TW201346932A/zh unknown
- 2013-02-11 JP JP2014557710A patent/JP5943096B2/ja active Active
- 2013-02-11 CN CN201380009538.2A patent/CN104115133B/zh active Active
- 2013-02-11 KR KR1020147022659A patent/KR101620773B1/ko active IP Right Grant
- 2013-02-11 EP EP13707949.7A patent/EP2798502B1/en active Active
- 2013-02-11 AU AU2013221855A patent/AU2013221855B2/en active Active
- 2013-02-11 WO PCT/US2013/025597 patent/WO2013122881A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
KR101620773B1 (ko) | 2016-05-12 |
EP2798501A1 (en) | 2014-11-05 |
TWI524348B (zh) | 2016-03-01 |
AU2013221855A1 (en) | 2014-08-21 |
AU2013221868B2 (en) | 2016-03-31 |
JP5943095B2 (ja) | 2016-06-29 |
CN104115134B (zh) | 2018-02-13 |
WO2013122881A1 (en) | 2013-08-22 |
KR101599177B1 (ko) | 2016-03-02 |
AU2013221855B2 (en) | 2016-03-17 |
CN104115134A (zh) | 2014-10-22 |
CN104115133A (zh) | 2014-10-22 |
EP2798501B1 (en) | 2020-12-30 |
TW201335937A (zh) | 2013-09-01 |
JP2015508924A (ja) | 2015-03-23 |
JP2015512098A (ja) | 2015-04-23 |
KR20140116933A (ko) | 2014-10-06 |
US20130219116A1 (en) | 2013-08-22 |
US20130219117A1 (en) | 2013-08-22 |
WO2013122818A1 (en) | 2013-08-22 |
EP2798502B1 (en) | 2020-04-08 |
AU2013221868A1 (en) | 2014-08-21 |
TW201346932A (zh) | 2013-11-16 |
EP2798502A1 (en) | 2014-11-05 |
KR20140111346A (ko) | 2014-09-18 |
US9710397B2 (en) | 2017-07-18 |
JP5943096B2 (ja) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104115133B (zh) | 用于复合非易失性存储设备的数据迁移的方法、***和设备 | |
CN108009008B (zh) | 数据处理方法和***、电子设备 | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存*** | |
US8782324B1 (en) | Techniques for managing placement of extents based on a history of active extents | |
CN104503703B (zh) | 缓存的处理方法和装置 | |
CN104317736B (zh) | 一种分布式文件***多级缓存实现方法 | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN107704194A (zh) | 无锁io处理方法及其装置 | |
CN110297787A (zh) | I/o设备访问内存的方法、装置及设备 | |
CN109478164A (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的***和方法 | |
CN105045894B (zh) | 一种面向分布式顺序表的缓存方法及*** | |
US9699263B1 (en) | Automatic read and write acceleration of data accessed by virtual machines | |
CN105988720A (zh) | 数据存储装置和方法 | |
CN111859038A (zh) | 一种分布式存储***数据热度统计方法、装置 | |
US20170052899A1 (en) | Buffer cache device method for managing the same and applying system thereof | |
CN105359116A (zh) | 缓存器、共享缓存管理方法及控制器 | |
CN110413235A (zh) | 一种面向ssd去重的数据分配方法及*** | |
Fan | Improving Storage Performance with Non-Volatile Memory-based Caching Systems | |
Hayashi et al. | Evaluation of Exclusive Data Allocation Between SSD Tier and SSD Cache in Storage Systems. | |
CN115904226A (zh) | 固态驱动器、设备及固态驱动器的操作方法 | |
CN104221014A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |