[发明专利]一种数据存储方法、装置、设备及存储介质有效
申请号: | 201811604187.0 | 申请日: | 2018-12-26 |
公开(公告)号: | CN109710190B | 公开(公告)日: | 2022-03-08 |
发明(设计)人: | 肖伟 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 装置 设备 介质 | ||
本发明实施例公开了一种数据存储方法、装置、设备及存储介质。其中,该方法包括:获取数据处理请求;根据所述数据处理请求确定当前版本标识;根据所述数据处理请求,确定用于处理数据的目标键值对,且对所述目标键值对值域中的数据进行处理;将新产生的目标键值对写入内存存储空间,其中,内存存储空间中的键值对的键域存储有键标识和版本标识,且新产生的目标键值对的键域中的版本标识为当前版本标识。采用本发明实施例的技术方案,为键值对的键域中增加了版本标识,从而能够记录各次键值对更新所对应的版本,可以根据版本标识选择所需数据,为区块链的数据存储提供了一种新思路。
技术领域
本发明实施例涉及计算机数据存储技术,尤其涉及一种数据存储方法、装置、设备及存储介质。
背景技术
目前的区块链系统所采用的底层数据存储技术有多种,其中比较广泛采用的一种就是键值对(Key Value,简称KV)存储系统。KV存储系统在区块链系统上层软件的控制下,支持区块链系统的数据读写等访问处理。
在KV存储系统中,会使用到很多KV分别存储区块链系统所需存储的各种数据,有些KV会随着区块的产生而需要修改。例如,在区块链网络中发起事务处理请求后,需要区块链网络中的节点执行事务处理请求中的智能合约,智能合约的执行需要基于一些已有数据,同时也需要修改一些已有数据。如对于转账功能的智能合约,需要读取转入账户和转出账户的KV,其中,KV的键域(key)可以存储账户名称,值域(value)可以存储账户余额的数值;在智能合约运行后,会根据转账数额来修改转入账户和转出账户的value值。实际上,区块产生过程会涉及大量KV的变化。
目前区块链节点会为KV存储系统建立索引,以方便访问数据,但是索引会由于KV的变化而发生大量变化,这通常由KV存储系统本身采用的索引方式所决定。由于区块链系统上层软件的数据处理需要,会产生新增KV、删除KV或修改KV的调整,则相应的需要调整KV的索引。
如果出现区块链的分叉而导致某些区块链节点本地存储的区块链数据要进行回滚和重做时,回滚操作要把底层KV存储系统中的存储数据逐步还原到分叉点,然后再在新的区块链里面执行重做命令,即重新执行所有事务的业务逻辑,产生的区块数据再插入到KV存储系统中,这势必导致巨大的资源开销。
存储空间可区分为磁盘存储和内存存储,众所周知,由于内存支持随机寻址,与各种需要随机寻址的数据结构的需求是匹配的,所以数据访问速度比磁盘存储更高,并且能够提供丰富的数据结构支持。
鉴于内存存储的上述好处,所以越来越多的区块数据,特别是需要高速访问的数据会存储到内存空间中。因此,内存存储与磁盘存储一样,存在因为区块链分叉而导致的区块回滚情况。在内存空间中重做区块数据,同样是耗时的,需要解决此问题。
发明内容
本发明实施例提供一种数据存储方法、装置、设备及存储介质,以优化KV存储系统的内存存储方式,以改善内存存储系统的性能。
第一方面,本发明实施例提供了一种数据存储方法,该方法包括:
获取数据处理请求;
根据所述数据处理请求确定当前版本标识;
根据所述数据处理请求,确定用于处理数据的目标键值对,且对所述目标键值对值域中的数据进行处理;
将新产生的目标键值对写入内存存储空间,其中,内存存储空间中的键值对的键域存储有键标识和版本标识,且新产生的目标键值对的键域中的版本标识为当前版本标识。
第二方面,本发明实施例还提供了一种数据存储装置,该方法包括:
处理请求获取模块,用于获取数据处理请求;
当前标识确定模块,用于根据所述数据处理请求确定当前版本标识;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811604187.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据存储管理方法及装置
- 下一篇:一种数据存储方法和装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置