[发明专利]一种哈希树缓存方法及装置在审
申请号: | 202011190181.0 | 申请日: | 2020-10-30 |
公开(公告)号: | CN112286873A | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 于超 | 申请(专利权)人: | 西安奥卡云数据科技有限公司 |
主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/172;G06F16/17;G06F16/182 |
代理公司: | 西安维赛恩专利代理事务所(普通合伙) 61257 | 代理人: | 李明全 |
地址: | 710000 陕西省西安市西咸新区秦*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 哈希树 缓存 方法 装置 | ||
1.一种哈希树缓存方法,其特征在于,包括以下步骤:
根据写入数据的逻辑位置确定其在哈希树中的位置信息,其中,所述位置信息包括叶子节点及偏移量;
将所述写入数据的哈希签名和所述位置信息存储在第一前置缓冲区;所述第一前置缓冲区为当前活动前置缓存区;
当所述第一前置缓冲区写满后,将其作为当前备用前置缓存区,并将其内部数据更新至哈希树;同时,将第二前置缓冲区作为当前活动前置缓存区;
当所述哈希树的空间大小达到阈值时,将所述哈希树持久化至磁盘。
2.如权利要求1所述的一种哈希树缓存方法,其特征在于,所述哈希树包括多个叶子节点、多个树节点及一个根节点;
其中,每个所述叶子节点中均存储有多个所述哈希签名;所述根节点和每个所述树节点中均存储有多个节点哈希签名;其中,所述节点哈希签名根据所述根节点/树节点的子节点数据生成。
3.如权利要求1所述的一种哈希树缓存方法,其特征在于,将所述哈希树持久化至磁盘包括以下步骤:
将哈希树中每个叶子节点的所有哈希签名均复制到所述磁盘中;
根据每个所述叶子节点的存储内容生成节点哈希签名,并更新至所述叶子节点对应的上一层的树节点中;
根据下一层的树节点的存储内容生成节点哈希签名,并更新至当前层的树节点中,直至当前层树节点为根节点;
根据所述根节点的存储内容生成根节点哈希签名,并存储至磁盘。
4.如权利要求3所述的一种哈希树缓存方法,其特征在于,将所述当前活动前置缓存区内部数据更新至哈希树、与将所述哈希树持久化至磁盘不同时进行。
5.如权利要求3或4所述的一种哈希树缓存方法,其特征在于,当根据每个所述叶子节点的存储内容生成节点哈希签名,并更新至所述叶子节点对应的上一层的树节点中时:
将所述叶子节点上一层对应的树节点的读写锁状态升级为写锁;
当根据下一层的树节点的存储内容生成节点哈希签名,并更新至当前层的树节点中时:
将当前层的树节点的读写锁状态升级为写锁。
6.如权利要求5所述的一种哈希树缓存方法,其特征在于,当读取数据时,依次从当前活动前置缓冲区、当前备用前置缓冲区和所述哈希树上进行检索。
7.如权利要求5所述的一种哈希树缓存方法,其特征在于,当从所述哈希树上进行检索时,自根节点向下遍历所述哈希树的每一层树节点,直至所述叶子节点,并将检索路径上的每一层的树节点及根节点的读写锁状态设置为读锁。
8.一种哈希树缓存装置,其特征在于,包括:
确定模块,用于根据写入数据的逻辑位置确定其在哈希树中的位置信息,其中,所述位置信息包括叶子节点及偏移量;
存储模块,用于将所述写入数据的哈希签名和所述位置信息存储在第一前置缓冲区;所述第一前置缓冲区为当前活动前置缓存区;
更新模块,用于当所述第一前置缓冲区写满后,将其作为当前备用前置缓存区,并将其内部数据更新至哈希树;同时,将第二前置缓冲区作为当前活动前置缓存区;
持久化模块,用于当所述哈希树的空间大小达到阈值时,将所述哈希树持久化至磁盘。
9.一种哈希树缓存装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种哈希树缓存方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的一种哈希树缓存方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安奥卡云数据科技有限公司,未经西安奥卡云数据科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011190181.0/1.html,转载请声明来源钻瓜专利网。