System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据存储领域,具体涉及一种应用于键值分离存储系统的页缓存热数据聚合方法及装置。
技术介绍
1、随着近年来互联网的兴起,云计算、大数据应用越来越广泛,nosql数据库日益繁荣。而键值存储作为nosql中的一种,出现了许多成功的商业化产品,如facebook的rocksdb以及google的leveldb、bigtable。
2、目前,键值存储系统的实现方式多种多样,其中一种是基于lsm树的键值存储系统,该系统是当下比较流行的键值存储实现。与其他实现结构相比,lsm树的主要优点是它使用了顺序的写入模式,从根本上提升了写吞吐量。由于要支持多键的范围查询和单键的点查询,lsm树会维护多个有序键范围。lsm树的第0层有多个有序键范围,而第1至第n层每层为一个有序键范围。为此,lsm树采用了一种名为层间合并的机制,将多个键值对排序,并回收其中无效的键值对。需要指出的是,lsm树的层间合并机制会占用较多的i/o带宽,与用户的读写操作产生带宽竞争,并且数据排序后的反复写入会加剧固态硬盘的寿命损耗。为了解决lsm树存在的问题,键值分离存储系统应运而生。它的主要方法就是将值使用其它的方式存储于一个值文件中,避免值被牵涉入层间合并的执行过程,从而显著地提升了系统的吞吐量。
3、然而,在不同的流行工作负载中,键值分离存储系统仍具有访存优化的空间。在键值存储的现实应用中,许多的工作负载都具有齐夫分布的特征。齐夫分布是指少数键值对接受了大部分的访问请求。这种情况使得一些键值对成为相对热的数据。但是,现有键值分离存储系统
4、因此,需要设计一种应用于键值分离存储系统的页缓存热数据聚合方法,在值文件中聚合热值于一个页单位的数据块中,提高页缓存的命中率,同时应避免对系统的其他性能有明显影响。
技术实现思路
1、本申请的目的在于针对上述提到的技术问题提出一种应用于键值分离存储系统的页缓存热数据聚合方法及装置。
2、第一方面,本专利技术提供了一种应用于键值分离存储系统的页缓存热数据聚合方法,键值分离存储系统包括lsm树、内存和外存,内存存储有写缓冲区、热度统计表、热缓冲区和冷缓冲区,外存存储有值文件,值文件存储有与热缓冲区和冷缓冲区对应的键范围分组的数据,包括以下步骤:
3、响应于确定写缓冲区已被写满并获取到将待写入的键值对写入值文件的操作指令,则查询热度统计表;
4、响应于确定待写入的键值对中的键在热度统计表中,则确定待写入的键值对为热数据,判断热缓冲区是否已被写满,若是则将热缓冲区中的所有键值对持久化至对应的键范围分组中,再将待写入的键值对写入热缓冲区,否则直接将待写入的键值对写入热缓冲区;
5、响应于确定待写入的键值对中的键不在热度统计表中,则确定待写入的键值对为冷数据,判断冷缓冲区是否已被写满,若是则将冷缓冲区中的所有键值对持久化至对应的键范围分组中,再将待写入的键值对写入冷缓冲区,否则直接将待写入的键值对写入冷缓冲区;
6、将待写入的键值对所在的值地址和对应的键写入lsm树中。
7、作为优选,热度统计表所采用的策略包括最不经常使用算法,并基于lfu缓存实现,lfu缓存包括哈希表、红黑树和若干双向循环链表。
8、作为优选,哈希表的元素包括键及其对应的访问次数、前驱指针和后继指针,双向循环链表上的各个节点为哈希表中的具有同一个访问次数的键所对应的元素,并通过前驱指针和后继指针连接双向循环链表上的各个节点,每个双向循环链表具有表头节点和表尾节点,表尾节点的地址存储在表尾指针,红黑树的每个元素为访问次数及其对应的表尾指针。
9、作为优选,查询热度统计表,具体包括:
10、将待写入的键值对中的键在哈希表中查询,若查询到待写入的键值对中的键在哈希表中,则确定待写入的键值对中的键在热度统计表中,将待写入的键值对所对应的哈希表的元素中的访问次数加1,并调整待写入的键值对所对应的哈希表的元素所在的双向循环链表的索引关系和节点的增删以及红黑树的元素中的表尾指针;
11、若查询到待写入的键值对中的键不在哈希表中,则确定待写入的键值对中的键不在热度统计表中,在哈希表中记录待写入的键值对所对应的元素,其中待写入的键值对所对应的元素中的访问次数为1,在访问次数为1所对应的双向循环链表中增加一个待写入的键值对所对应的元素所对应的节点并调整其索引关系以及红黑树的元素中的表尾指针。
12、作为优选,热度统计表采用热度认定方式来定义数据为热数据或冷数据,热度认定方式的过程如下:
13、将数据按照访问次数从多到少排列,访问次数最多的数据位于第0个百分位,访问次数最少的数据位于第100个百分位,将低于认定百分位p的数据定义为热数据,并记录在热度统计表中,其余数据定义为冷数据,认定百分位p采用下式计算:
14、;
15、其中,scache是实际页缓存的空间,而sfile是值文件的大小;
16、热度统计表中的元素上限ntable采用下式计算:
17、;
18、其中,nfile是值文件中所存储键值对的总量;
19、根据实际页缓存空间的变化,动态调整热度认定过程,并裁剪热度统计表,热度统计表的裁剪发生在对应分组垃圾回收的过程中,并占用了一个后台线程。
20、作为优选,每个键范围分组对应一对热缓冲区和冷缓冲区,热缓冲区和冷缓冲区的大小与页单位相等,热度统计表初始化为空。
21、第二方面,本专利技术提供了一种应用于键值分离存储系统的页缓存热数据聚合装置,键值分离存储系统包括lsm树、内存和外存,内存存储有写缓冲区、热度统计表、热缓冲区和冷缓冲区,外存存储有值文件,值文件存储有与热缓冲区和冷缓冲区对应的键范围分组的数据,包括:
22、查询模块,被配置为响应于确定写缓冲区已被写满并获取到将待写入的键值对写入值文件的操作指令,则查询热度统计表;
23、热数据写入模块,被配置为响应于确定待写入的键值对中的键在热度统计表中,则确定待写入的键值对为热数据,判断热缓冲区是否已被写满,若是则将热缓冲区中的所有键值对持久化至对应的键范围分组中,再将待写入的键值对写入热缓冲区,否则直接将待写入的键值对写入热缓冲区;
24、冷数据写入模块,被配置为响应于确定待写入的键值对中的键不在热度统计表中,则确定待写入的键值对为冷数据,判断冷缓冲区是否已被写满,若是则将冷缓冲区中的所有键值对持久化至对应的键范围分组中,再将待写入的键值对写入冷缓冲区本文档来自技高网...
【技术保护点】
1.一种应用于键值分离存储系统的页缓存热数据聚合方法,所述键值分离存储系统包括LSM树、内存和外存,所述内存存储有写缓冲区、热度统计表、热缓冲区和冷缓冲区,所述外存存储有值文件,所述值文件存储有与所述热缓冲区和冷缓冲区对应的键范围分组的数据,其特征在于,包括以下步骤:
2.根据权利要求1所述的应用于键值分离存储系统的页缓存热数据聚合方法,其特征在于,所述热度统计表所采用的策略包括最不经常使用算法,并基于LFU缓存实现,所述LFU缓存包括哈希表、红黑树和若干双向循环链表。
3.根据权利要求2所述的应用于键值分离存储系统的页缓存热数据聚合方法,其特征在于,所述哈希表的元素包括键及其对应的访问次数、前驱指针和后继指针,所述双向循环链表上的各个节点为所述哈希表中的具有同一个访问次数的键所对应的元素,并通过所述前驱指针和后继指针连接所述双向循环链表上的各个节点,每个所述双向循环链表具有表头节点和表尾节点,所述表尾节点的地址存储在表尾指针,所述红黑树的每个元素为访问次数及其对应的表尾指针。
4.根据权利要求3所述的应用于键值分离存储系统的页缓存热数据聚合方
5.根据权利要求1所述的应用于键值分离存储系统的页缓存热数据聚合方法,其特征在于,所述热度统计表采用热度认定方式来定义数据为热数据或冷数据,所述热度认定方式的过程如下:
6.根据权利要求1所述的应用于键值分离存储系统的页缓存热数据聚合方法,其特征在于,每个所述键范围分组对应一对热缓冲区和冷缓冲区,所述热缓冲区和冷缓冲区的大小与页单位相等,所述热度统计表初始化为空。
7.一种应用于键值分离存储系统的页缓存热数据聚合装置,所述键值分离存储系统包括LSM树、内存和外存,所述内存存储有写缓冲区、热度统计表、热缓冲区和冷缓冲区,所述外存存储有值文件,所述值文件存储有与所述热缓冲区和冷缓冲区对应的键范围分组的数据,其特征在于,包括:
8.一种电子设备,包括:
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的方法。
...【技术特征摘要】
1.一种应用于键值分离存储系统的页缓存热数据聚合方法,所述键值分离存储系统包括lsm树、内存和外存,所述内存存储有写缓冲区、热度统计表、热缓冲区和冷缓冲区,所述外存存储有值文件,所述值文件存储有与所述热缓冲区和冷缓冲区对应的键范围分组的数据,其特征在于,包括以下步骤:
2.根据权利要求1所述的应用于键值分离存储系统的页缓存热数据聚合方法,其特征在于,所述热度统计表所采用的策略包括最不经常使用算法,并基于lfu缓存实现,所述lfu缓存包括哈希表、红黑树和若干双向循环链表。
3.根据权利要求2所述的应用于键值分离存储系统的页缓存热数据聚合方法,其特征在于,所述哈希表的元素包括键及其对应的访问次数、前驱指针和后继指针,所述双向循环链表上的各个节点为所述哈希表中的具有同一个访问次数的键所对应的元素,并通过所述前驱指针和后继指针连接所述双向循环链表上的各个节点,每个所述双向循环链表具有表头节点和表尾节点,所述表尾节点的地址存储在表尾指针,所述红黑树的每个元素为访问次数及其对应的表尾指针。
4.根据权利要求3所述的应用于键值分离存储系统的页缓存热数据聚合方法,其特征在于...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。