CN111427969B - 一种分级存储系统的数据替换方法 - Google Patents
一种分级存储系统的数据替换方法 Download PDFInfo
- Publication number
- CN111427969B CN111427969B CN202010190573.0A CN202010190573A CN111427969B CN 111427969 B CN111427969 B CN 111427969B CN 202010190573 A CN202010190573 A CN 202010190573A CN 111427969 B CN111427969 B CN 111427969B
- Authority
- CN
- China
- Prior art keywords
- data
- replacement
- nodes
- persistent memory
- storage system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000002085 persistent effect Effects 0.000 claims abstract description 86
- 230000005012 migration Effects 0.000 claims abstract description 64
- 238000013508 migration Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000012216 screening Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000032683 aging Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/282—Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分级存储数据替换技术领域,特别涉及一种分级存储系统的数据替换方法,包括:当任一节点的持久性内存空间使用率大于或等于替换阈值时,任一节点自动成为迁移节点,迁移节点通过远程过程调用向其他节点发送数据替换请求,以便其他节点根据数据替换请求提议并发送备选冷数据对应的结果;迁移节点根据结果汇总筛选备选冷数据,做出最终数据替换决策;迁移节点根据最终数据替换决策,在持久性内存和外存之间交换冷热数据,并通过版本信息以保证数据一致性。该分级存储系统的数据替换方法,能够以较低的性能开销,高效地识别出持久性内存中的冷数据并将该冷数据替换到外存,从而把热数据保留在性能更高的持久性内存中。
Description
技术领域
本发明涉及分级存储数据替换技术领域,特别涉及一种分级存储系统的数据替换方法。
背景技术
大数据存储时代的特点包括两方面内容,一方面数据量越来越多,另一方面存储与计算的性能差距越来越大,这两方面的特点在很大程度上制约了大数据处理或高性能计算应用。随着应用程序对存储各方面的需求越来越高,迫切需要一种高性能、大容量以及低成本的存储服务。但是,目前还没有存储介质能够同时具备高性能、大容量以及低成本这三个特点。不同的存储介质在读写性能、容量以及成本方面形成了金字塔型结构。如新兴的非易失存储器(Non-Volatile Memory,NVM)具有存储密度比动态随机存取存储器(DynamicRandom Access Memory,DRAM)高、掉电数据不丢失、访问性能接近DRAM以及可按字节寻址等特性,但缺点是价格昂贵。而固态存储器(Solid State Disk,SSD)、硬盘驱动器(HardDisk Drive,HDD),容量更大、价格便宜,但读写性能比DRAM和NVM低。
分级存储(Hierarchical Storage)是将多种不同的存储介质组合起来,对外提供一个整体存储服务。由于数据的访问具有时间局部性与空间局部性,存储系统并不需要将所有数据总是存储于性能最高的存储介质中,可以根据数据访问特点,将当前访问频繁或重要的数据存储于高端存储介质,而将当前访问较少的数据存储于低层存储介质中,这样整个存储系统就既能快速响应应用程序对热点数据的访问请求,又能存储大量数据。
分级存储通常对用户提供统一的访问接口,混合存储内部自动完成数据的冷热分级、迁移调度等工作。传统的数据迁移策略包括固定阈值法、基于存储空间的高低水位法、基于数据访问率的缓存替换迁移算法和基于信息生命周期管理的价值评定方法等。而这一系列现有的迁移策略,要么算法过于简单,数据冷热价值判断不准确,容易导致缓存污染等问题;要么实现过于复杂,具有较高的时间开销与空间开销,甚至会对内存存储的读写访问造成较为严重的性能影响。且目前已有的迁移策略较少同时涉及到持久性内存存储与分布式存储,不合适的迁移策略更是难以同时满足分布式、高性能等需求,从而影响存储系统的前台存储性能。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种分级存储系统的数据替换方法,能够以较低的性能开销,高效地识别出持久性内存中的冷数据并将该冷数据替换到外存,从而把热数据保留在性能更高的持久性内存中。
为达此目的,本发明实施例提出了一种分级存储系统的数据替换方法,所述分级存储系统的存储设备包括持久性内存与外存,所述分级存储系统的数据与元数据均独立地存储于若干个节点,在所述持久性内存和所述外存之间替换数据的步骤,包括:
当任一节点的持久性内存空间使用率大于或等于替换阈值时,所述任一节点自动成为迁移节点,所述迁移节点通过远程过程调用向其他节点发送数据替换请求,以便所述其他节点根据所述数据替换请求提议备选冷数据并发送所述备选冷数据对应的结果;其中,所述替换阈值根据持久性内存空间使用率和工作负载特征动态计算获得;数据的热度值根据访问频率计算,动态多级无锁链表的数据结构用于对所述数据的热度值进行排序;
所述迁移节点接收到所述其他节点发送的所述结果,并根据所述结果汇总筛选所述备选冷数据,做出最终数据替换决策;
所述迁移节点根据所述最终数据替换决策,在所述持久性内存和所述外存之间交换冷热数据,并通过版本信息以保证数据一致性。
本发明实施例的一种分级存储系统的数据替换方法,设计更适合于分布式持久性内存与外存的分级存储系统,能够以较低的性能开销,高效地识别出持久性内存中的冷数据并将该冷数据替换到外存,从而把热数据保留在性能更高的持久性内存中。
另外,根据本发明上述实施例的一种分级存储系统的数据替换方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述分级存储系统的节点包括元数据端模块和数据端模块,所述元数据端模块用于维护数据的元数据并筛选出需要替换到外存的备选冷数据;所述数据端模块用于在所述持久性内存与所述外存之间替换数据;其中,所述元数据包括数据存储位置、热度值和最近访问时间。
进一步地,在本发明的一个实施例中,所述元数据端模块为不同的持久性内存节点维护不同的多级分段链表,位于所述持久性内存的数据具有对应的多级链表节点,所述动态多级无锁链表根据热度值范围划分层级,链表节点根据对应数据热度值的最高有效位决定其所在的链表层级。
进一步地,在本发明的一个实施例中,所述数据热度值基于访问次数计算并根据访问间隔进行老化,当前热度值=上次热度值/2^访问间隔数+1;其中,所述访问间隔数等于当前访问时间与上次访问时间的差值除以预设访问间隔单位。
进一步地,在本发明的一个实施例中,所述根据所述结果汇总筛选所述备选冷数据,包括:根据预设时长内工作负载的读写访问比例生成所述替换阈值的上下限范围,根据所述上下限范围和所述结果汇总筛选所述备选冷数据。
进一步地,在本发明的一个实施例中,所述分级存储系统在同一时间允许存在若干个迁移节点通过远程过程调用向其他节点发送数据替换请求。
进一步地,在本发明的一个实施例中,所述其他节点根据所述数据替换请求提议备选冷数据并发送所述备选冷数据对应的结果,包括:所述其他节点将位于所述迁移节点的数据对应的多级链表节点根据热度值插入到多级链表的对应层级中,从链表低层向高层筛选并提议备选冷数据,将所述备选冷数据对应的结果合并发送给所述迁移节点。
进一步地,在本发明的一个实施例中,所述迁移节点根据所述最终数据替换决策,在所述持久性内存和所述外存之间交换冷热数据,包括:所述迁移节点根据热度值从低到高的顺序筛选出最终需要替换的冷数据,并将所述冷数据替换到所述外存中,以使持久性内存空间使用率小于所述替换阈值;其中,在数据替换过程中,所述迁移节点将若干个数据块合并写到所述外存;数据替换完成后,所述迁移节点通过远程过程调用将替换结果通知给所述其他节点以修改相应元数据。
进一步地,在本发明的一个实施例中,所述数据替换方法,还包括:当所述外存的部分数据的热度值大于或等于预设替换冷热边界值时,将所述部分数据替换回所述持久性内存中;当所述部分数据替换回的目标持久性内存地址位于其他节点时,使用RDMA技术将所述部分数据写入到所述目标持久性内存中。
进一步地,在本发明的一个实施例中,所述数据替换方法,还包括:当数据发生更新或替换时增加版本号,以便所述分级存储系统根据所述数据的版本号判断数据的时效性。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明实施例的分级存储系统的数据替换方法的步骤流程图;
图2是本发明实施例的分级存储系统的数据替换方法的架构示意图;
图3是本发明实施例的动态多级无锁链表的结构示意图;
图4是本发明实施例的分级存储系统的数据替换方法的流程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述本发明实施例提出的一种分级存储系统的数据替换方法。
请参考附图1,其是本发明实施例的分级存储系统的数据替换方法的步骤流程图。
如附图1所示,该分级存储系统的数据替换方法,所述分级存储系统的存储设备包括持久性内存与外存,所述分级存储系统的数据与元数据均独立地存储于若干个节点,在所述持久性内存和所述外存之间替换数据的步骤,包括:
S101:当任一节点的持久性内存空间使用率大于或等于替换阈值时,所述任一节点自动成为迁移节点,所述迁移节点通过远程过程调用向其他节点发送数据替换请求,以便所述其他节点根据所述数据替换请求提议备选冷数据并发送所述备选冷数据对应的结果。
其中,所述替换阈值根据持久性内存空间使用率和工作负载特征动态计算获得;数据的热度值根据访问频率计算,动态多级无锁链表的数据结构用于对所述数据的热度值进行排序。
S102:所述迁移节点接收到所述其他节点发送的所述结果,并根据所述结果汇总筛选所述备选冷数据,做出最终数据替换决策。
S103:所述迁移节点根据所述最终数据替换决策,在所述持久性内存和所述外存之间交换冷热数据,并通过版本信息以保证数据一致性。
具体地,本发明实施例提出的一种分级存储系统的数据替换方法,又称一种分级存储系统的数据替换机制,所述分级存储系统中的数据与元数据可独立地存储于多个节点,所述数据替换机制包含元数据端模块与数据端模块,在持久性内存和外存之间替换数据,该数据替换机制包括以下内容:
1、采用基于访问频率的冷热数据替换机制获得数据的热度值,采用动态多级无锁链表的数据结构维护热度信息,采用基于访问次数的动态热度值计算方法,和采用适应持久性内存空间使用率和工作负载特征的动态阈值获得替换阈值;
2、当某节点持久性内存空间使用率高于所述替换阈值时,某节点自动成为迁移节点;节点间通过远程过程调用发送数据替换请求、并接收数据替换的结果以及交换冷热数据;
3、其他节点采用多节点提议备选冷数据,迁移节点汇总筛选做出最终数据替换决策,通过版本信息保证数据一致性。
请参考附图2,其是本发明实施例的分级存储系统的数据替换方法的架构示意图。
如附图2所示,该分级存储系统的存储设备包括持久性内存与外存,所述分级存储系统中的数据与元数据可独立地存储于多个节点,以实现更好的可扩展性。该分级存储系统的数据替换机制包含元数据端模块与数据端模块,在持久性内存和外存之间替换数据。
本发明实施例的一种分级存储系统的数据替换方法,设计更适合于分布式持久性内存与外存的分级存储系统,能够以较低的性能开销,高效地识别出持久性内存中的冷数据并将该冷数据替换到外存,从而把热数据保留在性能更高的持久性内存中。
在本发明的一个实施例中,所述分级存储系统的节点包括元数据端模块和数据端模块,所述元数据端模块用于维护数据的元数据并筛选出需要替换到外存的备选冷数据;所述数据端模块用于在所述持久性内存与所述外存之间替换数据;其中,所述元数据包括数据存储位置、热度值和最近访问时间。
具体地,所述元数据端模块用于维护数据的元数据,其中与数据替换相关的元数据包括数据存储位置、热度值、最近访问时间等,并在需要进行数据替换时筛选出需要替换到外存的备选冷数据;所述数据端模块是节点进行数据替换的发起者与协调者,用于在持久性内存与外存间替换数据。
在本发明的一个实施例中,所述元数据端模块为不同的持久性内存节点维护不同的多级分段链表,位于所述持久性内存的数据具有对应的多级链表节点,所述动态多级无锁链表根据热度值范围划分层级,链表节点根据对应数据热度值的最高有效位决定其所在的链表层级。
具体地,仅在进行数据替换时更新多级链表,数据被访问时仅更新元数据的热度值。
进一步地,元数据端模块不直接使用热度值作为判断数据冷热的绝对依据,而是按照数据的热度进行排序,筛选出相对较冷的数据,以适应不同工作负载情况下变化的热度值。为此,本发明的一个实施例使用一种动态多级无锁链表数据结构,对持久性内存中的数据的冷热进行排序,筛选出热度相对较低的备选冷数据,具有较低的时间开销与空间开销。元数据端模块为不同持久性内存节点维护不同的多级分段链表,位于持久性内存的数据具有对应的多级链表节点。
具体地,如附图3所示,其是本发明实施例的动态多级无锁链表的结构示意图。该动态多级无锁链表的多级链表以一个链表头数组开始,链表头数组自下而上构成不同层级的多级链表。多级链表以热度值范围划分层级,每个链表节点与一个位于持久性内存上的数据相关联,对应数据的热度值的最高有效位决定了链表节点所在的链表层级。除了最高一层,热度值最高有效位相同的链表节点位于同一层级链表,多级链表的不同层级之间形成粗粒度的排序关系,且由于指数幂的性质,最高有效位越低,表示的范围越小,故越低的层级,划分的粒度越精细,有助于冷数据的细粒度筛选。每层链表内部不排序,目的是牺牲微小的排序精度以避免昂贵的排序开销。由于数据替换的目标是热度值较低的冷数据,热度非常高的数据不可能作为冷数据被替换,为进一步减小多级链表的维护开销,可以限制多级链表的最大层数,将热度值高于最高层的链表节点均放置在最高层级的链表中,如附图3所示,热度值大于等于1024的链表节点均在最高层。当发生数据替换时,元数据端模块根据多级链表从低向高依次选择备选冷数据,直到筛选出足够的冷数据量。
多线程情况下,修改链表需要加锁。为了避免高并发下,热度变化移动链表节点对锁的争用影响系统性能,多级链表采取惰性修改的方式。在本发明的一个实施例中,元数据端模块为每个存储节点添加一个长链表,数据的链表节点平常位于长链表中。数据被访问时只修改热度值元数据,在发生数据替换时,将长链表中的节点依次完成热度老化操作并移动到对应的分段链表中,再进行备选冷数据筛选过程。这种惰性的修改方式一方面避免了锁的使用,另一方面自然地合并了热度值更新,避免链表节点频繁改动。完成替换后,再将分段链表整合成长链表,整合长链表的过程只需要修改几个链表指针。
由于新创建的数据热度值为0,但新创建的数据很有可能是将要被频繁访问的热数据。一方面为了避免新创建的数据立即被调度到外存导致较低的访问性能,另一方面为了避免长链表的修改需要加锁,在本发明的一个实施例中,添加一个使用锁的保护链表。新创建的数据,以及从外存中刚替换回持久性内存的数据会先加入到保护链表中。在下一次数据替换时,元数据端模块不会选择保护链表中的数据进行调度,数据替换结束后,再将保护链表同多级链表一起整合成长链表。
在本发明的一个实施例中,所述数据热度值基于访问次数计算并根据访问间隔进行老化,当前热度值=上次热度值/2^访问间隔数+1;其中,所述访问间隔数等于当前访问时间与上次访问时间的差值除以预设访问间隔单位。具体地,数据被访问时,更新热度值。
具体地,基于访问次数的缓存替换算法LFU比最久未使用算法LRU考虑了访问频率因素,更能体现数据的冷热。但由于数据访问具有时间局部性,用户可能只在短时间内对相关数据访问多次,当该数据不再使用时,数据因为历史被访问的次数较多而继续被当作热数据留在高层次的存储设备中,因而LFU算法容易受历史访问记录影响而导致“缓存污染”的问题。本发明的一个实施例中的热度值更新算法在LFU的基础上添加了根据访问间隔老化热度的机制。若数据的当前访问时间与上次访问时间之差小于一个间隔单位,则意味着数据最近被访问过,访问间隔数为0,热度不会老化。当数据长时间没有被访问,则热度值会迅速以指数速度老化。热度老化采用一种惰性的方式,数据的热度值仅在数据被访问时或在数据替换更新多级链表节点时进行,以减少不必要的热度老化开销。
在本发明的一个实施例中,所述根据所述结果汇总筛选所述备选冷数据,包括:根据预设时长内工作负载的读写访问比例生成所述替换阈值的上下限范围,根据所述上下限范围和所述结果汇总筛选所述备选冷数据。
具体地,所述迁移节点在数据替换前,根据近期工作负载的读写访问比例重新生成替换阈值的上下限范围。工作负载写比例偏低时,替换阈值相对较高,写比例偏高时,替换阈值相对较低。
具体地,为了适应不同的IO工作负载,采用了一种动态调节调度阈值(该调度阈值对应替换阈值的上下限范围)的机制,充分利用持久性内存的性能优势。以每次数据替换为间隔,统计期间内持久性内存写数据量和读数据量,计算两者的比例。若比例较高,说明当前存储系统写操作较多,需要降低调度阈值,以使得持久性内存有足够的空间存放新写入的数据;若比例较低,说明当前存储系统IO工作模式以读操作为主,应适当提高调度阈值,以使更多数据存放于持久性内存,提高持久性内存利用率;若比例适中,则调节调度阈值逐渐向设置的初始替换阈值回归。在本发明的一个实施例中,初始的替换阈值为80%,调度阈值分别对应替换阈值的上限90%和替换阈值的下限70%。
在本发明的一个实施例中,所述分级存储系统在同一时间允许存在若干个迁移节点通过远程过程调用向其他节点发送数据替换请求。
在本发明的一个实施例中,所述其他节点根据所述数据替换请求提议备选冷数据并发送所述备选冷数据对应的结果,包括:所述其他节点将位于所述迁移节点的数据对应的多级链表节点根据热度值插入到多级链表的对应层级中,从链表低层向高层筛选并提议备选冷数据,将所述备选冷数据对应的结果合并发送给所述迁移节点。
在本发明的一个实施例中,所述迁移节点根据所述最终数据替换决策,在所述持久性内存和所述外存之间交换冷热数据,包括:所述迁移节点根据热度值从低到高的顺序筛选出最终需要替换的冷数据,并将所述冷数据替换到所述外存中,以使持久性内存空间使用率小于所述替换阈值;其中,在数据替换过程中,所述迁移节点将若干个数据块合并写到所述外存;数据替换完成后,所述迁移节点通过远程过程调用将替换结果通知给所述其他节点以修改相应元数据。
具体地,数据替换过程由迁移节点发起,同一时间,系统内可有多个迁移节点。数据替换流程包括以下步骤:
当某节点持久性内存空间使用率高于替换阈值时,成为迁移节点,向各节点发送数据替换请求。各节点元数据端模块将位于迁移节点的数据对应的多级链表节点,根据热度值插入到多级链表的对应层级中,从链表低层向高层筛选备选冷数据,并将备选冷数据信息合并发送给迁移节点。迁移节点汇总备选冷数据信息,并从热度低向高筛选出最终需要替换的数据替换到外存中,使持久性内存空间阈值低于替换阈值。替换过程中,将多个数据块合并写到外存。替换完成后,迁移节点通过远程过程调用将替换结果通知给各节点元数据端模块以修改相应元数据。
具体地,数据替换过程由迁移节点发起,同一时间,分级存储系统内可有多个迁移节点。在数据替换发生时,元数据端模块仅筛选位于迁移节点的备选冷数据,筛选所用的多级链表也独立于其他节点,不同迁移节点涉及的数据不会发生冲突,故系统内可以同时有多个迁移节点并发进行数据替换过程。
如附图4所示,其是本发明实施例的分级存储系统的数据替换方法的流程示意图,该数据替换流程包括以下步骤:
A:当某节点持久性内存空间使用率高于替换阈值时,首先重新计算新替换阈值(该重新计算新替换阈值的过程对应获得替换阈值的上下限范围的过程),若持久性内存空间使用率仍高于新替换阈值,则其成为迁移节点,并通过远程过程调用向各节点发送数据替换请求。
B:各节点元数据端模块将位于迁移节点的数据对应的多级链表节点,完成热度值的老化更新,根据热度值插入到多级链表的对应层级中,再从链表低层向高层筛选备选冷数据,并将备选冷数据信息合并发送给迁移节点,信息包括备选冷数据的大小、地址和热度值。由于不同元数据节点提议的冷数据冷热程度不均匀,每个元数据节点提议的冷数据量需要略大于总替换需求量除以节点数的平均值,以使迁移节点有足够的冷数据信息并进一步筛选出热度值最低的冷数据。
C:迁移节点汇总备选冷数据信息,根据数据的热度值从低向高选择最终需要替换的数据,直到选出数据量替换后能使持久性内存空间阈值低于替换阈值。选择出最终替换的冷数据后,将这些冷数据替换到外存。替换操作直接将持久性内存中的数据写到外存中。替换过程中,将多个数据块合并,以外存友好的读写块粒度并以块对齐的方式写到外存,以减少外存的写次数或写放大,提高外存的写效率。
D:替换完成后,迁移节点通过远程过程调用将替换结果通知给各节点元数据端模块以更新数据的新位置等元数据,元数据端模块根据具体情况确定数据替换结果,或将持久性内存中的旧数据标记为过期数据,或拒绝此次替换结果。
数据替换过程中需要保证数据的一致性,以避免在数据替换过程中,客户端更新数据导致系统中出现数据不一致的情况。若元数据端模块直接在数据被筛选后就对数据加锁,因为替换数据量较大,替换工作耗时较长,数据长时间被锁住,对访问该数据的IO影响极其严重。若数据端模块逐个替换数据前,向元数据端申请加锁,且替换完成后还要通知元数据端并释放锁,数据端将需要向元数据端发送大量远程过程调用请求,网络开销较大。所以,在本发明的一个实施例中,数据端模块不向元数据端模块请求数据的锁,而直接先将数据拷贝到外存,所有冷数据替换完成后将替换的结果再通过远程过程调用返回给元数据端确认。元数据端模块检查替换的数据,根据实际情况决定接收或拒绝这些数据的替换结果。
在本发明的一个实施例中,所述数据替换方法,还包括:当所述外存的部分数据的热度值大于或等于预设替换冷热边界值时,将所述部分数据替换回所述持久性内存中;当所述部分数据替换回的目标持久性内存地址位于其他节点时,使用RDMA技术将所述部分数据写入到所述目标持久性内存中。
具体地,当外存中的数据短期内被频繁访问,其热度值超过预设替换冷热边界值时,将其替换回持久性内存。当替换回的目标持久性内存地址位于其他节点时,使用RDMA技术将数据写入到目标持久性内存中。
具体地,每次数据替换,迁移节点会记录此次发生替换的冷数据中热度值的最大值,以该最大值作为替换的预设替换冷热边界值。当外存中的数据被访问后,其热度值上升至超过替换的预设替换冷热边界值,则认为该数据近期访问次数较多,已不再是冷数据,需要将其升级到读写访问性能更高的持久性内存中。元数据端模块将为该数据申请新的持久性内存空间,优先在同一节点中申请空间,以减少跨节点移动数据的开销。若新的持久性内存地址与数据在同一节点,则通过远程过程调用通知数据所在节点将该数据从外存替换到持久性内存;若新的持久性内存地址与数据不在同一节点,则通过远程过程调用通知数据所在节点使用RDMA技术将该数据直接写入新的持久性内存地址。
在本发明的一个实施例中,所述数据替换方法,还包括:当数据发生更新或替换时增加版本号,以便所述分级存储系统根据所述数据的版本号判断数据的时效性。
具体地,版本号将协助数据替换过程中的一致性维护。若一个数据写请求的数据版本号低于最新版本号,则存储系统直接拒绝该写请求,相应客户端需要重新获取该数据的最新版本号与存储地址等元数据。
具体地,相对于传统的以容量较小的高速存储介质作为高速缓存的缓存策略,该缓存策略将访问频繁的热数据缓存到高速介质中,本发明实施例提出的一种分级存储系统的数据替换方法,以高性能的持久性内存为主,数据替换是将访问不频繁的冷数据替换到外存中,设计更适合于分布式持久性内存与外存的分级存储系统的数据替换机制,能够以较低的性能开销,高效地识别持久性内存中的冷数据并替换到外存,将热数据保留在性能更高的持久性内存中。
本领域的普通技术人员可以理解,上述各实施例在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种分级存储系统的数据替换方法,其特征在于,所述分级存储系统的存储设备包括持久性内存与外存,所述分级存储系统的数据与元数据均独立地存储于若干个节点,在所述持久性内存和所述外存之间替换数据的步骤,包括:
当任一节点的持久性内存空间使用率大于或等于替换阈值时,所述任一节点自动成为迁移节点,所述迁移节点通过远程过程调用向其他节点发送数据替换请求,以便所述其他节点根据所述数据替换请求提议备选冷数据并发送所述备选冷数据对应的结果;其中,所述替换阈值根据持久性内存空间使用率和工作负载特征动态计算获得;数据的热度值根据访问频率计算,动态多级无锁链表的数据结构用于对所述数据的热度值进行排序;
所述迁移节点接收到所述其他节点发送的所述结果,并根据所述结果汇总筛选所述备选冷数据,做出最终数据替换决策;
所述迁移节点根据所述最终数据替换决策,在所述持久性内存和所述外存之间交换冷热数据,并通过版本信息以保证数据一致性。
2.根据权利要求1所述的一种分级存储系统的数据替换方法,其特征在于,所述分级存储系统的节点包括元数据端模块和数据端模块,所述元数据端模块用于维护数据的元数据并筛选出需要替换到外存的备选冷数据;所述数据端模块用于在所述持久性内存与所述外存之间替换数据;其中,所述元数据包括数据存储位置、热度值和最近访问时间。
3.根据权利要求2所述的一种分级存储系统的数据替换方法,其特征在于,所述元数据端模块为不同的持久性内存节点维护不同的多级分段链表,位于所述持久性内存的数据具有对应的多级链表节点,所述动态多级无锁链表根据热度值范围划分层级,链表节点根据对应数据热度值的最高有效位决定其所在的链表层级。
4.根据权利要求3所述的一种分级存储系统的数据替换方法,其特征在于,所述数据热度值基于访问次数计算并根据访问间隔进行老化,当前热度值=上次热度值/2^访问间隔数+1;其中,所述访问间隔数等于当前访问时间与上次访问时间的差值除以预设访问间隔单位。
5.根据权利要求1所述的一种分级存储系统的数据替换方法,其特征在于,所述根据所述结果汇总筛选所述备选冷数据,包括:根据预设时长内工作负载的读写访问比例生成所述替换阈值的上下限范围,根据所述上下限范围和所述结果汇总筛选所述备选冷数据。
6.根据权利要求1所述的一种分级存储系统的数据替换方法,其特征在于,所述分级存储系统在同一时间允许存在若干个迁移节点通过远程过程调用向其他节点发送数据替换请求。
7.根据权利要求1所述的一种分级存储系统的数据替换方法,其特征在于,所述其他节点根据所述数据替换请求提议备选冷数据并发送所述备选冷数据对应的结果,包括:所述其他节点将位于所述迁移节点的数据对应的多级链表节点根据热度值插入到多级链表的对应层级中,从链表低层向高层筛选并提议备选冷数据,将所述备选冷数据对应的结果合并发送给所述迁移节点。
8.根据权利要求1所述的一种分级存储系统的数据替换方法,其特征在于,所述迁移节点根据所述最终数据替换决策,在所述持久性内存和所述外存之间交换冷热数据,包括:所述迁移节点根据热度值从低到高的顺序筛选出最终需要替换的冷数据,并将所述冷数据替换到所述外存中,以使持久性内存空间使用率小于所述替换阈值;其中,在数据替换过程中,所述迁移节点将若干个数据块合并写到所述外存;数据替换完成后,所述迁移节点通过远程过程调用将替换结果通知给所述其他节点以修改相应元数据。
9.根据权利要求1所述的一种分级存储系统的数据替换方法,其特征在于,所述数据替换方法,还包括:当所述外存的部分数据的热度值大于或等于预设替换冷热边界值时,将所述部分数据替换回所述持久性内存中;当所述部分数据替换回的目标持久性内存地址位于其他节点时,使用RDMA技术将所述部分数据写入到所述目标持久性内存中。
10.根据权利要求1所述的一种分级存储系统的数据替换方法,其特征在于,所述数据替换方法,还包括:当数据发生更新或替换时增加版本号,以便所述分级存储系统根据所述数据的版本号判断数据的时效性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010190573.0A CN111427969B (zh) | 2020-03-18 | 2020-03-18 | 一种分级存储系统的数据替换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010190573.0A CN111427969B (zh) | 2020-03-18 | 2020-03-18 | 一种分级存储系统的数据替换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111427969A CN111427969A (zh) | 2020-07-17 |
CN111427969B true CN111427969B (zh) | 2022-05-27 |
Family
ID=71546404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010190573.0A Active CN111427969B (zh) | 2020-03-18 | 2020-03-18 | 一种分级存储系统的数据替换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111427969B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051968B (zh) * | 2020-08-07 | 2021-10-22 | 东北大学 | 基于Kafka的分布式数据流分级缓存自动迁移方法 |
CN112948398B (zh) * | 2021-04-29 | 2023-02-24 | 电子科技大学 | 一种面向冷热数据的分级存储系统及方法 |
KR102392880B1 (ko) * | 2021-09-06 | 2022-05-02 | (주) 바우디움 | 계층화 문서를 관리하는 방법 및 이를 이용한 장치 |
CN114518849B (zh) * | 2022-02-18 | 2023-01-10 | 深圳大学 | 一种数据存储方法、装置及电子设备 |
CN115617542A (zh) * | 2022-10-11 | 2023-01-17 | 阿里巴巴(中国)有限公司 | 内存交换方法、装置、计算机设备及存储介质 |
CN116700935B (zh) * | 2023-08-04 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 一种内存数据迁移方法、装置、电子设备及存储介质 |
CN116821102B (zh) * | 2023-08-25 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117248A (zh) * | 2011-03-09 | 2011-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存系统和在缓存系统中缓存数据的方法 |
CN103150263A (zh) * | 2012-12-13 | 2013-06-12 | 深圳先进技术研究院 | 分级存储方法 |
CN103605615A (zh) * | 2013-11-21 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 一种分级存储中基于块级数据的定向分配方法 |
CN103631729A (zh) * | 2013-12-06 | 2014-03-12 | 浪潮(北京)电子信息产业有限公司 | 一种基于块级的分级存储方法及系统 |
CN106484330A (zh) * | 2016-09-27 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种混合磁盘分层数据优化方法和装置 |
CN107844269A (zh) * | 2017-10-17 | 2018-03-27 | 华中科技大学 | 一种基于一致性哈希的分层混合存储系统及方法 |
CN110209345A (zh) * | 2018-12-27 | 2019-09-06 | 中兴通讯股份有限公司 | 数据存储的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9852076B1 (en) * | 2014-12-18 | 2017-12-26 | Violin Systems Llc | Caching of metadata for deduplicated LUNs |
-
2020
- 2020-03-18 CN CN202010190573.0A patent/CN111427969B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117248A (zh) * | 2011-03-09 | 2011-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存系统和在缓存系统中缓存数据的方法 |
CN103150263A (zh) * | 2012-12-13 | 2013-06-12 | 深圳先进技术研究院 | 分级存储方法 |
CN103605615A (zh) * | 2013-11-21 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 一种分级存储中基于块级数据的定向分配方法 |
CN103631729A (zh) * | 2013-12-06 | 2014-03-12 | 浪潮(北京)电子信息产业有限公司 | 一种基于块级的分级存储方法及系统 |
CN106484330A (zh) * | 2016-09-27 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种混合磁盘分层数据优化方法和装置 |
CN107844269A (zh) * | 2017-10-17 | 2018-03-27 | 华中科技大学 | 一种基于一致性哈希的分层混合存储系统及方法 |
CN110209345A (zh) * | 2018-12-27 | 2019-09-06 | 中兴通讯股份有限公司 | 数据存储的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111427969A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427969B (zh) | 一种分级存储系统的数据替换方法 | |
CN107193646B (zh) | 一种基于混合主存架构的高效动态页面调度方法 | |
CN107844269B (zh) | 一种基于一致性哈希的分层混合存储系统 | |
CN110134514B (zh) | 基于异构内存的可扩展内存对象存储系统 | |
CN100399301C (zh) | 大容量存储设备和用于动态管理大容量存储设备的方法 | |
US20150081960A1 (en) | Memory device and operating method thereof | |
JPH0877073A (ja) | 集合光ディスク装置 | |
US8103824B2 (en) | Method for self optimizing value based data allocation across a multi-tier storage system | |
CN110413537B (zh) | 一种面向混合固态硬盘的闪存转换层及转换方法 | |
JP2016506579A (ja) | データストレージシステム向けの優先度に基づくガベージコレクション | |
CN110888600B (zh) | 一种面向nand闪存的缓冲区管理方法 | |
CN106293521A (zh) | 一种映射粒度自适应的闪存转换层管理方法 | |
CN110347338B (zh) | 混合内存数据交换处理方法、系统及可读存储介质 | |
EP3255547B1 (en) | Data backup device and method | |
JP6323445B2 (ja) | ストレージ装置と方法及びプログラム | |
CN107729535A (zh) | 一种键值数据库内布隆过滤器的配置方法 | |
CN110262982A (zh) | 一种固态硬盘地址映射的方法 | |
CN111078143B (zh) | 基于段映射进行数据布局和调度的混合存储方法及系统 | |
Zhan et al. | RangeKV: An efficient key-value store based on hybrid DRAM-NVM-SSD storage structure | |
Carniel et al. | A generic and efficient framework for flash-aware spatial indexing | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
Lv et al. | Zonedstore: A concurrent zns-aware cache system for cloud data storage | |
CN108897618B (zh) | 一种异构内存架构下基于任务感知的资源分配方法 | |
Gu et al. | Dynamic file cache optimization for hybrid SSDs with high-density and low-cost flash memory | |
CN115858510A (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 |