System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据存储方法及装置、存储介质、计算机设备制造方法及图纸_技高网

数据存储方法及装置、存储介质、计算机设备制造方法及图纸

技术编号:42640009 阅读:10 留言:0更新日期:2024-09-06 01:37
本申请公开了一种数据存储方法及装置、存储介质、计算机设备,该方法包括:获取待存储数据,将所述待存储数据按照LSM‑tree数据结构写入至内存中进行存储;当所述内存中LSM‑tree数据结构的待存储数据满足磁盘写入条件时,通过归并排序的方式将所述内存中存储的数据存储至磁盘中;利用LZ4压缩算法,对所述磁盘中的待存储数据进行数据压缩。本申请先基于LSM‑tree数据结构在内存中对数据进行高性能的排序,再将内存中排序后的数据写入磁盘中,使得数据以一定顺序写入到磁盘中,提升数据写入速度,最后对磁盘中排序后的数据进行LZ4压缩,不仅提升了压缩速度,而且具有极高的压缩比。

【技术实现步骤摘要】

本申请涉及数据处理,尤其是涉及到一种数据存储方法及装置、存储介质、计算机设备


技术介绍

1、随着计算机和网络技术的飞速发展,互联网每天产生的数据量正呈现爆发增长的态势,如何存储不断产生的海量数据,如何提高存储器利用效率,正成为存储系统设计者的一大难题。

2、自两位以色列研究者j.ziv和a.lempel在1977年提出了lz77压缩算法以来,各种基于字典匹配的lz压缩算法的变体相继被提出,其中包括lz78、lzw、lzo、lzss等。大部分基于lz77的变体被广泛用于文本和位图的无损压缩,其压缩编码的效率可以很大程度上逼近信源的信息熵值。然而大部分lz算法及其变体的压缩和解压缩的平均速度仅200~600mbps已经不能适应现代计算机设备中动辄1gbps以上的总线带宽。于是提出了一种压缩解压缩速度远高于目前无损压缩解压缩算法的lz变体算法——lz4。

3、lz4压缩算法的速度优势在于其建立字典的过程中,减少了计算散列值和更新散列表单元的次数,并且,在输出编码方面采用直接编码的方式,减小了算法输出过程中的延迟。但正是由于lz4压缩算法降低散列表更新次数以提高压缩速度的做法,导致lz4压缩算法的压缩率会比其他基于lz变体的压缩算法要差一些。

4、如何在不降低压缩速度的情况下提升数据压缩比,成为了业界关注的问题。


技术实现思路

1、有鉴于此,本申请提供了一种数据存储方法及装置、存储介质、计算机设备,有助于提升数据向磁盘的写入速度,以及提升数据压缩速度和压缩比。

2、根据本申请的一个方面,提供了一种数据存储方法,所述方法包括:

3、获取待存储数据,将所述待存储数据按照lsm-tree(log structured mergetree,日志结构的合并树)数据结构写入至内存中进行存储;

4、当所述内存中lsm-tree数据结构的待存储数据满足磁盘写入条件时,通过归并排序的方式将所述内存中存储的数据存储至磁盘中;

5、利用lz4压缩算法,对所述磁盘中的待存储数据进行数据压缩。

6、可选地,所述lsm-tree数据结构包括一层数据存储层和至少一层数据块存储层;所述将所述待存储数据按照lsm-tree数据结构写入至内存中进行存储,包括:

7、向所述内存写入所述待存储数据时,将所述待存储数据写入所述内存中lsm-tree数据结构的数据存储层中;

8、判断所述数据存储层是否满足数据合并条件;

9、若所述数据存储层中存储的数据满足所述数据合并条件,则对所述数据存储层中存储的数据进行合并,将合并结果存储于第一层数据块存储层,并删除所述数据存储层中存储的数据;

10、若所述数据存储层中存储的数据不满足所述数据合并条件,则继续将下一条待存储数据写入所述内存中lsm-tree数据结构的数据存储层中。

11、可选地,所述将合并结果存储于第一层数据块存储层之后,所述方法还包括:

12、判断所述第一层数据块存储层是否满足第一数据块合并条件;

13、若所述第一层数据块存储层满足第一数据块合并条件,则对所述第一层数据块存储层中存储的数据进行合并,将合并结果存储于第二层数据块存储层中,删除所述第一层数据块存储层中存储的数据,并继续判断所述第二层数据块存储层是否满足第二数据块合并条件,直到任一层数据块存储层不满足对应的数据块合并条件或者最后一层数据块存储层中存储的数据达到预设数据量为止;

14、若所述第一层数据块存储层不满足第一数据块合并条件,则继续将下一条待存储数据写入所述内存中lsm-tree数据结构的数据存储层中。

15、可选地,所述数据合并条件包括数据量阈值;所述数据块存储层包括多层,第n层数据块存储层对应的第n数据块合并条件为第n数据块阈值,所述磁盘写入条件为最后一层数据块存储层对应的数据块合并条件;

