一种键值对处理方法和数据处理装置制造方法及图纸

技术编号:31887471 阅读:22 留言:0更新日期:2022-01-15 12:12
一种键值对处理方法包括:接收第一键值对;当第一键值对包括大键时,将大键进行分片处理;为每个分片生成一个全局标识;按照分片顺序根据每个分片和分片的全局标识生成基础键值对,每个基础键值对包括一个基础键和基础键对应的值,每个基础键值对的值包括的全局标识与后一个基础键值对的键包括的全局标识相同;将生成的所有基础键值对写入键值存储设备。这样可以将大键拆分存储,还可以根据全局标识查找到所有大键分片以恢复大键,由此实现大键的持久化。本申请还提供一种能够实现上述键值对处理方法的数据处理装置。键值对处理方法的数据处理装置。键值对处理方法的数据处理装置。

【技术实现步骤摘要】
一种键值对处理方法和数据处理装置


[0001]本申请涉及数据存储领域,尤其涉及一种键值对处理方法和数据处理装置。

技术介绍

[0002]键值(Key-Value,KV)存储数据库是一种非关系型数据存储数据库。在键值存储数据库中,数据以Key-Value对的形式存储,key作为value的索引,value即存储的数据。在键值存储数据库中,key的大小不能超过键值存储数据库设置的最大键长,这样的key也称为基础键。对于一些应用程序需要使用大键(大键的长度超过最大键长)的场景,不能将大键直接存储到键值存储数据库中,但是大键存储在内存中容易丢失,所以需要提供一定方法将大键持久化来保证数据安全可靠。
[0003]针对上述问题,目前有一种键值存储方法大致如下:将大键进行哈希映射为不超过最大键长的哈希值,将该哈希值保存在磁盘。在断电或其他原因导致存储在内存的大键丢失后,可以根据哈希值获取大键。
[0004]在实际的键索引中,多个键通常顺序排列。但是,将多个键中的大键进行哈希映射得到的哈希值后,哈希值会取代该大键的位置,由于哈希值与原大键是完全不同的值,这样哈希值会打乱与前后键之间的顺序关系,导致多个键是杂乱无序的,这样无法有序遍历多个键。

技术实现思路

