CN111444036B - 数据关联性感知的纠删码内存替换方法、设备及内存*** - Google Patents

数据关联性感知的纠删码内存替换方法、设备及内存*** Download PDF

Info

Publication number
CN111444036B
CN111444036B CN202010196333.1A CN202010196333A CN111444036B CN 111444036 B CN111444036 B CN 111444036B CN 202010196333 A CN202010196333 A CN 202010196333A CN 111444036 B CN111444036 B CN 111444036B
Authority
CN
China
Prior art keywords
data blocks
cold data
stripe
memory
cold
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
Application number
CN202010196333.1A
Other languages
English (en)
Other versions
CN111444036A (zh
Inventor
黄建忠
曹强
廖宝忠
王程锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202010196333.1A priority Critical patent/CN111444036B/zh
Publication of CN111444036A publication Critical patent/CN111444036A/zh
Application granted granted Critical
Publication of CN111444036B publication Critical patent/CN111444036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据关联性感知的纠删码内存替换方法、设备及内存***,属于计算机存储领域,包括:(1)按照读请求的顺序将数据分块加载进内存,并以副本方式存放;(2)若已执行的读请求数量number达到阈值K2,则进行垃圾回收,之后转入步骤(4);否则,转入步骤(3);(3)若number达到阈值K1,则进行纠删码归档,使相关联的数据分块位于同一个条带中,之后转入步骤(4);否则,直接转入步骤(4);(4)若用户请求已经执行完毕,则操作结束;否则,获取下一条未执行的读请求作为当前读请求,并转入步骤(1)。本发明通过增大同一条带中的数据分块被同时淘汰的概率,能够减少归档后由于替换而造成的更新开销,降低用户访问延迟。

Description

数据关联性感知的纠删码内存替换方法、设备及内存***
技术领域
本发明属于计算机存储领域,更具体地,涉及一种数据关联性感知的纠删码内存替换方法、设备及内存***。
背景技术
为了加快数据读取速度,降低用户访问延迟,越来越多的数据被存放到内存中。例如,科学计算为获取低延迟访问将产生的中间结果集放在内存中。而内存具有数据易失性的特点,在断电、***崩溃等临时故障出现时内存中的数据会丢失,所以需要采用副本或纠删码来进行容错。副本容错方式简单高效,能够提高访问并行度,但空间利用率低,而纠删码在保证和副本同等容错前提下,其空间利用率高,但访问并行度低。为了保证集群内存的高容错性和高存储效率,对于内存中不同访问热度的数据(即:热数据、温数据、冷数据)需要使用不同的冗余方式进行存储,通常地,热数据采用副本机制,保证高访问性能;温数据采用纠删码机制存储,保证高存储效率;冷数据则持久化至磁盘,节省内存空间。
由于内存空间有限,为了提高内存利用率,当可用内存空间不足时,需要使用淘汰策略(如:LRU)将部分数据移出内存写回磁盘来回收内存空间,由于当前内存中对热数据采用副本存储,对冷数据块采用纠删码存储,所以淘汰的块可能由副本存储或在纠删码条带中存储,若数据块由副本存储,则可以直接将其写回磁盘并删除其在内存中的所有副本,若数据块位于纠删码条带中,则需要用内存中其他条带中的无需淘汰的数据块替换掉当前需淘汰数据块以保证条带的容错性。而纠删码条带中的替换相当于一个更新操作,不仅需要用新块替换需淘汰的块,还需要更新条带中的校验块,所以替换开销较大。
数据由副本到纠删码的转换过程称为纠删码归档(Erasure-coded Archival)。现有的纠删码归档方案都只关注于减少归档时的传输流量,没有考虑归档后由于内存空间不足而淘汰冷数据块造成的更新开销;现有的纠删码内存***中的更新方案都针对于优化写请求引起的更新并不适用于优化替换引起的更新。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种数据关联性感知的纠删码内存替换法方法、设备及内存***,其目的在于,通过增大同一条带中的数据分块被同时淘汰的概率,减少归档后由于替换而造成的更新开销,降低用户访问延迟。
为实现上述目的,按照本发明的第一方面,提供了一种数据关联性感知的纠删码内存替换方法,包括:
(1)按照当前读请求的顺序将数据分块加载进内存,并以副本方式存放;
(2)判断已执行的读请求数量是否达到垃圾回收阈值K2,若是,则进行垃圾回收,以淘汰内存中访问频度较低的数据分块,并在垃圾回收结束后,转入步骤(4);否则,转入步骤(3);
(3)判断已执行的读请求数量是否达到归档阈值K1,若是,则根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,并在纠删码归档结束后,转入步骤(4);否则,直接转入步骤(4);
(4)判断用户请求是否已经执行完毕,若是,则操作结束;否则,获取下一条未执行的读请求作为当前读请求,并转入步骤(1);
其中,0<K1<K2。
本发明在进行纠删码归档时,基于数据分块之间的关联性构建纠删码条带,使得相关联的数据分块位于同一个条带中,由于具有关联性的数据分块很大概率上会同时成冷数据分块,从而增大了同一个条带中的数据分块被同时淘汰的概率,减少了归档后由于替换而造成的更新开销,降低了用户访问延迟。
进一步地,步骤(3)中,在已执行的读请求数量达到归档阈值K1时,根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,包括:
(31)按照访问频度从大到小的顺序对内存中的数据分块进行排序,在排序结束后,将访问频度最大的前n%的数据分块作为热数据分块,并将其余分块作为冷数据分块;
(32)筛选出所有未参与组成条带的冷数据分块,构成集合coldlist;
(33)通过关联分析,从集合coldlist中筛选出所有的关联K项集,并按照出现频度从大到小的顺序对所有关联K项集进行排序,由排序之后的关联K项集构成集合allCklist;
(34)遍历集合allCklist,对于所遍历到的关联K项集,若其中所有的冷数据分块均未参与组成条带,则利用该关联K项集中的冷数据分块构成一个条带;否则,不对该关联K项集进行操作;
(35)在对集合allCklist遍历结束后,从集合coldlist中剔除已参与组成条带的冷数据分块,并利用集合coldlist中剩余的冷数据分块组成条带;
其中,0<n<100;K表示一个条带中所包含的数据分块数量;每一个关联K项集由K个冷数据分块构成,且其支持度support和其置信度confidence满足support≥min_sup,confidence≥min_conf,min_sup和min_conf分别是预设的阈值。
本发明通过关联分析,筛选出冷数据分块中的关联K项集后,按照出现频度降序的顺序遍历关联K项集,优先利用出现频度较高且其中的冷数据分块不属于其他条带的关联K项集构成条带,使得所构建的纠删码条带中冷数据分块之间的关联性最大化,从而使得同一个条带中的数据分块被同时淘汰的概率最大化。
本发明在纠删码归档过程中,仅利用当前识别出的冷数据分块进行归档,从而热数据分块仍然以副本方式存储,而冷数据分块以纠删码方式存储,在保证容错性且不降低***性能的同时减少了内存开销。
进一步地,步骤(35)中,利用集合coldlist中剩余的冷数据分块组成条带,包括:
按照时间戳从小到大的顺序对集合coldlist中剩余的冷数据分块进行排序,排序结束后,依次从集合coldlist中顺序取出K个冷数据分块并组成条带,直至集合coldlist中所有的冷数据分块均已位于条带中。
本发明对于不具有关联性的数据分块,按照时间戳的先后顺序排序后,依次顺序取K个数据分块构建条带,能够利用数据访问的时间局部性原理,增大同一个条带中的数据分块被同时淘汰的概率。
进一步地,步骤(33)中,通过关联分析,从集合coldlist中筛选出所有的关联K项集,包括:
按照分组大小groupsize将K1个用户请求分成w个分组set1~setw,过滤掉各分组中的热数据分块后,由所有分组构成集合set_all;
以min_sup为FP-Growth算法的最小支持度阈值,以min_conf为FP-Growth算法的最小置信度阈值,利用FP-Growth算法对集合set_all进行关联性分析,从而从集合coldlist中的冷数据分块中筛选出所有的关联K项集;
其中,groupsize为正整数。
本发明利用FP-Growth算法寻找冷数据分块中的关联K项集,能够充分发掘数据分块之间的关联性,使得每一个关联K项集中的数据分块之间有较大的关联性。
进一步地,关联K项集的出现频度为该关联K项集在w个分组set1~setw中出现的总次数。
本发明通过对已执行的读请求进行分组,并以关联K项集在所有分组中出现的总次数作为关联K项集的访问频度,为使得条带中冷数据分块之间的关联性最大化提供了可靠的依据。
进一步地,步骤(2)中,在已执行的读请求数量达到垃圾回收阈值K2时,进行垃圾回收,包括:
(21)按照访问频度从大到小的顺序对内存中的数据分块进行排序,在排序结束后,将后m%的数据分块作为冷数据分块,并将其余分块作为热数据分块,由所有冷数据分块构成集合replacelist;
(22)遍历集合replacelist,若所遍历到的冷数据分块以副本方式存储,则直接删除其所有副本,并将其写回存储设备;若所遍历到的冷数据分块以纠删码方式存储,则不对其进行操作;
(23)统计内存中所有条带中的冷数据分块个数,并按照冷数据分块个数从大到小的顺序对条带进行排序,由排序之后的条带构成集合stripelist;
(24)遍历集合stripelist,若所遍历到的条带中所有数据分块均为冷数据分块,则将该条带内的所有数据分块写回存储设备,并删除该条带;若所遍历到的条带中只有部分数据分块为冷数据分块,则将其中的热数据分块与其余条带中的冷数据分块交换并更新条带的校验分块后,将该条带内的所有数据分块写回存储设备,并删除该条带;若所遍历到的条带不包含冷数据分块,则不进行操作;
其中,0<m<100。
本发明根据数据访问频度将数据分块划分为热数据分块和冷数据分块,并将访问频度较低的冷数据分块作为待淘汰的数据分块,然后按照以副本方式存储的冷数据分块、所含数据分块均为冷数据分块的条带、仅含部分冷数据分块的条带的顺序淘汰数据分块,以回收内存空间,针对前两类数据分块的垃圾回收过程中不涉及数据分块的替换,由于本发明构建条带时,具有数据关联性的数据分块会位于同一条带中,同一条带中的数据分块很大概率上会同时成为冷数据分块并被淘汰,因此,仅有少量条带中的数据分块在被淘汰过程中需要进行数据分块的替换,大大减少了替换开销,有效降低了数据访问延迟。
按照本发明的第二方面,提供了一种数据关联性感知的纠删码内存替换设备,包括:加载模块、第一判决模块、垃圾回收模块、第二判决模块、纠删码归档模块以及循环控制模块;
加载模块,用于按照当前读请求的顺序将数据分块加载进内存,以副本方式存放,并在加载结束后,触发第一判决模块;
第一判决模块,用于判断已执行的读请求数量是否达到垃圾回收阈值K2,若是,则触发垃圾回收模块;否则,触发第二判决模块;
垃圾回收模块,用于进行垃圾回收,以淘汰内存中访问频度较低的数据分块,并在垃圾回收结束后,触发循环控制模块;
第二判决模块,用于判断已执行的读请求数量是否达到归档阈值K1,若是,则触发纠删码归档模块;否则,触发循环控制模块;
纠删码归档模块,用于根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,并在纠删码归档结束后,触发循环控制模块;
循环控制模块,用于判断用户请求是否已经执行完毕,若是,则结束操作;否则,获取下一条未执行的读请求作为当前读请求,并触发加载模块;
其中,0<K1<K2。
按照本发明的第三方面,提供了一种内存***,包括:内存和本发明第二方面提供的数据关联性感知的纠删码内存替换设备。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明在进行纠删码归档时,基于数据分块之间的关联性构建纠删码条带,使得相关联的数据分块位于同一个条带中,由于具有关联性的数据分块很大概率上会同时变成冷数据分块,从而增大了同一个条带中的数据分块被同时淘汰的概率,减少了归档后由于替换而造成的更新开销,降低了用户访问延迟。
(2)本发明通过关联分析,筛选出冷数据分块中的关联K项集后,按照出现频度降序的顺序遍历关联K项集,优先利用出现频度较高且其中的冷数据分块不属于其他条带的关联K项集构成条带,使得所构建的纠删码条带中冷数据分块之间的关联性最大化,从而使得同一个条带中的数据分块被同时淘汰的概率最大化。
(3)本发明在纠删码归档过程中,仅利用当前识别出的冷数据分块进行归档,从而热数据分块仍然以副本方式存储,而冷数据分块以纠删码方式存储,在保证容错性且不降低***性能的同时减少了内存开销。
(4)本发明对于不具有关联性的数据分块,按照时间戳的先后顺序排序后,依次顺序取K个数据分块构建条带,能够利用数据访问的时间局部性原理,增大同一个条带中的数据分块被同时淘汰的概率。
(5)本发明按照以副本方式存储的冷数据分块、所含数据分块均为冷数据分块的条带、仅含部分冷数据分块的条带的顺序淘汰数据分块,大大减少了替换开销,有效降低了数据访问延迟。
附图说明
图1为本发明实施例提供的数据关联性感知的纠删码内存替换方法流程图;
图2为本发明实施例提供的纠删码归档流程图;
图3为本发明实施例提供的垃圾回收流程图;
图4为本发明实施例提供的归档前内存中数据分块分布示意图;
图5为本发明实施例提供的归档后内存中数据分块分布示意图;
图6为本发明实施例提供的垃圾回收前各条带内数据分块的热度分布示意图;
图7为本发明实施例提供的垃圾回收后内存中数据分块分布示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对本发明所涉及到的关键技术术语做如下简要介绍:
纠删码归档:数据的一个固有特征是数据的流行度是变化的。对于某一时间段流行度很高的数据,可以采用多副本存储来提高效率。随着时间推进,这些数据的流行度可能变低,为了节省内存空间,可以将数据转成以纠删码方式存储。将集群中以多副本方式存储的数据以纠删码方式进行组织,这种过程称为纠删码归档。
FP-Growth算法:FP-Growth算法是一个经典的关联分析算法,用于从大规模的数据集中,寻找不同特征或者物品之间的隐含关系。FP-Growth算法有两个识别参数,支持度support和置信度confidence,只有当序列的支持度和置信度都大于设定的支持度阈值(min_sup)和置信度阈值(min_conf)时才被认为是关联序列,其中,一个序列中包含多个元素;
支持度:同时包含A和B的事务占所有事务的比例,即元素A和B共同出现过的次数;例如,若有5条购物记录,牛奶和面包在两条购物记录中出现过,则<牛奶,面包>的支持度为2/5=0.4;
置信度:包含A的事务中同时包含B的事务的比例,即同时包含A和B的事务的比例占所有包含A的事务比例;例如,若有5条购物记录,牛奶在其中3条购物记录中出现过,<牛奶,面包>在其中2条记录中出现过,则<牛奶,面包>的置信度为2/3=0.66;
条带:一个条带就是由多个数据块组成的整体,可以独立地恢复出失效数据的信息集合。
为减少归档后由于替换而造成的更新开销,降低用户访问延迟,本发明提供的数据关联性感知的纠删码内存替换方法,如图1所示,包括:
(1)按照当前读请求的顺序将数据分块加载进内存,并以副本方式存放;
具体的副本存储方式,可根据实际的空间效率和访问性能确定,副本数量越多,并行度越高,访问性能越好,但空间效率越低;反之,副本数量越少,空间效率越高,但访问性能越差;
不失一般性地,在本发明实施例中,具体采用双副本存储方法;
(2)判断已执行的读请求数量是否达到垃圾回收阈值K2,若是,则进行垃圾回收,以淘汰内存中访问频度较低的数据分块,并在垃圾回收结束后,转入步骤(4);否则,转入步骤(3);
(3)判断已执行的读请求数量是否达到归档阈值K1,若是,则根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,并在纠删码归档结束后,转入步骤(4);否则,直接转入步骤(4);
有相似的语义和访问特征的多个数据分块可称之为关联数据分块,通过关联算法即可分析得到关联数据分块;本实施例将关联数据(即相关联的数据分块)组织到同一个纠删码条带中,由于关联数据分块的访问趋势相同,所以极有可能一起变冷从而增大条带中数据分块同时被淘汰的概率,从而减少更新开销,降低用户访问延迟;
(4)判断用户请求是否已经执行完毕,若是,则操作结束;否则,获取下一条未执行的读请求作为当前读请求,并转入步骤(1);
其中,0<K1<K2,即保证在垃圾回收之前已进行过归档;一般取K2为K1的2或3倍。
在一个可选的实施方式中,上述数据关联性感知的纠删码内存替换方法的步骤(3)中,在已执行的读请求数量达到归档阈值K1时,根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,如图2所示,具体包括:
(31)按照访问频度从大到小的顺序对内存中的数据分块进行排序,在排序结束后,将访问频度最大的前n%的数据分块作为热数据分块,并将其余分块作为冷数据分块;
(32)筛选出所有未参与组成条带的冷数据分块,构成集合coldlist;
(33)通过关联分析,从集合coldlist中筛选出所有的关联K项集,并按照出现频度从大到小的顺序对所有关联K项集进行排序,由排序之后的关联K项集构成集合allCklist;
可选地,步骤(33)中,通过关联分析,从集合coldlist中筛选出所有的关联K项集,包括:
按照分组大小groupsize将K1个用户请求分成w个分组set1~setw,过滤掉各分组中的热数据分块后,由所有分组构成集合set_all;groupsize为正整数,其取值与关联K项集中的项数K有关,为了避免关联数据分块过多地分散在不同的分组中,分组大小groupsize要远大于K(如K=4,分组大小groupsize一般要大于等于40);本发明实施例中groupsize设置为100;w=K1/groupsize;
以min_sup为FP-Growth算法的最小支持度阈值,以min_conf为FP-Growth算法的最小置信度阈值,利用FP-Growth算法对集合set_all进行关联性分析,从而从集合coldlist中的冷数据分块中筛选出所有的关联K项集;在具体实现中,通过调用FP-Growth(min_sup,min_conf,set_all)函数,来分析集合coldlist中数据分块的关联性;
应当说明的是,FP-Growth算法仅为本发明的一种可选的关联算法,以上关联分析相关的描述不应理解为对本发明的唯一限定,其他可完成关联分析的关联算法同样可以应用于本发明;本实施例利用FP-Growth算法寻找冷数据分块中的关联K项集,能够充分发掘数据分块之间的关联性,使得每一个关联K项集中的数据分块之间有较大的关联性;
相应地,关联K项集的出现频度为该关联K项集在w个分组set1~setw中出现的总次数;如此计算各关联K项集的出现频度,为使得条带中冷数据分块之间的关联性最大化提供了可靠的依据;
(34)遍历集合allCklist,对于所遍历到的关联K项集,若其中所有的冷数据分块均未参与组成条带,则利用该关联K项集中的冷数据分块构成一个条带;否则,不对该关联K项集进行操作;
(35)在对集合allCklist遍历结束后,从集合coldlist中剔除已参与组成条带的冷数据分块,并利用集合coldlist中剩余的冷数据分块组成条带;
可选地,步骤(35)中,利用集合coldlist中剩余的冷数据分块组成条带,包括:
按照时间戳从小到大的顺序对集合coldlist中剩余的冷数据分块进行排序,排序结束后,依次从集合coldlist中顺序取出K个冷数据分块并组成条带,直至集合coldlist中所有的冷数据分块均已位于条带中;由此可以利用数据访问的时间局部性原理,增大同一个条带中的数据分块被同时淘汰的概率;
其中,0<n<100,n一般取20,即取访问频度最高的前20%的数据分块为热数据分块,后80%为冷数据分块,即热冷数据分块的比例一般服从二八分布;K表示一个条带中所包含的数据分块数量;每一个关联K项集由K个冷数据分块构成,且其支持度support和其置信度confidence满足support≥min_sup,confidence≥min_conf,min_sup和min_conf分别是预设的阈值,由于是对冷数据分块进行关联分析,其访问频度较低,一般取min_sup为2,即对访问超过2次的数据块进行分析,min_conf一般取0.8以上,保证高置信度。
本实施例优先利用出现频度较高且其中的冷数据分块不属于其他条带的关联K项集构成条带,使得所构建的纠删码条带中冷数据分块之间的关联性最大化,从而使得同一个条带中的数据分块被同时淘汰的概率最大化;热数据分块仍然以副本方式存储,而冷数据分块以纠删码方式存储,在保证容错性且不降低***性能的同时减少了内存开销。
在一个可选的实施方式中,上述数据关联性感知的纠删码内存替换方法的步骤(2)中,在已执行的读请求数量达到垃圾回收阈值K2时,进行垃圾回收,如图3所示,具体包括:
(21)按照访问频度从大到小的顺序对内存中的数据分块进行排序,在排序结束后,将后m%的数据分块作为冷数据分块,并将其余分块作为热数据分块,由所有冷数据分块构成集合replacelist;
(22)遍历集合replacelist,若所遍历到的冷数据分块以副本方式存储,则直接删除其所有副本,并将其写回存储设备,在此过程中不涉及数据分块的替换操作;若所遍历到的冷数据分块以纠删码方式存储,则不对其进行操作;
在本发明实施例中,存储设备具体为磁盘;
(23)统计内存中所有条带中的冷数据分块个数,并按照冷数据分块个数从大到小的顺序对条带进行排序,由排序之后的条带构成集合stripelist;
(24)遍历集合stripelist,若所遍历到的条带中所有数据分块均为冷数据分块,则将该条带内的所有数据分块写回存储设备,并删除该条带,在此过程中不涉及数据分块的替换操作;若所遍历到的条带中只有部分数据分块为冷数据分块,则将其中的热数据分块与其余条带中的冷数据分块交换并更新条带的校验分块后,将该条带内的所有数据分块写回存储设备,并删除该条带;若所遍历到的条带不包含冷数据分块,则不进行操作;
其中,0<m<100;在垃圾回收阶段,冷数据分块的比例即被淘汰的数据分块的比例,亦即回收内存空间的比例,不同的比例会导致不同的替换开销,通常将m设置为10、20、30、40等进行对比测试。
本发明根据数据访问频度将数据分块划分为热数据分块和冷数据分块,并将访问频度较低的冷数据分块作为待淘汰数据分块,然后按照以副本方式存储的冷数据分块、所含数据分块均为冷数据分块的条带、仅含部分冷数据分块的条带的顺序淘汰数据分块,以回收内存空间,针对前两类数据分块的垃圾回收过程中不涉及数据分块的替换,由于本发明构建条带时,具有数据关联性的数据分块会位于同一条带中,同一条带中的数据分块很大概率上会同时成为冷数据分块并被淘汰,因此,仅有少量条带中的数据分块在被淘汰过程中需要进行数据分块的替换,大大减少了替换开销,有效降低了数据访问延迟。
与上述数据关联性感知的纠删码内存替换方法相对应地,本发明还提供了一种数据关联性感知的纠删码内存替换设备,包括:加载模块、第一判决模块、垃圾回收模块、第二判决模块、纠删码归档模块以及循环控制模块;
加载模块,用于按照当前读请求的顺序将数据分块加载进内存,以副本方式存放,并在加载结束后,触发第一判决模块;
第一判决模块,用于判断已执行的读请求数量是否达到垃圾回收阈值K2,若是,则触发垃圾回收模块;否则,触发第二判决模块;
垃圾回收模块,用于进行垃圾回收,以淘汰内存中访问频度较低的数据分块,并在垃圾回收结束后,触发循环控制模块;
第二判决模块,用于判断已执行的读请求数量是否达到归档阈值K1,若是,则触发纠删码归档模块;否则,触发循环控制模块;
纠删码归档模块,用于根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,并在纠删码归档结束后,触发循环控制模块;
循环控制模块,用于判断用户请求是否已经执行完毕,若是,则结束操作;否则,获取下一条未执行的读请求作为当前读请求,并触发加载模块;
其中,0<K1<K2;
本发明实施例中,各模块的具体实施方式可参考上述方法实施例中的描述,在此将不作复述。
基于上述数据关联性感知的纠删码内存替换设备,本发明还提供了一种内存***,包括:内存和上述数据关联性感知的纠删码内存替换设备。
应用实例:
内存中数据分块以RS(4,3)编码或双副本方式存储,RS(4,3)编码得到的条带由3个数据分块和1个校验分块构成,第i(i∈{1,2,3})个数据分块记为Di,第j(j∈{1})个校验分块记为Pj,副本数据分块采用数据分块的名称标记。
按照上述数据关联性感知的纠删码内存替换方法管理内存;按照读请求顺序将数据分块加载进内存,并以双副本方式存放后,数据分块在内存中的分块如图4所示,D1被随机存放在节点Node1和节点Node4上,D2被随机存放在节点Node2和节点Node4上,等等;
在本实施例中,由于采用RS(4,3)进行编码,所以只关心关联3项集;在触发纠删码归档后,利用FP-Growth算法进行关联分析,得到的关联3项集分别是<D1,D2,D3>,<D4,D5,D6>和<D7,D8,D9>;按照出现频度从大到小的顺序对关联3项集进行排序,假设排序后,关联3项集<D1,D2,D3>,<D4,D5,D6>和<D7,D8,D9>的出现频度依次减小,则遍历这3个关联3项集,判断所遍历到的关联3项集中所有数据块是否均未参与组成条带,若是,则将当前关联3项集组成条带;否则,当前关联3项集不组成条带。
在本应用实例中,利用关联3项集构成的条带如图5所示,共构建了三个条带,条带1由D1,D2,D3构建,条带2由D4,D5,D6构建,条带3由D7,D8,D9构建。
在触发垃圾回收后,各条带内数据分块的热度分布情况如图6所示,条带1、条带2、条带3中冷数据分块的数量依次为1、2、3;优先遍历条带3,其中所有的数据分块均为冷数据分块,直接将该条带中的数据分块写回磁盘,并删除该条带;其次遍历条带2,其中仅部分数据分块为冷数据分块,将其中的热数据分块D6与条带1中的冷数据分块D3交换并更新条带1的校验分块后,将条带2中的数据分块写回磁盘,并删除该条带;最后遍历条带1,其中不包含冷数据分块,不对其进行操作,条带1仍保留在内存中。垃圾回收结束后,内存中数据分块的分布情况如图7所示。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种数据关联性感知的纠删码内存替换方法,其特征在于,包括:
(1)按照当前读请求的顺序将数据分块加载进内存,并以副本方式存放;
(2)判断已执行的读请求数量是否达到垃圾回收阈值K2,若是,则进行垃圾回收,以淘汰内存中访问频度较低的数据分块,并在垃圾回收结束后,转入步骤(4);否则,转入步骤(3);
(3)判断已执行的读请求数量是否达到归档阈值K1,若是,则根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,并在纠删码归档结束后,转入步骤(4);否则,直接转入步骤(4);
(4)判断用户请求是否已经执行完毕,若是,则操作结束;否则,获取下一条未执行的读请求作为当前读请求,并转入步骤(1);
其中,0<K1<K2;
所述步骤(3)中,在已执行的读请求数量达到归档阈值K1时,根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,包括:
(31)按照访问频度从大到小的顺序对内存中的数据分块进行排序,在排序结束后,将访问频度最大的前n%的数据分块作为热数据分块,并将其余分块作为冷数据分块;
(32)筛选出所有未参与组成条带的冷数据分块,构成集合coldlist;
(33)通过关联分析,从所述集合coldlist中筛选出所有的关联K项集,并按照出现频度从大到小的顺序对所有关联K项集进行排序,由排序之后的关联K项集构成集合allCklist;
(34)遍历所述集合allCklist,对于所遍历到的关联K项集,若其中所有的冷数据分块均未参与组成条带,则利用该关联K项集中的冷数据分块构成一个条带;否则,不对该关联K项集进行操作;
(35)在对所述集合allCklist遍历结束后,从所述集合coldlist中剔除已参与组成条带的冷数据分块,并利用所述集合coldlist中剩余的冷数据分块组成条带;
其中,0<n<100;K表示一个条带中所包含的数据分块数量;每一个关联K项集由K个冷数据分块构成,且其支持度support和其置信度confidence满足support≥min_sup,confidence≥min_conf,min_sup和min_conf分别是预设的阈值。
2.如权利要求1所述的数据关联性感知的纠删码内存替换方法,其特征在于,所述步骤(35)中,利用所述集合coldlist中剩余的冷数据分块组成条带,包括:
按照时间戳从小到大的顺序对所述集合coldlist中剩余的冷数据分块进行排序,排序结束后,依次从所述集合coldlist中顺序取出K个冷数据分块并组成条带,直至所述集合coldlist中所有的冷数据分块均已位于条带中。
3.如权利要求1所述的数据关联性感知的纠删码内存替换方法,其特征在于,所述步骤(33)中,通过关联分析,从所述集合coldlist中筛选出所有的关联K项集,包括:
按照分组大小groupsize将K1个用户请求分成w个分组set1~setw,过滤掉各分组中的热数据分块后,由所有分组构成集合set_all;
以min_sup为FP-Growth算法的最小支持度阈值,以min_conf为FP-Growth算法的最小置信度阈值,利用FP-Growth算法对所述集合set_all进行关联性分析,从而从所述集合coldlist中的冷数据分块中筛选出所有的关联K项集;
其中,groupsize为正整数。
4.如权利要求3所述的数据关联性感知的纠删码内存替换方法,其特征在于,关联K项集的出现频度为该关联K项集在w个分组set1~setw中出现的总次数。
5.如权利要求1-4任一项所述的数据关联性感知的纠删码内存替换方法,其特征在于,所述步骤(2)中,在已执行的读请求数量达到垃圾回收阈值K2时,进行垃圾回收,包括:
(21)按照访问频度从大到小的顺序对内存中的数据分块进行排序,在排序结束后,将后m%的数据分块作为冷数据分块,将其余数据分块作为热数据分块,由当前所有的冷数据分块构成集合replacelist;
(22)遍历所述集合replacelist,若所遍历到的冷数据分块以副本方式存储,则直接删除其所有副本,并将其写回存储设备;若所遍历到的冷数据分块以纠删码方式存储,则不对其进行操作;
(23)统计内存中所有条带中的冷数据分块个数,并按照冷数据分块个数从大到小的顺序对条带进行排序,由排序之后的条带构成集合stripelist;
(24)遍历所述集合stripelist,若所遍历到的条带中所有数据分块均为冷数据分块,则将该条带内的所有数据分块写回存储设备,并删除该条带;若所遍历到的条带中只有部分数据分块为冷数据分块,则将其中的热数据分块与其余条带中的冷数据分块交换并更新条带的校验分块后,将该条带内的所有数据分块写回存储设备,并删除该条带;若所遍历到的条带不包含冷数据分块,则不进行操作;
其中,0<m<100。
6.一种数据关联性感知的纠删码内存替换设备,其特征在于,包括:加载模块、第一判决模块、垃圾回收模块、第二判决模块、纠删码归档模块以及循环控制模块;
所述加载模块,用于按照当前读请求的顺序将数据分块加载进内存,以副本方式存放,并在加载结束后,触发所述第一判决模块;
所述第一判决模块,用于判断已执行的读请求数量是否达到垃圾回收阈值K2,若是,则触发所述垃圾回收模块;否则,触发所述第二判决模块;
所述垃圾回收模块,用于进行垃圾回收,以淘汰内存中访问频度较低的数据分块,并在垃圾回收结束后,触发所述循环控制模块;
所述第二判决模块,用于判断已执行的读请求数量是否达到归档阈值K1,若是,则触发所述纠删码归档模块;否则,触发所述循环控制模块;
所述纠删码归档模块,用于根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,并在纠删码归档结束后,触发所述循环控制模块;
所述循环控制模块,用于判断用户请求是否已经执行完毕,若是,则结束操作;否则,获取下一条未执行的读请求作为当前读请求,并触发所述加载模块;
其中,0<K1<K2;
所述纠删码归档模块根据数据分块之间的关联性进行纠删码归档,以使得相关联的数据分块位于同一个条带中,包括:
按照访问频度从大到小的顺序对内存中的数据分块进行排序,在排序结束后,将访问频度最大的前n%的数据分块作为热数据分块,并将其余分块作为冷数据分块;
筛选出所有未参与组成条带的冷数据分块,构成集合coldlist;
通过关联分析,从所述集合coldlist中筛选出所有的关联K项集,并按照出现频度从大到小的顺序对所有关联K项集进行排序,由排序之后的关联K项集构成集合allCklist;
遍历所述集合allCklist,对于所遍历到的关联K项集,若其中所有的冷数据分块均未参与组成条带,则利用该关联K项集中的冷数据分块构成一个条带;否则,不对该关联K项集进行操作;
在对所述集合allCklist遍历结束后,从所述集合coldlist中剔除已参与组成条带的冷数据分块,并利用所述集合coldlist中剩余的冷数据分块组成条带;
其中,0<n<100;K表示一个条带中所包含的数据分块数量;每一个关联K项集由K个冷数据分块构成,且其支持度support和其置信度confidence满足support≥min_sup,confidence≥min_conf,min_sup和min_conf分别是预设的阈值。
7.一种内存***,其特征在于,包括:内存和权利要求6所述的数据关联性感知的纠删码内存替换设备。
CN202010196333.1A 2020-03-19 2020-03-19 数据关联性感知的纠删码内存替换方法、设备及内存*** Active CN111444036B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010196333.1A CN111444036B (zh) 2020-03-19 2020-03-19 数据关联性感知的纠删码内存替换方法、设备及内存***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010196333.1A CN111444036B (zh) 2020-03-19 2020-03-19 数据关联性感知的纠删码内存替换方法、设备及内存***

Publications (2)

Publication Number Publication Date
CN111444036A CN111444036A (zh) 2020-07-24
CN111444036B true CN111444036B (zh) 2021-04-20

Family

ID=71629463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010196333.1A Active CN111444036B (zh) 2020-03-19 2020-03-19 数据关联性感知的纠删码内存替换方法、设备及内存***

Country Status (1)

Country Link
CN (1) CN111444036B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799872B (zh) * 2021-02-19 2022-08-12 上海交通大学 一种基于键值对存储***的纠删码编码方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104391759A (zh) * 2014-11-11 2015-03-04 华中科技大学 一种纠删码存储中负载感知的数据归档方法
CN104657405A (zh) * 2013-11-15 2015-05-27 国际商业机器公司 用于归档数据的基于优先级的可靠性机制的方法和***
CN107273048A (zh) * 2017-06-08 2017-10-20 浙江大华技术股份有限公司 一种数据写入方法及装置
CN107667363A (zh) * 2015-06-26 2018-02-06 英特尔公司 具有多种可选数据处理策略的基于对象的存储集群
CN109783016A (zh) * 2018-12-25 2019-05-21 西安交通大学 一种分布式存储***中的弹性多维度冗余方法
CN110032338A (zh) * 2019-03-20 2019-07-19 华中科技大学 一种面向纠删码的数据副本放置方法及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902628B (zh) * 2012-09-18 2016-06-01 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、***及闪存
US9501353B2 (en) * 2015-01-28 2016-11-22 Quantum Corporation Erasure code prioritization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657405A (zh) * 2013-11-15 2015-05-27 国际商业机器公司 用于归档数据的基于优先级的可靠性机制的方法和***
CN104391759A (zh) * 2014-11-11 2015-03-04 华中科技大学 一种纠删码存储中负载感知的数据归档方法
CN107667363A (zh) * 2015-06-26 2018-02-06 英特尔公司 具有多种可选数据处理策略的基于对象的存储集群
CN107273048A (zh) * 2017-06-08 2017-10-20 浙江大华技术股份有限公司 一种数据写入方法及装置
CN109783016A (zh) * 2018-12-25 2019-05-21 西安交通大学 一种分布式存储***中的弹性多维度冗余方法
CN110032338A (zh) * 2019-03-20 2019-07-19 华中科技大学 一种面向纠删码的数据副本放置方法及***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An Erasure Coded Archival Storage System;Prateep Misra等;《2012 IEEE 18th International Conference on Parallel and Distributed Systems》;20130117;全文 *
面向纠删码存储集群的节点并发重构;黄建忠等;《计算机研究与发展》;20160915;全文 *

Also Published As

Publication number Publication date
CN111444036A (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
JP7271670B2 (ja) データレプリケーション方法、装置、コンピュータ機器及びコンピュータプログラム
US7418544B2 (en) Method and system for log structured relational database objects
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
CN102521406B (zh) 海量结构化数据复杂查询任务的分布式查询方法和***
US8694472B2 (en) System and method for rebuilding indices for partitioned databases
CN106502587B (zh) 硬盘数据管理方法和硬盘控制装置
CN108139968B (zh) 确定垃圾收集器线程数量及活动管理的方法及设备
US8560500B2 (en) Method and system for removing rows from directory tables
CN110825748A (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
CN111475507B (zh) 一种工作负载自适应单层lsmt的键值数据索引方法
JP2003150418A (ja) データベース管理システムの静的な情報を取得する手段を有する記憶装置
CN111026329B (zh) 基于主机管理瓦记录磁盘的键值存储***及数据处理方法
CN102831222A (zh) 一种基于重复数据删除的差量压缩方法
CN113867627B (zh) 一种存储***性能优化方法及***
CN111444036B (zh) 数据关联性感知的纠删码内存替换方法、设备及内存***
CN112799597A (zh) 面向流数据处理的分级存储容错方法
CN116186085A (zh) 一种基于缓存梯度冷热数据分层机制的键值存储***及方法
CN112799590B (zh) 一种针对在线主存储重删的差异化缓存方法
US10416901B1 (en) Storage element cloning in presence of data storage pre-mapper with multiple simultaneous instances of volume address using virtual copies
CN107133334B (zh) 基于高带宽存储***的数据同步方法
CN112527197A (zh) 一种智能卡碎片存储空间整理方法、智能卡及***
US20230418827A1 (en) Processing multi-column streams during query execution via a database system
CN112463795A (zh) 一种动态哈希方法、装置、设备及存储介质
KR101419428B1 (ko) 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법
CN108021678A (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