【技术实现步骤摘要】
一种全局优化的键值存储方法及装置
[0001]本专利技术属于计算机软件
,尤其涉及一种全局优化的键值存储方法及装置。
技术介绍
[0002]为了满足交互式场景下低延迟写入和更新的需求,日志合并树(LSM
‑
Tree)(O'NEIL P,CHENG E,GAWLICK D,et al.1996.The log
‑
structured merge
‑
tree(LSM
‑
tree).Acta Informatica[J],33:351
‑
385.)采用延迟更新(out of place update)机制进行数据的更新,这种方式可以充分利用磁盘顺序写大于随机写的优势,从而提供了低延迟的写性能。它采用Compaction机制实现对旧版本数据的垃圾回收以及对键值对的排序,支撑了以点查询和范围查询为主的大数据分析操作。当我们向以LSM
‑
Tree为主要数据结构的键值存储系统,如RocksDB,写入数据时,数据会先写入到内存的memtable中,当memtable大小达到阈值,会变为immutable,不再被修改。然后immutable memtable会写入到磁盘的L0层,产生SSTable文件。由于这些immutable memtable之间可能会有重复数据,所以L0层的SSTable文件也会存在重复数据,它们要通过compaction过程进行合并排序,去掉重复数据,并有序存放到下一层,即L1层。此后当磁盘上的每一 ...
【技术保护点】
【技术特征摘要】
1.一种全局优化的键值存储方法,其步骤包括:1)将键值对写入数据存储结构GHLSM的L0层,并向核心数据结构GHmap中插入一条新记录或更新原记录,其中,数据存储结构GHLSM设有N层,包括P个位于内存的记录层L
p
,Q
‑
P个位于磁盘的记录层L
q
及N
‑
Q个位于磁盘的非记录层L
t
,0≤p≤P
‑
1,P≤q≤N
‑
Q
‑
1,N
‑
Q≤t≤N
‑
1,Q为记录层L
p
与记录层L
q
的总数量,核心数据结构GHmap使用哈希表进行存储,哈希表的键对应键值对的键,value对应键值对在数据存储结构GHLSM所在的层;2)当L0层容量达到阈值时,将键值对的数据结构转变为不可写,且将L0层标记为L1层,并更新核心数据结构GHmap中的相关记录,生成新的数据结构构建记录层L0;3)当L
j
层容量达到阈值时,基于核心数据结构GHmap,判断L
j
层中的键值对是否为最新键值对,其中1≤j≤P
‑
1:若是,则写入L
j+1
层,并更新核心数据结构GHmap;若否,则抛弃;4)当L
i
层的容量超过相应阈值时,将L
i
层与L
i+1
层中的部分键值对作为待处理键值对,读入内存进行合并排序,然后结合核心数据结构GHmap,计算最新版本键值对,其中P≤i≤N
‑
2;5)将最新版本键值对写入L
i+1
层,并删除待处理键值对。2.如权利要求1所述的方法,其特征在于,数据存储结构GHLSM的数据结构包括:LSM
‑
Tree;记录层L
p
中的数据组织方法包括:使用跳表。3.如权利要求1所述的方法,其特征在于,核心数据结构GHmap通过以下策略定位键值对所在的层:1)利用GHmap的第一个哈希函数Hash1,计算key相应的子表编号2)利用GHmap的第二个哈希函数Hash2以及key所在的子表编号,计算key在GHmap中的记录。3)根据记录定位新键值对所在的层。4.如权利要求1所述的方法,其特征在于,通过以下策略计算最新版本键值对:1)当L
i
层与L
i+1
层都属于记录层L
q
时,请求核心数据结构GHmap获取合并排序后数据的键的最新版本所在层:若为合并排序后数据所在的层,则得到最新版本键值对;2)当L
i
层与L
i+1
层都属于非记录层L
t
时,请求核心数据结构GHmap获取合并排序后数据的键的相关记录:若不存在相关记录,则得到最新版本键值对。5.如权利要求1所述的方法,其特征在于,记录层L
q
与非记录层...
【专利技术属性】
技术研发人员:岳银亮,王伟平,李骄扬,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。