16、所述判断所述数据存储层是否满足数据合并条件,包括:

17、判断所述数据存储层中的数据是否达到所述数据量阈值;

18、所述当所述内存中lsm-tree数据结构的待存储数据满足磁盘写入条件时,通过归并排序的方式将所述内存中存储的数据存储至磁盘中,包括:

19、当所述内存中lsm-tree数据结构的最后一层数据块存储层中存储的数据达到最后一层数据块存储层对应的预设数据量时,通过归并排序的方式将所述内存中存储的数据存储至磁盘中。

20、可选地,所述利用lz4压缩算法,对所述磁盘中的待存储数据进行数据压缩,包括:

21、当所述磁盘中写入的数据达到预设数据量时,利用lz4压缩算法,对所述磁盘中写入的数据进行数据压缩。

22、可选地,所述获取待存储数据,包括:

23、获取计算引擎在计算过程中产生的临时表文件;

24、将所述临时表文件进行逐列解析,获得多条待存储数据;

25、相应地,所述将所述待存储数据按照lsm-tree数据结构写入至内存中进行存储,包括:

26、逐条将所述待存储数据按照lsm-tree数据结构写入至内存中进行存储。

27、根据本申请的另一方面,提供了一种数据存储装置,所述装置包括:

28、数据获取模块,用于获取待存储数据;

29、第一存储模块,用于将所述待存储数据按照lsm-tree数据结构写入至内存中进行存储;

30、第二存储模块,用于当所述内存中lsm-tree数据结构的待存储数据满足磁盘写入条件时,通过归并排序的方式将所述内存中存储的数据存储至磁盘中;

31、数据压缩模块,用于利用lz4压缩算法,对所述磁盘中的待存储数据进行数据压缩。

32、可选地,所述lsm-tree数据结构包括一层数据存储层和至少一层数据块存储层;所述第一存储模块,还用于:

33、向所述内存写入所述待存储数据时,将所述待存储数据写入所述内存中lsm-tree数据结构的数据存储层中;

34、判断所述数据存储层是否满足数据合并条件;

35、若所述数据存储层中存储的数据满足所述数据合并条件,则对所述数据存储层中存储的数据进行合并,将合并结果存储于第一层数据块存储层,并删除所述数据存储层中存储的数据;

36、若所述数据存储层中存储的数据不满足所述数据合并条件,则继续将下一条待存储数据写入所述内存中lsm-tree数据结构的数据存储层中。

37、可选地,所述第一存储模块,还用于:

38、所述将合并结果存储于第一层数据块存储层之后,判断所述第一层数据块存储层是否满足第一数据块合并条件;

39、若所述第一层数据块存储层满足第一数据块合并条件,则对所述第一层数据块存储层中存储的数据进行合并,将合并结果存储于第二层数据块存储层中,删除所述第一层数据块存储层中存储的数据,并继续判断所述第二层数据块本文档来自技高网...

【技术保护点】

1.一种数据存储方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述LSM-tree数据结构包括一层数据存储层和至少一层数据块存储层;所述将所述待存储数据按照LSM-tree数据结构写入至内存中进行存储,包括:

3.根据权利要求2所述的方法,其特征在于,所述将合并结果存储于第一层数据块存储层之后,所述方法还包括:

4.根据权利要求2所述的方法,其特征在于,所述数据合并条件包括数据量阈值;所述数据块存储层包括多层,第N层数据块存储层对应的第N数据块合并条件为第N数据块阈值,所述磁盘写入条件为最后一层数据块存储层对应的数据块合并条件;

5.根据权利要求1至4中任一项所述的方法,其特征在于,所述利用LZ4压缩算法,对所述磁盘中的待存储数据进行数据压缩,包括:

6.根据权利要求1至4中所述的方法,其特征在于,所述获取待存储数据,包括:

7.一种数据存储装置,其特征在于,所述装置包括:

8.根据权利要求7所述的装置,其特征在于,所述LSM-tree数据结构包括一层数据存储层和至少一层数据块存储层;所述第一存储模块,还用于:

9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。

10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法。

...

【技术特征摘要】

1.一种数据存储方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述lsm-tree数据结构包括一层数据存储层和至少一层数据块存储层;所述将所述待存储数据按照lsm-tree数据结构写入至内存中进行存储,包括:

3.根据权利要求2所述的方法,其特征在于,所述将合并结果存储于第一层数据块存储层之后,所述方法还包括:

4.根据权利要求2所述的方法,其特征在于,所述数据合并条件包括数据量阈值;所述数据块存储层包括多层,第n层数据块存储层对应的第n数据块合并条件为第n数据块阈值,所述磁盘写入条件为最后一层数据块存储层对应的数据块合并条件;

5.根据权利要求1至4中任一项所述的方法,其特征在于,所述利用l...

【专利技术属性】
技术研发人员:戴艳文
申请(专利权)人:平安付科技服务有限公司
类型:发明
国别省市:

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

1