【技术实现步骤摘要】
基于日志合并树的数据存储方法、装置、设备及存储介质
[0001]本专利技术涉及区块链
,尤其涉及一种基于日志合并树的数据存储方法、装置、设备及存储介质。
技术介绍
[0002]近年来,键值型(key
‑
value,KV)数据库被广泛应用于区块链数据的存储,但是随着数据量和用户访问量的不断增长,KV数据库也面临着来自性能方面的考验。主流KV数据库是基于日志合并树(The Log
‑
Structured Merge
‑
Tree,LSM
‑
Tree)结构的数据库,日志合并树架构提出了延迟更新和批量写入的算法,将随机写转换为批量写,提升了数据库的写入性能,更好地满足了数据库高并发和高性能的服务需求。
[0003]但是为了使数据有序化以维持不错的读性能,日志合并树需要在后台不断地进行归并操作,而现有的数据归并方式存在较大缺陷,会产生诸如文件数据大小指数增长而占用大量存储空间、需要频繁地对数据文件进行重写等问题,严重影响了数据存储系统的性能。
【技术保护点】
【技术特征摘要】
1.一种基于日志合并树的数据存储方法,其特征在于,包括:采用固定大小的排序字符串表结构记录写入的键值对数据,记为SSTable文件,所述SSTable文件包括键值对数据和所述键值对数据对应的键范围;将多个所述SSTable文件按所述键范围的大小有序排列生成分片文件,并将所述分片文件保存至日志合并树的磁盘中;确定所述磁盘的数据层是否满足预设归并条件;若所述数据层满足所述预设归并条件,则将所述数据层中所有所述分片文件归并为新的所述分片文件;将新的所述分片文件存储至所述数据层的下一数据层,并删除所述数据层中所有所述分片文件。2.如权利要求1所述的基于日志合并树的数据存储方法,其特征在于,所述将所述数据层中所有所述分片文件归并为新的所述分片文件,包括:确定所述数据层中所有所述分片文件中的所述SSTable文件,记为待归并文件;确定所述数据层中各所述待归并文件的所述键范围是否存在重叠;若所述数据层中各所述待归并文件的所述键范围不存在重叠,则将所述数据层中所有所述待归并文件按照所述键范围顺序排列合并为新的所述分片文件。3.如权利要求2所述的基于日志合并树的数据存储方法,其特征在于,所述确定所述数据层中各所述待归并文件的所述键范围是否存在重叠之后,所述方法还包括:若所述数据层中各所述待归并文件的所述键范围存在重叠,则采用归并排序算法对各所述待归并文件进行归并排序,得到多个新的所述SSTable文件,各新的所述SSTable文件的所述键范围不重叠;将多个所述新的所述分片文件按照所述键范围的大小有序排列生成新的所述分片文件。4.如权利要求1所述的基于日志合并树的数据存储方法,其特征在于,所述确定所述磁盘的数据层是否满足预设归并条件,包括:确定所述数据层中所述分片文件的数量是否达到预设数量;若所述数据层中所述分片文件的数量达到所述预设数量,则确定所述数据层满足所述预设归并条件。5.如权利要求1
‑
4任一项所述的基于日志合并树的数据存储方法,其特征在于,在所述日志合并树的内存上设置索引结构,所述将多个所述SSTable文件按所述键范围的大小有序排列生成分片文件之后,所述方法还包括:根据所述数据层中的所有所述分片文件生成索引键范围;将所...
【专利技术属性】
技术研发人员:瞿晓阳,王健宗,
申请(专利权)人:平安科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。