数据存储方法及装置制造方法及图纸

技术编号:29788424 阅读:14 留言:0更新日期:2021-08-24 18:06
本说明书提供数据存储方法及装置,其中所述数据存储方法包括:将待存储目标对象的第i次取值存储于第j位置的第n个节点,并为所述第i次取值创建第e指针指向所述第n个节点,其中,i、j、n、e均为正整数;在所述目标对象的取值有更新的情况下,判断所述第n个节点是否为所述第j位置的最后一个节点,若是,则将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤,若否,则将i、n、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤。

【技术实现步骤摘要】
数据存储方法及装置
本说明书涉及计算机
,特别涉及数据存储方法及装置。
技术介绍
随着计算机技术的发展,计算机的计算运行速度不断提高,但存储系统的数据访问速度却提升缓慢,现代计算机系统的性能日益受到基于DRAM(英文全称:DynamicRandomAccessMemory,中文全称:动态随机存取存储器)的存储器系统的性能的限制,访存速度成为了制约计算机发展的重要瓶颈之一。因此,提出了许多新型的存储器件替代传统器件,其中NVM(英文全称:non-volatilememory,中文全称:非易失性存储器)存储器件是最被各界认可的一类存储器件。但是NVM存储介质存在一个共性问题:频繁更新同一数据块,会导致该数据块更新速度变慢,甚至寿命骤减,最终不可用,尤其在现有的KV(英文全称:Key-Value系统,中文全称:键值系统)存储系统中,热点的频繁更新会导致读写操作变慢,甚至影响NVM寿命。因此亟需一种数据存储方法以解决上述问题。
技术实现思路
有鉴于此,本说明书实施例提供了一种数据存储方法。本说明书同时涉及一种数据存储装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。根据本说明书实施例的第一方面,提供了一种数据存储方法,包括:将待存储目标对象的第i次取值存储于第j位置的第n个节点,并为所述第i次取值创建第e指针指向所述第n个节点,其中,i、j、n、e均为正整数;在所述目标对象的取值有更新的情况下,判断所述第n个节点是否为所述第j位置的最后一个节点,若是,则将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤,若否,则将i、n、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤。可选的,所述第j位置为目标数据块,所述目标数据块包括多个数据组,每个数据组包括n个节点,所述n个节点中的最后一个节点指向下一目标数据块的存储所述待存储目标对象的取值的节点;所述将待存储目标对象的第i次取值存储于第j位置的第n个节点包括:获取所述待存储目标对象的第i次取值对应的数据键值,并基于所述数据键值计算所述待存储目标对象的第i次取值的哈希值;基于所述哈希值确定所述待存储目标对象的第i次取值的存储标签,并基于所述存储标签将所述待存储目标对象的第i次取值存储于第j位置的第n个节点。可选的,所述指针包括存储标志位;相应的,所述为所述第i次取值创建第e指针指向所述第n个节点包括:基于所述第i次取值的数据创建第e存储标志位的指针;将所述第e存储标志位的指针指向所述第n个节点。可选的,所述将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤之后,还包括:在存储所述待存储目标对象的第i次取值之前的目标数据块大于等于第一预设数量阈值的情况下,开启压缩线程;对存储所述待存储目标对象的第i次取值之前的所有目标数据块进行压缩处理。可选的,所述在第n个节点不是所述第j位置的最后一个节点,且将i、n、e均自增1之后,还包括:在所述第n个节点的数量满足第二预设数量阈值,并且存储所述待存储目标对象的第i次取值之前的目标数据块大于等于第一预设数量阈值的情况下,开启压缩线程;对存储所述待存储目标对象的第i次取值之前的所有目标数据块进行压缩处理。可选的,所述对存储所述待存储目标对象的第i次取值之前的所有目标数据块进行压缩处理包括:基于存储所述待存储目标对象的第i次取值之前的所有目标数据块生成压缩目标数据块,且将存储所述待存储目标对象的第i次取值之前的所有目标数据块的最新取值存储至所述压缩目标数据块;删除存储所述待存储目标对象的第i次取值之前的所有目标数据块。可选的,所述指针包括偏移标志位;相应的,判断n是否为最后一个节点,若是,将i、j、e均自增1,则在j的数量大于等于第一预设数量阈值的情况下,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点,并基于所述第i次取值更新第e指针的偏移标志位;基于所述偏移标志位为所述第i次取值创建第e指针指向所述第n个节点。可选的,所述指针包括更新标志位;将存储所述待存储目标对象的第i次取值之前的所有目标数据块的最新取值存储至所述压缩目标数据块之后,还包括:在对所述目标数据块进行压缩处理后,且在生成所述压缩目标数据块的情况下,调整所述更新标志位。可选的,所述将所述待存储目标对象的第i次取值之前的所述目标数据块包括头指针;相应的,将存储所述待存储目标对象的第i次取值之前的所有目标数据块的最新取值存储至所述压缩目标数据块之后,包括:将所述头指针移动至所述压缩目标数据块;可选的,所述将待存储目标对象的第i次取值存储于第j位置的第n个节点之后,包括:根据所述第e指针指向的所述第j位置遍历读取所述第i次取值。根据本说明书实施例的第二方面,提供了一种数据存储装置,包括:存储模块,被配置为将待存储目标对象的第i次取值存储于第j位置的第n个节点,并为所述第i次取值创建第e指针指向所述第n个节点,其中,i、j、n、e均为正整数;判断模块,被配置为在所述目标对象的取值有更新的情况下,判断所述第n个节点是否为所述第j位置的最后一个节点,若是,则将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤,若否,则将i、n、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤。根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,其中,所述处理器执行所述计算机可执行指令时实现权利要求1-14任意一项所述数据存储方法的步骤。根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据存储方法的步骤。本说明书提供的数据存储方法,将待存储目标对象的第i次取值存储于第j位置的第n个节点,并为所述第i次取值创建第e指针指向所述第n个节点,其中,i、j、n、e均为正整数;在所述目标对象的取值有更新的情况下,判断所述第n个节点是否为所述第j位置的最后一个节点,若是,则将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤,若否,则将i、n、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤。本说明书一实施例实现了在KV存储系统中,为了避免获取的存储目标对象的取值更新于同一数据块,将更新后的存储目标对象的取值存储于自增后的数据块中,同时通过创建指针数据指向所述自增后的数据块,以避免数据存储频繁更新同一数据块,提高数据更新速度,延长本文档来自技高网...