[0005]有鉴于此,本申请提供一种键值对处理方法和数据处理装置,能够将大键进行持久化,也能够对所有键进行有序遍历。
[0006]第一方面提供一种键值对处理方法,在该方法中,接收第一键值对之后,当第一键值对包括大键时,将大键进行分片处理,再为每个分片生成一个全局标识;按照分片顺序根据每个分片和分片的全局标识生成基础键值对;将生成的所有基础键值对写入键值存储设备。其中,每个基础键值对包括一个基础键和基础键对应的值,每个基础键值对的值包括的全局标识与后一个基础键值对的键包括的全局标识相同。
[0007]当数据处理装置断电、程序崩溃或其他原因导致存储在内存的大键丢失时,以上方法能够保证大键存储在键值存储设备中,这样解决了大键存储在内存中容易丢失的问题。以及,在前一个基础键值对的值和后一个基础键值对的键中设置全局标识,这样可以根据全局标识查找下一个基础键值对,直至查找出所有基础键值对,即可获得大键的每个分片,使用大键的所有分片可以组成大键。在键值存储系统中,每个基础键值对作为森林的一个节点,全部基础键值对形成森林。通过遍历森林的方法就可以对数据处理装置接收的所有键进行有序遍历。
[0008]一种可能的实现方式中,按照分片顺序根据每个分片和分片的全局标识生成基础键值对包括:当分片是第一分片时,生成第一分片标识;根据第一分片标识和第一分片生成第一基础键值对的键;根据索引标识和第一分片的全局标识生成第一基础键值对的值;当
分片不是第一分片也不是最后分片时,生成分片的标识;根据分片、分片的标识和前一分片的全局标识生成基础键值对的键;根据索引标识和分片的全局标识生成基础键值对的值;当分片是最后分片时,生成最后分片标识;根据最后分片标识、倒数第二分片的全局标识和最后分片生成最后一个基础键值对的键;根据数据标识和第一键值对的值生成最后一个基础键值对的值。这样按照分片顺序可以生成所有分片对应的基础键值对。通过分片标识和全局标识可以区分不同基础键值对的键。
[0009]在另一种可能的实现方式中,在将生成的所有基础键值对写入键值存储设备之后,接收第一键值对的大键;将大键进行分片处理;按照分片顺序根据每个分片获取基础键值对;从最后一个基础键对的值中解析出第一键值对的值。由于在键值存储系统中后一个基础键值对是前一个基础键值对的子节点,因此按照节点顺序就可以确定每个分片,将所有分片组成大键,并且可以从最后一个基础键值对中读取大键对应的值。
[0010]在另一种可能的实现方式中,按照分片顺序根据每个分片获取基础键值对包括:当分片是第一分片时,根据第一分片标识和第一分片生成第一基础键;从键值存储设备中读取第一基础键对应的值;当分片不是第一分片时,从前一个基础键值对的值中解析出前一分片的全局标识;根据分片、分片标识和前一分片的全局标识生成分片对应的基础键,从键值存储设备中读取基础键对应的值。当第一键值对对应的所有基础键值对存储在键值存储设备后,这样可以从键值存储设备依次获取每个基础键值对。
[0011]在另一种可能的实现方式中,接收第二键值对之后,当第二键值对包括大键时,将第二键值对的大键进行分片处理;当第二键值对的前i个分片与第一键值对的前i个分片相同时,将第一键值对对应的前i个基础键值对作为第二键值对的前i个基础键值对;从第i+1个分片开始,为每个分片生成全局标识;依次根据每个分片和分片的全局标识生成基础键值对,将生成的所有基础键值对写入键值存储设备。i为正整数。将生成的所有基础键值对写入键值存储设备之后,根据第一键值对的大键生成的前i个基础键值对可以获取第二键值对的大键的前i个分片,根据第二键值对的大键生成的第(i+1)个基础键值对至最后一个基础键值对就可以获取第二键值对的大键的第(i+1)个分片至最后一个分片。对于包括大键的第二键值对,只需要将不同部分的基础键值对进行存储,因此可以节约存储空间。
[0012]第二方面提供一种数据处理装置,该数据处理装置包括输入模块、处理模块和通信接口;输入模块用于接收第一键值对;处理模块用于当第一键值对包括大键时,将大键进行分片处理;为每个分片生成一个全局标识;按照分片顺序根据每个分片和分片的全局标识生成基础键值对,每个基础键值对包括一个基础键和基础键对应的值,每个基础键值对的值包括的全局标识与后一个基础键值对的键包括的全局标识相同;将生成的所有基础键值对通过通信接口写入键值存储设备。
[0013]在一种可能的实现方式中,处理模块具体用于当分片是第一分片时,生成第一分片标识;根据第一分片标识和第一分片生成第一基础键值对的键;根据索引标识和第一分片的全局标识生成第一基础键值对的值;当分片不是第一分片也不是最后分片时,生成分片的标识;根据分片的标识、前一分片的全局标识和分片生成基础键值对的键;根据索引标识和分片的全局标识生成基础键值对的值;当分片是最后分片时,生成最后分片标识;根据最后分片、最后分片标识和倒数第二分片的全局标识生成最后一个基础键值对的键;根据数据标识和第一键值对的值生成最后一个基础键值对的值。
[0014]在另一种可能的实现方式中,在处理模块将生成的所有基础键值对写入键值存储设备之后,输入模块还用于接收第一键值对的大键;处理模块还用于将大键进行分片处理;按照分片顺序根据每个分片获取基础键值对;从最后一个基础键对的值中解析出第一键值对的值。
[0015]在另一种可能的实现方式中,处理模块具体用于当分片是第一分片时,根据第一分片标识和第一分片生成第一基础键;从键值存储设备中读取第一基础键对应的值;当分片不是第一分片时,从前一个基础键值对的值中解析出前一分片的全局标识;根据分片、分片标识和前一分片的全局标识生成分片对应的基础键,从键值存储设备中读取基础键对应的值;从最后一个基础键值对的值本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种键值对处理方法,其特征在于,包括:接收第一键值对;当所述第一键值对包括大键时,将所述大键进行分片处理;为每个分片生成全局标识;按照分片顺序根据每个分片和分片的全局标识生成基础键值对,每个基础键值对包括一个基础键和所述基础键对应的值,每个基础键值对的值包括的全局标识与后一个基础键值对的键包括的全局标识相同;将生成的所有基础键值对写入键值存储设备。2.根据权利要求1所述的方法,其特征在于,所述按照分片顺序根据每个分片和分片的全局标识生成基础键值对包括:当所述分片是第一分片时,生成第一分片标识;根据第一分片标识和第一分片生成第一基础键值对的键;根据索引标识和第一分片的全局标识生成第一基础键值对的值;当所述分片不是第一分片也不是最后分片时,生成所述分片的标识;根据所述分片的标识、前一分片的全局标识和所述分片生成基础键值对的键;根据索引标识和所述分片的全局标识生成基础键值对的值;当所述分片是最后分片时,生成最后分片标识;根据最后分片的标识、倒数第二分片的全局标识和最后分片生成最后一个基础键值对的键;根据数据标识和所述第一键值对的值生成最后一个基础键值对的值。3.根据权利要求1所述的方法,其特征在于,在所述将生成的所有基础键值对写入键值存储设备之后,所述方法还包括:接收所述第一键值对的大键;将所述大键进行分片处理;按照分片顺序根据每个分片获取基础键值对;从最后一个基础键值对的值中解析出所述第一键值对的值。4.根据权利要求3所述的方法,其特征在于,所述按照分片顺序根据每个分片获取基础键值对包括:当所述分片是第一分片时,根据第一分片标识和第一分片生成第一基础键;从键值存储设备中读取所述第一基础键对应的值;当所述分片不是第一分片时,从前一个基础键值对的值中解析出所述前一分片的全局标识;根据所述分片的标识、前一分片的全局标识和所述分片生成所述分片对应的基础键,从键值存储设备中读取所述基础键对应的值。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:接收第二键值对;当所述第二键值对包括大键时,将所述第二键值对的大键进行分片处理;当所述第二键值对的大键的前i个分片与所述第一键值对的大键的前i个分片相同时,从所述第二键值对的大键的第i+1个分片开始,为每个分片生成全局标识;依次根据每个分片和分片的全局标识生成基础键值对,所述i为正整数;将生成的所有基础键值对写入键值存储设备。6.一种数据处理装置,其特征在于,所述数据处理装置包括输入模块、处理模块和通信
接口;所述输入模块,用于接收第一键值对;所述处理模块...

【专利技术属性】
技术研发人员:方协云
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1