键值对存储系统的数据存储方法、装置、设备和存储介质制造方法及图纸

技术编号:20992556 阅读:27 留言:0更新日期:2019-04-29 22:32
本发明专利技术实施例公开了一种键值对存储系统的数据存储方法、装置、设备和存储介质。该方法包括:识别键值对值域中的数据量;如果所述数据量大于设定上限值,则将所述值域中的数据存储至设定存储文件中;将所述数据的存储地址添加至所述键值对值域中。本发明专利技术实施例通过对键值对值域存储数据量的监控,解决了值域中存储数据量较大的问题,以实现优化键值对存储系统中的存储方案,进一步提高了键值对中数据重整时的数据调整效率。

Data storage method, device, device and storage medium of key-value pair storage system

The embodiment of the invention discloses a data storage method, device, device and storage medium of a key pair storage system. The method includes: identifying the amount of data in the key value pair range; storing the data in the range to the set storage file if the amount of data is larger than the set upper limit value; and adding the storage address of the data to the key value pair range. The embodiment of the invention solves the problem of large amount of stored data in the range by monitoring the amount of stored data in the range by key value pair, so as to optimize the storage scheme in the storage system and further improve the data adjustment efficiency in the data reorganization of the key value pair.

【技术实现步骤摘要】
键值对存储系统的数据存储方法、装置、设备和存储介质
本专利技术实施例涉及计算机数据存储
,尤其涉及一种键值对存储系统的数据存储方法、装置、设备和存储介质。
技术介绍
目前的区块链系统所采用的底层数据存储技术有多种,其中比较广泛采用的一种就是键值对(KeyValue,简称KV)存储系统。KV存储系统在区块链系统上层软件的控制下,支持区块链系统的数据读写等访问处理。现有区块链的KV存储系统中,会出现由于区块链数据的变化或其他存储性能方面的原因,而将各个KV进行合并重整的情况,尤其是Leveldb中,存在这种合并重整的需求。由于KV存储系统需要经常进行KV调整,且KV中数据可存储量的上限较大。所以,如果KV的值域(value)存储过大数据量,将会增加调整过程的性能损耗,使调整过程需要迁移大量数据,效率较低。
技术实现思路
本专利技术实施例提供了一种键值对存储系统的数据存储方法、装置、设备和存储介质,以实现优化KV存储系统中的存储方案,提高调整效率。第一方面,本专利技术实施例提供了一种键值对存储系统的数据存储方法,应用于区块链节点,所述方法包括:识别键值对值域中的数据量;如果所述数据量大于设定上限值,则将所述值域中的数据存储至设定存储文件中;将所述数据的存储地址添加至所述键值对值域中。第二方面,本专利技术实施例提供了一种键值对存储系统的数据存储装置,配置于区块链节点,所述装置包括:值域数据量识别模块,用于识别键值对值域中的数据量;数据存储调整模块,用于如果所述数据量大于设定上限值,则将所述值域中的数据存储至设定存储文件中;存储地址添加模块,用于将所述数据的存储地址添加至所述键值对值域中。第三方面,本专利技术实施例提供了一种设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所述的键值对存储系统的数据存储方法。第四方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术任意实施例所述的键值对存储系统的数据存储方法。本专利技术实施例通过对键值对值域中存储的数据进行数据量识别,从而在数据量大于设定上限值时,将值域中的数据存储至设定存储文件中,而在键值对值域中重新添加该转移数据的存储地址。本专利技术实施例通过对键值对值域存储数据量的监控,解决了值域中存储数据量较大的问题,以实现优化键值对存储系统中的存储方案,进一步提高了键值对中数据重整时的数据调整效率。附图说明图1为本专利技术实施例一提供的一种键值对存储系统的数据存储方法的流程图;图2为本专利技术实施例二提供的一种键值对存储系统的数据存储方法的流程图;图3为本专利技术实施例三提供的一种键值对存储系统的数据存储装置的结构示意图;图4为本专利技术实施例四提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术实施例,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术实施例相关的部分而非全部结构。本专利技术实施例可适用于区块链系统,基于KV存储系统进行数据存储的情况。由于区块链的数据处理特性,使得KV存储系统经常需要进行数据重整。例如,区块中顺序出现的事务(TX)数据,由于其中智能合约的执行所产生的结果变化,导致新增了事务数据,需要插入已有事务数据之间的某个位置。在KV存储系统中,可能并不是将已有的KV之间插入一个新的KV,而是将其他存储空间中的新增KV的指针,添加到已有KV之间的相应位置。那么在访问事务数据时,除了遍历该区块已有事务数据之外,还需要遍历补入指针的数据,这样导致数据访问速度性能较差。因此,需要定期重整,调整区块链数据在KV存储系统中的各个KV。当然,还有很多其他原因也会导致KV存储系统中的KV调整。下述实施例提供了优化KV存储系统重整性能的技术方案。实施例一图1为本专利技术实施例一提供的一种键值对存储系统的数据存储方法的流程图,本实施例可适用于对存储区块链数据的键值对进行重整的情况,该方法可由一种键值对存储系统的数据存储装置来执行,该装置可以集成于作为区块链节点的计算机设备中,以软件和/或硬件的方式来实现。该方法具体包括:S110、识别键值对值域中的数据量。在本专利技术具体实施例中,存储数据以键值对形式进行存储。其中,键值对包括键域(Key)和值域(Value),键域用于存储键标识,值域用于存储与键域中键标识相关联的数据内容。存储数据可以为区块中记录的区块数据,也可以为区块链生成的至少一条事务数据,还可以为事务数据或任何数据中的某个字段。因此,本实施例不对键值对中存储的数据内容进行限定,任何可以进行存储的数据都可以存储在本KV存储系统的键值对中,具体存储的数据内容由区块链节点的上层软件来确定。相应的,存储数据的数据内容本身均存储在键值对的值域中。本实施例中,为了避免键值对重整时值域中数据的大量迁移,需要对键值对值域中存储数据的数据量进行识别。相应的,本实施例不对触发数据量的识别时机进行限定,任何时刻键值对存储系统都可以进行值域数据量的检测,以确保值域中数据量不会过大,避免导致数据重整时数据搬移效率低。例如可以依据区块链系统上层软件的控制指令来触发数据量的识别,可以在区块链产生事务数据时触发数据量的识别,可以在键值对重整前触发数据量的识别,也可以预先设置定期触发数据量的识别,还可以在数据写入或读取等数据操作时触发数据量的识别。示例性的,在接收到上层软件发送的数据存储请求时,识别数据存储请求向键值对值域中进行存储的待存储数据量。其中,数据存储请求可以是区块链系统上层软件发送的事务数据存储请求。S120、如果数据量大于设定上限值,则将值域中的数据存储至设定存储文件中。在本专利技术具体实施例中,设定上限值可以是区块链系统上层软件预先配置的存储上限阈值,其可以是键值对的值域本身的存储上限值,也可以是在该存储上限值范围内预先设置的任何存储上限阈值,且存储上限阈值的设定需要确保键值对值域中的数据量不会过大。本实施例中,设定存储文件是独立于原始键值对本身的存储文件,可以是键值对存储系统中重新构建的键值对,也可以是任何独立于键值对存储系统的其他存储系统所支持的独立文件。本实施例中,鉴于设定存储文件中是已经整理好的数据内容,因此为了防止键值对存储系统本身进行数据重整时,对设定存储文件中的数据再次进行无效的重复调整,可以通过区块链上层软件来配置键值对的重整范围。还可以优选为选择设定存储文件为独立于键值对存储系统的文件,进而当键值对存储系统进行数据重整时,键值对存储系统不会对其他存储系统的文件进行重整。且即使设定存储文件的数据量较大,也不会影响键值对存储系统的数据重整效率。相应的,通过对键值对值域中数据量的识别,将识别出的数据量与设定上限值进行比较,若数据量大于设定上限值,则将值域中的数据全部搬移并存储至设定存储文件中。此外,在不同的触发时机下,对于键值对存储系统中已经存储的数据内容,可以进行上述的数据搬移操作;但是对于键值对存储系统中还未存储的数据,即需要向键值对写入待存储数据,则通过待存储数据量的判断,可以将待存储数据直接存储至设定文件中,从而避免键值对存储系本文档来自技高网...