【技术保护点】
1.一种数据存储方法,包括:/n将待存储目标对象的第i次取值存储于第j位置的第n个节点,并为所述第i次取值创建第e指针指向所述第n个节点,其中,i、j、n、e均为正整数;/n在所述目标对象的取值有更新的情况下,判断所述第n个节点是否为所述第j位置的最后一个节点,/n若是,则将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤,/n若否,则将i、n、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤。/n

【技术特征摘要】
1.一种数据存储方法,包括:
将待存储目标对象的第i次取值存储于第j位置的第n个节点,并为所述第i次取值创建第e指针指向所述第n个节点,其中,i、j、n、e均为正整数;
在所述目标对象的取值有更新的情况下,判断所述第n个节点是否为所述第j位置的最后一个节点,
若是,则将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤,
若否,则将i、n、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤。


2.根据权利要求1所述的数据存储方法,所述第j位置为目标数据块,所述目标数据块包括多个数据组,每个数据组包括n个节点,所述n个节点中的最后一个节点指向下一目标数据块的存储所述待存储目标对象的取值的节点;
所述将待存储目标对象的第i次取值存储于第j位置的第n个节点包括:
获取所述待存储目标对象的第i次取值对应的数据键值,并基于所述数据键值计算所述待存储目标对象的第i次取值的哈希值;
基于所述哈希值确定所述待存储目标对象的第i次取值的存储标签,并基于所述存储标签将所述待存储目标对象的第i次取值存储于第j位置的第n个节点。


3.根据权利要求1所述的数据存储方法,所述指针包括存储标志位;
相应的,所述为所述第i次取值创建第e指针指向所述第n个节点包括:
基于所述第i次取值的数据创建第e存储标志位的指针;
将所述第e存储标志位的指针指向所述第n个节点。


4.根据权利要求2所述的数据存储方法,所述将i、j、e均自增1,继续执行将待存储目标对象的第i次取值存储于第j位置的第n个节点的步骤之后,还包括:
在存储所述待存储目标对象的第i次取值之前的目标数据块大于等于第一预设数量阈值的情况下,开启压缩线程;
对存储所述待存储目标对象的第i次取值之前的所有目标数据块进行压缩处理。


5.根据权利要求1所述的数据存储方法,所述在第n个节点不是所述第j位置的最后一个节点,且将i、n、e均自增1之后,还包括:
在所述第n个节点的数量满足第二预设数量阈值,并且存储所述待存储目标对象的第i次取值之前的目标数据块大于等于第一预设数量阈值的情况下,开启压缩线程;
对存储所述待存储目标对象的第i次取值之前的所有目标数据块进行压缩处理。


6.根据权利要求4或5所述的数据存储方法,所述对存储所述待存储目标对象的第i次取值之前的所有目标数据块进行压缩处理包括:
基于存储所述待存储目标对象的第i次取值之前的所有目标数据块生成压缩目标数据块,且...

【专利技术属性】
技术研发人员:陈吉强姜志峰朱国云陈梁
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1