CN106547477B - 用于在线地减少缓存设备的方法和装置 - Google Patents
用于在线地减少缓存设备的方法和装置 Download PDFInfo
- Publication number
- CN106547477B CN106547477B CN201510609728.9A CN201510609728A CN106547477B CN 106547477 B CN106547477 B CN 106547477B CN 201510609728 A CN201510609728 A CN 201510609728A CN 106547477 B CN106547477 B CN 106547477B
- Authority
- CN
- China
- Prior art keywords
- memory device
- buffer memory
- buffer
- page
- cached
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供一种用于从缓存器中在线地减少缓存设备的方法和装置。该缓存器包括第一缓存设备和第二缓存设备,该方法包括:保持所述缓存器以及所述第二缓存设备处于启用状态;将所述第一缓存设备标记为待减少的设备,以阻止新的数据页被提升到所述第一缓存设备;从所述第一缓存设备中移除所缓存的数据页;从所述第一缓存设备中移除所缓存的输入输出IO历史信息;以及从所述缓存器中移除所述第一缓存设备。还提供相应的装置。
Description
技术领域
本公开的实施例涉及数据存储系统,并且更具体地涉及从缓存器中在线地减少缓存设备。
背景技术
缓存器是存储系统中的部件,该部件通过在缓存介质(例如,闪盘)中透明地存储数据而改善系统性能。作为缓存器的示例,闪盘高速缓存能够提供快速缓存,并且具有比硬盘驱动器(HDD)更高的性能。
例如,快速缓存在EMCTM的VNX系列产品(例如VNX2,VNXe)中是第二层的缓存。存储系统中,块数据路径软件堆栈的总视图被示意性地示于图1。如图1所示,当来自主机的输入输出(IO)请求到达存储系统(例如,磁盘阵列)时,可能有两种类型的缓存命中:
1.动态随机存取存储器(DRAM)缓存命中:DRAM缓存将首先搜索其所缓存的数据,如果DRAM缓存搜索命中,也就是说,对应于该IO请求的数据已经在该DRAM中被缓存,则DRAM缓存将使用缓存的数据来响应主机的IO请求;如果DRAM缓存搜索未命中,该IO请求将被转发到快速缓存,例如闪盘高速缓存。
2.快速缓存命中:当DRAM转发该IO请求到快速缓存时,快速缓存将搜索其被缓存的数据。如果搜索命中,则快速缓存将使用所缓存的数据来响应该IO请求,如果搜索未命中,也就是说,在该快速缓存器中并没有搜索到对应于该IO请求的数据,则快速缓存可以将转发IO请求到HDD矩阵,用于从HDD中读取相应数据。
在该示例中,仅当DRAM缓存和快速缓存两者均没有搜索命中时,用户IO请求才被转发到HDD(例如独立磁盘冗余阵列RAID、多核RAID(MCR)),并且向HDD读取或者向其写入数据。
发明内容
下面给出了对各实施例的简要概述,以提供对各种实施例的一些方面的基本理解。该概述不旨在标识关键元素的要点或描述各种实施例的范围。其唯一目的在于以简化形式呈现一些概念,作为对后述更具体描述的前序。
本公开的第一方面提供一种从缓存器中在线地减少缓存设备的方法,所述缓存器包括第一缓存设备和第二缓存设备,所述方法包括:保持所述缓存器以及所述第二缓存设备处于启用状态;将所述第一缓存设备标记为待减少的设备,以阻止新的数据页被提升到所述第一缓存设备;从所述第一缓存设备中移除所缓存的数据页;从所述第一缓存设备中移除所缓存的输入输出IO历史信息;以及从所述缓存器中移除所述第一缓存设备。
在一个实施例中,该缓存器中可以包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的数据页的第一链接、以及到所述第二缓存设备中所缓存的数据页的第二链接;并且其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第二链接;其中从所述第一缓存设备中移除所缓存的数据页包括断开所述第一链接,并且将所述第一缓存设备中所缓存的数据页清除到所述缓存器之外的另一存储设备。
在另一实施例中,在所述缓存器中可以包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的阴影页的第三链接,以及到所述第二缓存设备中所缓存的阴影页的第四链接;所述阴影页具有对应缓存设备的IO历史信息;并且其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第四链接;其中从所述第一缓存设备中移除所缓存的IO历史信息包括断开所述第三链接,并且将所述第一缓存设备中所缓存的阴影页移除。
在又一实施例中,在所述缓存器中可以包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中的缓存页元数据的第五链接,以及到所述第二缓存设备中的缓存页元数据的第六链接;所述缓存页元数据中存储了对应缓存设备所缓存的数据页与所述缓存器之外的另一存储设备中所存储的数据页之间的映射关系;并且其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第六链接;其中从所述第一缓存设备中移除所缓存的数据页包括断开所述第五链接,并且将所述第一缓存设备中的缓存页元数据移除。
在一个实施例中,在所述缓存器中可以包括全局阴影列表,所述全局阴影列表具有到所述第一缓存设备中所缓存的阴影页的第七链接,以及到所述第二缓存设备中所缓存的阴影页的第八链接;所述阴影页具有对应缓存设备的IO历史信息;并且其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第八链接;其中从所述第一缓存设备中移除所缓存的IO历史信息包括断开所述第七链接,并且将所述第一缓存设备中所缓存的阴影页移除。
在另一实施例中,该方法可以进一步包括:在从所述第一缓存设备中移除所缓存的数据页、以及所缓存的IO历史信息之后,释放用于所述第一缓存设备的存储器,并且将所述存储器返回内存管理单元。
在另一实施例中,第一缓存设备和第二缓存设备中的一个缓存设备包括一对固态磁盘SSD。在又一实施例中,所述缓存器之外的另一存储设备可以包括硬盘驱动器HDD。
在一个实施例中,该方法可以进一步包括:在从所述缓存器中减少缓存设备期间,针对IO请求搜索所述缓存器,以及如果所述第一缓存设备已经被标记为待减少的设备,并且通过所述搜索发现与所述IO请求关联的第一数据页被缓存在所述第一缓存设备中,则从所述第一缓存设备中读取所述第一数据页,并向上层发送响应。
在另一实施例中,该方法可以进一步包括:在从所述缓存器中减少缓存设备期间,针对IO请求搜索所述缓存器,并且如果所述第一缓存设备已经被标记为待减少的设备、并且所述搜索命中所述第一缓存设备的阴影页的次数达到提升阈值,其中所述阴影页具有所述第一缓存设备的IO历史信息,则利用所述缓存器中未被标记为待减少的设备的另一缓存设备中的空闲页,将与所述IO请求关联的数据提升到所述缓存器。
在另一实施例中,利用所述缓存器中未被标记为待减少的设备的另一缓存设备中的空闲页,将与所述IO请求关联的数据提升到所述缓存器包括:将与所述IO请求关联的数据放入提升队列;在所述缓存器中搜索未被标记为待减少的设备并且具有空闲页的缓存设备;按照预定的顺序从所述提升队列获取待提升的数据;以及利用搜索到的缓存设备将所获取的数据提升到所述缓存器。
本公开的第二方面提供一种从缓存器中在线地减少缓存设备的装置,所述缓存器包括第一缓存设备和第二缓存设备,所述装置包括:启用保持单元,被配置为将所述缓存器以及所述第二缓存设备保持处于启用状态;标记单元,被配置为将所述第一缓存设备标记为待减少的设备,以阻止新的数据页被提升到所述第一缓存设备;
数据页移除单元,被配置为从所述第一缓存设备中移除所缓存的数据页;历史信息移除单元,被配置为从所述第一缓存设备中移除所缓存的输入输出IO历史信息;以及缓存设备移除单元,被配置为从所述缓存器中移除所述第一缓存设备。
在一个实施例中,在所述缓存器中可以包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的数据页的第一链接、以及到所述第二缓存设备中所缓存的数据页的第二链接;并且所述启用保持单元可以被配置为保留所述第二链接;所述数据页移除单元可以被配置断开所述第一链接,并且将所述第一缓存设备中所缓存的数据页清除到所述缓存器之外的另一存储设备。
在另一实施例中,在所述缓存器中可以包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的阴影页的第三链接,以及到所述第二缓存设备中所缓存的阴影页的第四链接;所述阴影页具有对应缓存设备的IO历史信息;并且所述启用保持单元可以被配置为保留所述第四链接;所述历史信息移除单元可以被配置为断开所述第三链接,并且将所述第一缓存设备中所缓存的阴影页移除。
在又一实施例中,在所述缓存器中可以包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中的缓存页元数据的第五链接,以及到所述第二缓存设备中的缓存页元数据的第六链接;所述缓存页元数据中存储了对应缓存设备所缓存的数据页与所述缓存器之外的另一存储设备中所存储的数据页之间的映射关系;并且所述启用保持单元可以被配置为保留所述第六链接;所述数据页移除单元可以被配置断开所述第五链接,并且将所述第一缓存设备中的缓存页元数据移除。
在一个实施例中,在所述缓存器中可以包括全局阴影列表,所述全局阴影列表具有到所述第一缓存设备中所缓存的阴影页的第七链接,以及到所述第二缓存设备中所缓存的阴影页的第八链接;所述阴影页具有对应缓存设备的IO历史信息;并且所述启用保持单元可以被配置为保留所述第八链接;所述历史信息移除单元可以被配置为断开所述第七链接,并且将所述第一缓存设备中所缓存的阴影页移除。
在另一实施例中,该装置可以进一步包括:内存释放单元,被配置为在所述数据页移除单元从所述第一缓存设备中移除所缓存的数据页、以及所述历史信息移除单元从所述第一缓存设备中移除所缓存的IO历史信息之后,释放用于所述第一缓存设备的存储器并将所述存储器返回内存管理单元。
在一个实施例中,第一缓存设备和第二缓存设备中的一个缓存设备可以包括一对固态磁盘SSD。在另一实施例中,缓存器之外的另一存储设备可以包括硬盘驱动器HDD。
在又一实施例中,该装置可以进一步包括:搜索单元,被配置为在从所述缓存器中减少缓存设备期间,针对IO请求搜索所述缓存器,以及命中处理单元,被配置为如果所述第一缓存设备已经被标记为待减少的设备,并且通过所述搜索发现与所述IO请求关联的第一数据页被缓存在所述第一缓存设备中,则从所述第一缓存设备中读取所述第一数据页,并向上层发送响应。
在另一实施例中,该装置可以进一步包括:搜索单元,被配置为在从所述缓存器中减少缓存设备期间,针对IO请求搜索所述缓存器,以及命中处理单元,被配置为如果所述第一缓存设备已经被标记为待减少的设备、并且所述搜索命中所述第一缓存设备的阴影页的次数达到提升阈值,其中所述阴影页具有所述第一缓存设备的IO历史信息,则利用所述缓存器中未被标记为待减少的设备的另一缓存设备中的空闲页,将与所述IO请求关联的数据提升到所述缓存器。在又一实施例中,命中处理单元可以进一步包括:排队单元,被配置为将与所述IO请求关联的数据放入提升队列;空闲页搜索单元,被配置为在所述缓存器中搜索未被标记为待减少的设备并且具有空闲页的缓存设备;调度单元,被配置为按照预定的顺序从所述提升队列获取待提升的数据;以及提升单元,被配置为利用搜索到的缓存设备将所获取的数据提升到所述缓存器。
本公开的第三方面提供一种存储系统,包括根据第二方面所述的任一装置。
根据本公开的实施例的方法或装置,在从缓存器中移除缓存设备期间,大部分被缓存的热数据仍然被保持在缓存器中,因此对该缓存器的IO将以几乎相同的缓存命中率被完成。因此,对快速缓存的命中率和性能的影响很小。
尽管在附图中通过示例的方式示出了特定的实施例,然而,应当理解,本文的具体实施例的描述不意在将实施例限制为所公开的具体形式。
附图说明
从下文的公开内容和权利要求中,本公开的目的、优点和其他特征将变得更加明显。这里仅出于示例的目的,参考附图来给出优选实施例的非限制性描述,在附图中:
图1示意性地示出存储系统中块数据路径软件堆栈的总视图;
图2示出快速缓存器的结构示例;
图3示出现有技术中减少缓存设备的过程的示意图;
图4a-4b示出了根据本公开的实施例的、在线减少缓存设备的示例方法的流程图;
图5示出了根据本公开的一个实施例的执行缓存设备减少、IO处理、以及数据提升的流程图;
图6示出了根据本公开的实施例的、在线减少缓存设备的过程示意图;以及
图7示出根据本公开的实施例的、用于在线地减少缓存设备的装置的结构图。
具体实施方式
在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认识到可以在不使用这些具体细节的情况下实现本公开的实施例。因此,本公开不旨在于受限于所示实施例、而是将被赋予与本文描述的原理和特征一致的最宽的范围。
应当理解,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来。而实际上第一元素也能够被称为第二元素,反之亦然。另外还应当理解“包括”,“包含”仅被用来说明所陈述的特征、元素、功能或者部件的存在,然而并不排除存在一个或者多个其他的特征、元素、功能或者部件。
为了便于解释,本文中将以基于闪盘的快速缓存器为例介绍本公开的实施例,然而,如本领域技术人员可以理解的,本公开的实施例绝不仅限于使用这种缓存器的应用场景。
在图2中给出了一种快速缓存器的结构示意图。如图2所示,在该示例结构中,快速缓存器包括缓存设备0和缓存设备1。用一对固态磁盘(SSD)配置的RAID 1被作为一个RAID组提供给快速缓存,该快速缓存将这一对SSD盘作为一个设备(缓存设备0或者缓存设备1)处理。缓存设备0和缓存设备1可以被用于存储用于用户的热数据。
每个被缓存的数据页具有对应的元数据,该元数据可以存储SSD中的数据页与例如HDD中的数据页的映射信息,以及指示数据页是否是脏的。其中页(page)是数据存储的单位。如果SSD中的数据页是被拷贝过的数据页,并且在该SSD中的数据页是最新的,则认为该数据页是脏的。
图2中的每个缓存设备能够缓存一定数量的数据页,例如,能够缓存N页。因此,快速缓存器将分配N个阴影页用于跟踪在SSD中未存储的IO历史信息。如图2所示,假定缓存设备0能够缓存N页,其被分配N个缓存页元数据,并且被分配了N个阴影页。类似地,快速缓存器中的另一缓存设备也具有其自己的被缓存的数据页和阴影页。所有设备的数据页、数据页元数据和阴影页可以被链接到缓存页哈希表中,而所有设备的阴影页还可以类似地被链接到全局阴影列表中。缓存页哈希表和全局阴影列表用于将关键值映射到对应的位置,来访问数据页或者阴影页记录。
另外,如图2所示,缓存器中还可以具有针对每个缓存设备的空闲列表,以指示相应缓存设备中的空闲页。
根据先前的快速缓存器的设计,当由于某个缓存设备(例如,SSD)未被充分使用,用户想要从快速缓存器中将其删除时,用户需要先破坏该快速缓存器,然后再使用更少的缓存设备重建该快速缓存器。这一设计意味着,在删除某缓存设备时,快速缓存器中的热数据将会丢失;并且在快速缓存器再次被重建后,在重新启用之前需要长时间进行预热。因此,在快速缓存删除/创建期间,快速缓存器不能够被使用,用户不能够从快速缓存器获得任何好处。更糟的是,该过程将影响存储系统(例如,阵列)的整体性能,因为在快速缓存器的删除/创建/预热处理期间更多的内部IO将被生成,从而用于外部IO处理的资源减少。
在图3中给出了根据先前的设计来减少缓存设备的处理过程的示例。如图3所示,减少缓存设备1将需要破坏整个缓存器,也就是说,虽然只是要减少缓存设备1,缓存设备0也受到影响而不能工作。如图3所示,为了减少缓存设备1,缓存器首先被置于破坏状态,然后缓存设备0和缓存设备1的缓存数据页被清除到HDD(例如MCR)中。之后用于两个缓存设备的存储器将被返回给DRAM高速缓存。随后利用缓存设备0重新建立缓存器。在缓存器刚被建立时,缓存设备0并不能够被立即使用,直到完成预热过程。例如,需要从DRAM中重新请求用于缓存设备0的内存。这一破坏和重建过程将严重地影响存储系统的整体性能。
为了解决以上所述问题中的至少一些问题,本公开提出了从缓存器中在线地减少缓存设备的方法和装置。
现在参考图4a,其示出根据本公开的实施例的、用于从缓存器中在线地减少缓存设备的方法400的流程图。该方法可以用于从图1或者图2中所示的快速缓存器中在线地去除缓存设备,而保持该快速缓存器处于服务状态(即,启用状态)。能够理解的是,本公开的实施例不限于从图1和图2中所示的特定快速缓存器中去除缓存设备,而是可以更广泛地应用于从至少包括第一缓存设备和第二缓存设备的任何缓存器中去除缓存设备。
如图4a所示,该方法包括,保持缓存器以及其中的第二缓存设备处于启用状态(S410);将其中的第一缓存设备标记为待减少的设备,以阻止新的数据页被提升到该第一缓存设备(S420);从第一缓存设备中移除所缓存的数据页(S430);从第一缓存设备中移除所缓存的IO历史信息(S440);以及从该缓存器中移除该第一缓存设备(S450)。
利用本公开的方法400的实施例,能够在不影响缓存器的其它缓存设备的情况下去除一个缓存设备,而不必如先前的设计那样将整个缓存器破坏然后再重建。因此,根据本公开的实施例,能够提高存储系统的整体性能,改善用户体验。
如本领域技术人员能够理解的,本公开的实施例不限于从缓存器中移除单个缓存设备,而是也能够以类似的原理移除多个缓存设备。另外,在本公开的一些实施例中,缓存器中可以包括除第一缓存设备和第二缓存设备之外的其它缓存设备,并且除被减少的缓存设备之外,在缓存设备减少过程中,其它的缓存设备可以不受影响。
在一个实施例中,缓存器中的第一缓存设备或者第二缓存设备可以包括一对或者多对SSD。但是能够理解的是,本公开的实施例不限于此,实际上,本公开的实施例的实施不受限于任何特定结构的缓存设备。
在一个实施例中,缓存器可以是类似于图2所示的快速缓存器。例如,该缓存器中可以包括缓存页哈希表,该缓存页哈希表具有到第一缓存设备中所缓存的数据页的第一链接、以及到第二缓存设备中所缓存的数据页的第二链接。在该实施例中,方法400可以包括,在块S410处保留第二链接,以保持该缓存器以及第二缓存设备处于启用状态;另外,在块S430处,可以断开第一链接,并且将第一缓存设备中所缓存的数据页清除到缓存器之外的另一存储设备(例如HDD,MCR)。
在另一实施例中,替代地或者附加地,该缓存器中可以包括缓存页哈希表,并且该缓存页哈希表具有到第一缓存设备中所缓存的阴影页的第三链接,以及到第二缓存设备中所缓存的阴影页的第四链接;其中阴影页具有对应缓存设备的IO历史信息。在该实施例中,方法400可以包括在块S410处保留所述第四链接,以保持该缓存器以及第二缓存设备处于启用状态;另外,在块S440处,可以断开第三链接,并且将第一缓存设备中所缓存的阴影页(即,相应的IO历史信息)移除。
在又一实施例中,类似地,该缓存器中可以包括缓存页哈希表,并且该缓存页哈希表具有到第一缓存设备中的缓存页元数据的第五链接,以及到第二缓存设备中的缓存页元数据的第六链接;该缓存页元数据中存储对应缓存设备所缓存的数据页与另一存储设备(例如HDD,MCR)中所存储的数据页之间的映射关系。在该实施例中,方法400可以包括在块S410处保留所述第六链接;另外,在块S430处,可以断开第五链接,并且将第一缓存设备中的缓存页元数据移除。
在另一实施例中,假定与图2中的快速缓存器类似,该缓存器中包括全局阴影列表,该全局阴影列表具有到第一缓存设备中所缓存的阴影页的第七链接,以及到第二缓存设备中所缓存的阴影页的第八链接;该阴影页具有对应缓存设备的IO历史信息。在该实施例中,方法400可以包括在块S410处保留第八链接;另外,在块S440处,可以断开第七链接,并且将第一缓存设备中所缓存的阴影页移除。
在进一步的实施例中,方法400可以包括在从所述第一缓存设备中移除所缓存的数据页以及所缓存的IO历史信息之后,释放(S460)用于第一缓存设备的存储器(例如,内存),并且将该存储器返回内存管理单元。该实施例使得该第一缓存设备占用的内存能够被重新分配,从而提高内存的使用效率。
利用本公开的方法400的实施例,在缓存设备减少期间,缓存器依然处于启用状态,能够服务于用户IO。因此,在一个实施例中,方法400还可以包括在从所述缓存器中减少缓存设备期间,执行IO处理。例如,方法400可以包括,在从所述缓存器中减少缓存设备期间,针对IO请求搜索(S470)该缓存器;如果第一缓存设备已经被标记为待减少的设备,并且通过搜索发现与该IO请求关联的第一数据页被缓存在第一缓存设备中,则从第一缓存设备中读取该第一数据页,并向上层发送响应(S480)。
在第一缓存设备被标记为被减少的设备、但是其缓存页尚未被清除时,搜索命中可能发生。在第一缓存设备中缓存页的清除进行时,随着越来越多的缓存页面被清除,并且随着被缓存的数据页的元数据被从快速缓存哈希表中逐渐移除,搜索命中第一缓存设备中的缓存数据页的机会降低。当第一缓存设备的缓存数据页全部被清除时,这意味着在快速缓存哈希表中不再有该缓存设备的缓存数据页的链接,用户IO将不能够再命中该第一缓存设备。
替代地或者附加地,在另一实施例中,如果第一缓存设备已经被标记为待减少的设备、并且块S470中的搜索命中了第一缓存设备的阴影页,并且命中的次数达到提升阈值,则可以利用该缓存器中未被标记为待减少的设备的另一缓存设备(例如,第二缓存设备)的空闲页,将与该IO请求关联的数据提升到该缓存器(S480)。如前所述,在阴影页中具有第一缓存设备的IO历史信息。随着第一缓存设备开始从全局阴影列表移除其阴影页,搜索命中正被减少的第一缓存设备中的阴影页的机会将降低。在该第一缓存设备从全局阴影列表中移除其整个阴影页时,将不再有机会使用户IO命中第一缓存设备中的阴影元素。
在图4b中示出块S480处的操作的示例性实施例。如图4b所示,在块S480处,可以包括:
在块S481处,将与IO请求关联的数据放入提升队列;
在块S482处,在缓存器中搜索未被标记为待减少的设备并且具有空闲页的缓存设备;
在块S483处,按照预定的顺序从提升队列获取待提升的数据;以及
在块S484处,利用搜索到的缓存设备将所获取的数据提升到缓存器。
应该注意的是,本公开的实施例不限于采用任何特定的实施方式来实现块S480处的命中处理。例如,数据提升过程不一定是基于队列的,而是可以根据其他因素来确定数据提升的优先级。另外,在一些实施例中,块S482处的空闲页搜索也可以被省略,而代之以将数据提升到预定的缓存设备中。
在图5中示出根据本公开的一个实施例执行缓存设备减少、IO处理、以及数据提升的流程,以及各操作之间的关系。如图5的左侧所示,在开始减少缓存器中的缓存设备时,可以将要减少的设备的状态设定为“待减少”,或者“待移除”,以避免向该缓存设备提升新的数据页。设备的状态可以是针对设备对象新增加的属性。在一个缓存设备被标记为待减少的设备时,可以将把其中的缓存数据页移入到HDD,直到缓存数据页为空。之后可以从缓存哈希表中断开与缓存数据页的链接,即,从缓存哈希表中移除缓存数据页。如图5所示,可以对该缓存设备中的阴影页执行类似的处理,即,将阴影页从哈希表和全局阴影列表中移除。然后,该缓存设备可以从缓存器中被移除。并且,可以将该缓存设备对应的内存返回内存管理单元,并且将缓存设备中的SSD移除。
由于在减少缓存设备期间,缓存器仍然工作,图5中的右上部还示出了对该缓存器执行IO的示例流程。该流程包括通过搜索哈希表来发现是否命中该缓存器中的缓存页。并且当命中阴影页时,根据命中次数确定是否将对应数据提升到该缓存器。
图5的右下示出了将对应数据提升到缓存器的具体示例。该示例中利用了提升队列。该操作类似于图4b所示的流程,因此,这里将不再赘述。
在图6中示出了根据本公开的一个实施例从缓存器中减少缓存设备时该缓存器以及其中的缓存设备的状态变化。如图6所示,在缓存设备被减少期间,设备1的状态被标示为“待减少”,但是该缓存器一直处于启用状态,这和图3中的状态形成鲜明的对比。与图3相比,另一区别在于,在图6中仅将与“待减少”的设备(在该示例中为设备1)有关的缓存页清除到MCR中,而不影响另一缓存设备(该示例中为设备0)的缓存数据。即,另一缓存设备的状态保持不变,例如,在设备1被减少期间,仍然能够提升数据到设备0。
在先前的快速缓存的实施中,没有减少缓存设备这一选项,如果用户发现快速缓存认购了过多的SSD,则需要禁用/删除该快速缓存,并且利用更少的SSD来重新创建快速缓存。这是一种破坏性的过程。并且将降低系统的性能。而利用本公开提出的缓存设备减少解决方案,从缓存器(例如快速缓存器)中减少设备是在线进行的,因此并非破坏性的过程,对阵列的性能影响小。
图7示出根据本公开的实施例的装置700的示例性结构图,该装置700用于从缓存器中在线地减少缓存设备。在一个实施例中,装置700可以被实施为存储系统中的部件。装置700可操作用于执行参照图4a-6所描述的方法400,以及任何其他的处理和方法。应当理解,方法400不局限于由装置700来执行,方法400的至少一些块也可以由其他的装置或者实体来执行。
假定缓存器至少包括第一缓存设备和第二缓存设备。在一个实施例中,装置700包括启用保持单元710,被配置为将缓存器以及所述第二缓存设备保持处于启用状态;标记单元720,被配置为将所述第一缓存设备标记为待减少的设备,以阻止新的数据页被提升到所述第一缓存设备;数据页移除单元730,被配置为从所述第一缓存设备中移除所缓存的数据页;历史信息移除单元740,被配置为从所述第一缓存设备中移除所缓存的输入输出IO历史信息;以及缓存设备移除单元750,被配置为从缓存器中移除第一缓存设备。
在一个实施例中,单元710-750能够分别被配置为执行参考图4a-6所述的方法400的块S410-S450的操作。因此,关于块S410-S450的描述在此同样适用于单元710-750,故,具体细节不再重复。
在另一实施例中,装置700可以进一步包括内存释放单元760,被配置为在数据页移除单元从第一缓存设备中移除所缓存的数据页、以及历史信息移除单元从所述第一缓存设备中移除所缓存的IO历史信息之后,释放用于该第一缓存设备的存储器并将该存储器返回内存管理单元。
替代地或者附加地,在又一实施例中,装置700可以包括搜索单元770,被配置为在从缓存器中减少缓存设备期间,针对IO请求搜索该缓存器,以及命中处理单元780,被配置为如果第一缓存设备已经被标记为待减少的设备、并且通过该搜索发现与IO请求关联的第一数据页被缓存在该第一缓存设备中,则从第一缓存设备中读取第一数据页,并向上层发送响应。
在一个实施例中,命中处理单元780也可以被配置为:如果第一缓存设备已经被标记为待减少的设备、并且该搜索命中第一缓存设备的阴影页的次数达到提升阈值,其中阴影页具有第一缓存设备的IO历史信息,则利用缓存器中未被标记为待减少的设备的另一缓存设备的空闲页,将与所述IO请求关联的数据提升到该缓存器。
仅作为示例,命中处理单元780可以包括排队单元781,被配置为将与IO请求关联的数据放入提升队列;空闲页搜索单元782,被配置为在缓存器中搜索未被标记为待减少的设备并且具有空闲页的缓存设备;调度单元783,被配置为按照预定的顺序从提升队列获取待提升的数据;以及提升单元784,被配置为利用搜索到的缓存设备将所获取的数据提升到所述缓存器。但是本公开的实施例不限于采用任何特定的实施方式来实现该命中处理单元780。例如提升过程不一定是基于队列的,而是可以根据其他因素来确定数据提升的优先级。另外,在一些实施例中,空闲页搜索单元782也可以被省略,而代之以将数据提升到预定的缓存设备中。
如本领域技术人员能够理解的,装置700还可以包括图7中未示出的其它单元。
本公开的实施例所提出的方法和装置的优点包括以下的至少一项:
-能够在线地进行缓存设备的减少,不影响缓存器服务于用户IO;
-缓存设备的减少过程不是破坏性的,对存储系统的性能影响小;
-减少了内部IO,提高整体性能。
本领域技术人员将容易地认识到,各种上述各种方法中的块或者步骤可以通过编程的计算机来执行。在本公开中,一些实施例还意在涵盖程序存储设备,例如,数字数据存储介质,这是机器或计算机可读的并且编码机器可执行或计算机可执行的指令程序,其中,所述指令执行上述方法的一些或所有步骤。程序存储设备可以是,例如,数字存储器、诸如磁盘和磁带的磁存储介质、硬盘驱动器或光学可读数字数据存储介质。该实施例还意在涵盖编程为执行所述上述方法的步骤的计算机。
在附图中示出的装置的各种元件的功能,可以通过使用软件、专用硬件以及与适当软件相关联的能够执行软件的硬件、或者固件、或者其结合来提供。在一个实施例中,提供一种装置,包括存储器和处理器,该存储器包含指令,当该指令由处理器执行时,该装置可操作以执行参考图4a-6所描述的任一方法。其中处理器的功能可以由单个专用处理器、由单个共享处理器或由多个单独的处理器来提供。此外,术语“处理器”可以包括但不限于,数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA),用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储装置。还可以包括其他常规和/或定制的硬件。
在本公开的一个实施例中,还提供一种存储系统,包括参考图7所描述的任一装置。
本领域技术人员应当理解,说明书和附图仅仅说明本公开的原理。因此,应当理解,本领域的技术人员将能够设计出各种布置,虽然这里没有明确地描述或示出,但是该布置体现本公开的原理并且被包括在本公开的精神和范围内。此外,这里阐述的所有示例主要旨在明确仅用于教学目的,以帮助读者理解本公开的原理和发明人贡献的用于促进本领域的概念,并且应被解释为不限于这些具体阐释的示例和条件。而且,这里阐述本公开的原理、方面和实施例的所有阐述及其具体示例也意在包含其等同物。
Claims (21)
1.一种从缓存器中在线地减少缓存设备的方法,所述缓存器包括第一缓存设备和第二缓存设备,所述方法包括:
保持所述缓存器以及所述第二缓存设备处于启用状态;
将所述第一缓存设备标记为待减少的设备,以阻止新的数据页被提升到所述第一缓存设备;
在从所述缓存器中减少缓存设备期间,针对输入输出IO请求搜索所述缓存器;
如果所述第一缓存设备已经被标记为待减少的设备、并且所述搜索命中所述第一缓存设备的阴影页的次数达到提升阈值,其中所述阴影页具有所述第一缓存设备的IO历史信息,则利用所述缓存器中未被标记为待减少的设备的另一缓存设备中的空闲页,将与所述IO请求关联的数据提升到所述缓存器;
从所述第一缓存设备中移除所缓存的数据页;
从所述第一缓存设备中移除所缓存的IO历史信息;以及
从所述缓存器中移除所述第一缓存设备。
2.根据权利要求1所述的方法,其中在所述缓存器中包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的数据页的第一链接、以及到所述第二缓存设备中所缓存的数据页的第二链接;并且
其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第二链接;
其中从所述第一缓存设备中移除所缓存的数据页包括断开所述第一链接,并且将所述第一缓存设备中所缓存的数据页清除到所述缓存器之外的另一存储设备。
3.根据权利要求1所述的方法,其中在所述缓存器中包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的阴影页的第三链接,以及到所述第二缓存设备中所缓存的阴影页的第四链接;所述阴影页具有对应缓存设备的IO历史信息;并且
其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第四链接;
其中从所述第一缓存设备中移除所缓存的IO历史信息包括断开所述第三链接,并且将所述第一缓存设备中所缓存的阴影页移除。
4.根据权利要求1所述的方法,其中在所述缓存器中包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中的缓存页元数据的第五链接,以及到所述第二缓存设备中的缓存页元数据的第六链接;所述缓存页元数据中存储了对应缓存设备所缓存的数据页与所述缓存器之外的另一存储设备中所存储的数据页之间的映射关系;并且
其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第六链接;
其中从所述第一缓存设备中移除所缓存的数据页包括断开所述第五链接,并且将所述第一缓存设备中的缓存页元数据移除。
5.根据权利要求1所述的方法,其中在所述缓存器中包括全局阴影列表,所述全局阴影列表具有到所述第一缓存设备中所缓存的阴影页的第七链接,以及到所述第二缓存设备中所缓存的阴影页的第八链接;所述阴影页具有对应缓存设备的IO历史信息;并且
其中保持所述缓存器以及所述第二缓存设备处于启用状态包括保留所述第八链接;
其中从所述第一缓存设备中移除所缓存的IO历史信息包括断开所述第七链接,并且将所述第一缓存设备中所缓存的阴影页移除。
6.根据权利要求1所述的方法,进一步包括:
在从所述第一缓存设备中移除所缓存的数据页、以及所缓存的IO历史信息之后,释放用于所述第一缓存设备的存储器,并且将所述存储器返回内存管理单元。
7.根据权利要求1所述的方法,其中所述第一缓存设备和所述第二缓存设备中的一个缓存设备包括一对固态磁盘SSD。
8.根据权利要求2或4所述的方法,其中所述缓存器之外的另一存储设备包括硬盘驱动器HDD。
9.根据权利要求1-7中任一项所述的方法,进一步包括:
在从所述缓存器中减少缓存设备期间,针对IO请求搜索所述缓存器,以及
如果所述第一缓存设备已经被标记为待减少的设备,并且通过所述搜索发现与所述IO请求关联的第一数据页被缓存在所述第一缓存设备中,则从所述第一缓存设备中读取所述第一数据页,并向上层发送响应。
10.根据权利要求1所述的方法,其中利用所述缓存器中未被标记为待减少的设备的另一缓存设备中的空闲页,将与所述IO请求关联的数据提升到所述缓存器包括:
将与所述IO请求关联的数据放入提升队列;
在所述缓存器中搜索未被标记为待减少的设备并且具有空闲页的缓存设备;
按照预定的顺序从所述提升队列获取待提升的数据;以及
利用搜索到的缓存设备将所获取的数据提升到所述缓存器。
11.一种从缓存器中在线地减少缓存设备的装置,所述缓存器包括第一缓存设备和第二缓存设备,所述装置包括:
启用保持单元,被配置为将所述缓存器以及所述第二缓存设备保持处于启用状态;
标记单元,被配置为将所述第一缓存设备标记为待减少的设备,以阻止新的数据页被提升到所述第一缓存设备;
搜索单元,被配置为在从所述缓存器中减少缓存设备期间,针对输入输出IO请求搜索所述缓存器;
命中处理单元,被配置为如果所述第一缓存设备已经被标记为待减少的设备、并且所述搜索命中所述第一缓存设备的阴影页的次数达到提升阈值,其中所述阴影页具有所述第一缓存设备的IO历史信息,则利用所述缓存器中未被标记为待减少的设备的另一缓存设备中的空闲页,将与所述IO请求关联的数据提升到所述缓存器;
数据页移除单元,被配置为从所述第一缓存设备中移除所缓存的数据页;
历史信息移除单元,被配置为从所述第一缓存设备中移除所缓存的IO历史信息;以及
缓存设备移除单元,被配置为从所述缓存器中移除所述第一缓存设备。
12.根据权利要求11所述的装置,其中在所述缓存器中包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的数据页的第一链接、以及到所述第二缓存设备中所缓存的数据页的第二链接;并且
所述启用保持单元被配置为保留所述第二链接;
所述数据页移除单元被配置断开所述第一链接,并且将所述第一缓存设备中所缓存的数据页清除到所述缓存器之外的另一存储设备。
13.根据权利要求11所述的装置,其中在所述缓存器中包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中所缓存的阴影页的第三链接,以及到所述第二缓存设备中所缓存的阴影页的第四链接;所述阴影页具有对应缓存设备的IO历史信息;并且
所述启用保持单元被配置为保留所述第四链接;
所述历史信息移除单元被配置为断开所述第三链接,并且将所述第一缓存设备中所缓存的阴影页移除。
14.根据权利要求11所述的装置,其中在所述缓存器中包括缓存页哈希表,所述缓存页哈希表具有到所述第一缓存设备中的缓存页元数据的第五链接,以及到所述第二缓存设备中的缓存页元数据的第六链接;所述缓存页元数据中存储了对应缓存设备所缓存的数据页与所述缓存器之外的另一存储设备中所存储的数据页之间的映射关系;并且
所述启用保持单元被配置为保留所述第六链接;
所述数据页移除单元被配置断开所述第五链接,并且将所述第一缓存设备中的缓存页元数据移除。
15.根据权利要求11所述的装置,其中在所述缓存器中包括全局阴影列表,所述全局阴影列表具有到所述第一缓存设备中所缓存的阴影页的第七链接,以及到所述第二缓存设备中所缓存的阴影页的第八链接;所述阴影页具有对应缓存设备的IO历史信息;并且
所述启用保持单元被配置为保留所述第八链接;
所述历史信息移除单元被配置为断开所述第七链接,并且将所述第一缓存设备中所缓存的阴影页移除。
16.根据权利要求11所述的装置,进一步包括:
内存释放单元,被配置为在所述数据页移除单元从所述第一缓存设备中移除所缓存的数据页、以及所述历史信息移除单元从所述第一缓存设备中移除所缓存的IO历史信息之后,释放用于所述第一缓存设备的存储器并将所述存储器返回内存管理单元。
17.根据权利要求11所述的装置,其中所述第一缓存设备和所述第二缓存设备中的一个缓存设备包括一对固态磁盘SSD。
18.根据权利要求12或14所述的装置,其中所述缓存器之外的另一存储设备包括硬盘驱动器HDD。
19.根据权利要求11-17中任一项所述的装置,进一步包括:
搜索单元,被配置为在从所述缓存器中减少缓存设备期间,针对IO请求搜索所述缓存器,以及
命中处理单元,被配置为如果所述第一缓存设备已经被标记为待减少的设备,并且通过所述搜索发现与所述IO请求关联的第一数据页被缓存在所述第一缓存设备中,则从所述第一缓存设备中读取所述第一数据页,并向上层发送响应。
20.根据权利要求11所述的装置,其中命中处理单元进一步包括:
排队单元,被配置为将与所述IO请求关联的数据放入提升队列;
空闲页搜索单元,被配置为在所述缓存器中搜索未被标记为待减少的设备并且具有空闲页的缓存设备;
调度单元,被配置为按照预定的顺序从所述提升队列获取待提升的数据;以及
提升单元,被配置为利用搜索到的缓存设备将所获取的数据提升到所述缓存器。
21.一种存储系统,包括根据权利要求11-20所述的任一装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609728.9A CN106547477B (zh) | 2015-09-22 | 2015-09-22 | 用于在线地减少缓存设备的方法和装置 |
US15/268,801 US10387308B2 (en) | 2015-09-22 | 2016-09-19 | Method and apparatus for online reducing caching devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609728.9A CN106547477B (zh) | 2015-09-22 | 2015-09-22 | 用于在线地减少缓存设备的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547477A CN106547477A (zh) | 2017-03-29 |
CN106547477B true CN106547477B (zh) | 2019-07-19 |
Family
ID=58364343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510609728.9A Active CN106547477B (zh) | 2015-09-22 | 2015-09-22 | 用于在线地减少缓存设备的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10387308B2 (zh) |
CN (1) | CN106547477B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213693B (zh) * | 2017-06-30 | 2023-05-05 | 伊姆西Ip控股有限责任公司 | 存储管理方法、存储系统和计算机程序产品 |
CN110413545B (zh) * | 2018-04-28 | 2023-06-20 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
CN111124951B (zh) | 2018-10-31 | 2023-09-15 | 伊姆西Ip控股有限责任公司 | 管理数据访问的方法、设备和计算机程序产品 |
TWI725791B (zh) * | 2019-01-16 | 2021-04-21 | 香港商希瑞科技股份有限公司 | 伺服器及相關的電腦程式產品 |
TWI692955B (zh) | 2019-01-16 | 2020-05-01 | 香港商希瑞科技股份有限公司 | 伺服器及相關的電腦程式產品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446188B1 (en) * | 1998-12-01 | 2002-09-03 | Fast-Chip, Inc. | Caching dynamically allocated objects |
US6633967B1 (en) * | 2000-08-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Coherent translation look-aside buffer |
US7979509B1 (en) * | 2005-09-15 | 2011-07-12 | Juniper Networks, Inc. | Clustered network acceleration devices having shared cache |
CN103019948A (zh) * | 2011-12-14 | 2013-04-03 | 微软公司 | 使用连续排序的交换文件的工作集合交换 |
CN103246613A (zh) * | 2012-02-08 | 2013-08-14 | 联发科技(新加坡)私人有限公司 | 缓存装置及用于缓存装置的缓存数据获取方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701393B1 (en) * | 2002-06-27 | 2004-03-02 | Emc Corporation | Systems and methods for managing storage location descriptors |
US20110145489A1 (en) * | 2004-04-05 | 2011-06-16 | Super Talent Electronics, Inc. | Hybrid storage device |
US7587429B2 (en) * | 2004-05-24 | 2009-09-08 | Solid Information Technology Oy | Method for checkpointing a main-memory database |
US7676554B1 (en) * | 2005-09-15 | 2010-03-09 | Juniper Networks, Inc. | Network acceleration device having persistent in-memory cache |
US8607208B1 (en) * | 2008-10-01 | 2013-12-10 | Oracle International Corporation | System and methods for object code hot updates |
US8271450B2 (en) * | 2009-10-01 | 2012-09-18 | Vmware, Inc. | Monitoring a data structure in a virtual machine and determining if memory pages containing the data structure are swapped into or out of guest physical memory |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US9104606B2 (en) * | 2011-11-22 | 2015-08-11 | Landy Wang | Temporal standby list |
US9110813B2 (en) * | 2013-02-14 | 2015-08-18 | Avago Technologies General Ip (Singapore) Pte Ltd | Cache load balancing in storage controllers |
US9280478B2 (en) * | 2013-04-26 | 2016-03-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Cache rebuilds based on tracking data for cache entries |
US9405672B2 (en) * | 2013-06-25 | 2016-08-02 | Seagate Technology Llc | Map recycling acceleration |
US20160210044A1 (en) * | 2015-01-15 | 2016-07-21 | Commvault Systems, Inc. | Intelligent hybrid drive caching |
-
2015
- 2015-09-22 CN CN201510609728.9A patent/CN106547477B/zh active Active
-
2016
- 2016-09-19 US US15/268,801 patent/US10387308B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446188B1 (en) * | 1998-12-01 | 2002-09-03 | Fast-Chip, Inc. | Caching dynamically allocated objects |
US6633967B1 (en) * | 2000-08-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Coherent translation look-aside buffer |
US7979509B1 (en) * | 2005-09-15 | 2011-07-12 | Juniper Networks, Inc. | Clustered network acceleration devices having shared cache |
CN103019948A (zh) * | 2011-12-14 | 2013-04-03 | 微软公司 | 使用连续排序的交换文件的工作集合交换 |
CN103246613A (zh) * | 2012-02-08 | 2013-08-14 | 联发科技(新加坡)私人有限公司 | 缓存装置及用于缓存装置的缓存数据获取方法 |
Also Published As
Publication number | Publication date |
---|---|
US10387308B2 (en) | 2019-08-20 |
CN106547477A (zh) | 2017-03-29 |
US20170103020A1 (en) | 2017-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547477B (zh) | 用于在线地减少缓存设备的方法和装置 | |
CN111936977B (zh) | 使用只追加存储设备的数据库管理系统及方法 | |
WO2016082793A1 (zh) | 高速缓存cache存储器系统及访问缓存行cache line的方法 | |
CN113515471B (zh) | 用于管理存储系统的方法和装置 | |
KR101717644B1 (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
CN104395904B (zh) | 高效的数据对象存储和检索 | |
CN107329704B (zh) | 一种缓存镜像方法及控制器 | |
KR20190011257A (ko) | 상이한 캐시 레벨에서의 캐시라인의 상태를 모니터하기 위한 쉐도우 태그 메모리 | |
CN107148622B (zh) | 智能闪存高速缓存记录器 | |
JP2018520420A (ja) | ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム | |
CN106951375A (zh) | 在存储系统中删除快照卷的方法及装置 | |
CN110196818A (zh) | 缓存数据的方法、缓存设备和存储系统 | |
JP5776474B2 (ja) | ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法 | |
CN104054071A (zh) | 访问存储设备的方法和存储设备 | |
CN105376269B (zh) | 虚拟机存储系统及其实现方法和装置 | |
WO2014157244A1 (ja) | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム | |
CN108139974A (zh) | 分布式缓存动态迁移 | |
CN109144431A (zh) | 数据块的缓存方法、装置、设备及存储介质 | |
CN109478164B (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法 | |
CN105915595B (zh) | 一种集群存储系统存取数据的方法以及集群存储系统 | |
JP4189342B2 (ja) | ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法 | |
CN103838647B (zh) | 一种基于快照重映射的数据状态转换的方法及系统 | |
JP4792335B2 (ja) | Raid装置、raid制御プログラムおよびキャッシュ管理方法 | |
KR101252375B1 (ko) | 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법 | |
CN104133785B (zh) | 采用混合目录的双控存储服务器的缓存一致性实现方法 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200417 Address after: Massachusetts, USA Patentee after: EMC IP Holding Company LLC Address before: Ma Sazhusaizhou Patentee before: EMC Corp. |
|
TR01 | Transfer of patent right |