【技术保护点】
1.一种键值对存储系统的数据存储方法,其特征在于,应用于区块链节点,所述方法包括:识别键值对值域中的数据量;如果所述数据量大于设定上限值,则将所述值域中的数据存储至设定存储文件中;将所述数据的存储地址添加至所述键值对值域中。

【技术特征摘要】
1.一种键值对存储系统的数据存储方法,其特征在于,应用于区块链节点,所述方法包括:识别键值对值域中的数据量;如果所述数据量大于设定上限值,则将所述值域中的数据存储至设定存储文件中;将所述数据的存储地址添加至所述键值对值域中。2.根据权利要求1所述的方法,其特征在于,所述将所述数据的存储地址添加至所述键值对值域中,包括:将所述数据在所述设定存储文件中的存储位置,作为偏移存储地址,添加至所述键值对值域中。3.根据权利要求1所述的方法,其特征在于,所述设定存储文件为独立于所述键值对存储系统的文件。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述识别键值对值域中的数据量,包括:在接收到上层软件发送的数据存储请求时,识别所述数据存储请求向所述键值对值域中进行存储的待存储数据量;相应的,所述将所述值域中的数据存储至设定存储文件中包括:将所述数据存储请求中的待存储数据,直接存储至设定存储文件中。5.根据权利要求4所述的方法,其特征在于,所述接收到上层软件发送的数据存储请求,包括:接收到区块链系统上层软件发送的事务数据存储请求。6.根据权利要求1所述的方法,其特征在于,在所述将所述数据的存储地址添...

【专利技术属性】
技术研发人员:肖伟
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1