【技术实现步骤摘要】
数据存储方法、数据回滚方法、计算机设备和存储介质
[0001]本申请涉及区块链
,具体涉及一种数据存储方法、数据回滚方法、计算机设备和存储介质。
技术介绍
[0002]申请人曾申请若干将KVMVCC技术应用于区块链的专利申请(具体可参考申请人的专利文本2018108842951、2018108840354等)。KVMVCC的提出是为了将数据读写分离从而提高并发性能。在现有的方案中,区块链节点会记录每个高度的key list,例如key为.mvcc.m.versionkl.00000000000001000000,value为该高度下更新过的所有key列表,比如[.mvcc.d.mavl
‑
coins
‑
bty
‑
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv,.mvcc.d.mavl
‑
coins
‑
bty
‑
16htvcBNSEA7fZhAdLJphDwQRQJaHpyHTp,.mvcc.
【技术保护点】
【技术特征摘要】
1.一种数据存储方法,其特征在于,适用于区块链节点,所述方法包括:在当前区块高度与区块安全深度的求余结果为0时,生成rollbcak
‑
n.wal文件;其中,n为当前区块高度与所述区块安全深度之商,所述rollbcak
‑
n.wal文件用于存储第三区块高度区间的各第一区块高度所生成的键的列表,所述第一区块高度所生成的键的列表存储形式为:所述第一区块高度:执行所述第一区块高度的第一区块的所有交易所生成的键,所述第三区块高度区间的第三起始高度为当前区块高度,所述第三区块高度区间的第三结束高度为所述第三起始高度加所述区块安全深度减一;其中,所述rollbcak
‑
n.wal文件用于供:响应于应当回滚至第二区块高度,读取所述第二区块高度所在的rollbcak
‑
n.wal文件及之后的rollbcak
‑
n.wal中的各键,并去重;对去重后的各第一键执行如下操作:将所述第一键与所述第二区块高度拼接以得到第二键;将所述第一键与最新区块高度拼接以得到第三键;通过二分查找定位到所述第二键与所述第三键,将所述第二键、所述第三键和所述第二键和所述第三键之间的数据删除以完成回滚。2.根据权利要求1所述的方法,其特征在于,所述生成rollbcak
‑
n.wal文件后,还包括:在n
‑
2不小于0时,删除rollbcak
‑
(n
‑
2).wal文件。3.根据权利要求1所述的方法,其特征在于,还包括:执行第一交易以更新第六键值对,将所述第六键值对中的第六键去除版本号以得到第七键,并缓存所述第七...
【专利技术属性】
技术研发人员:袁兴强,王志文,吴思进,
申请(专利权)人:杭州复杂美科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。