CN108021702A - 基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质 - Google Patents

基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质 Download PDF

Info

Publication number
CN108021702A
CN108021702A CN201711437794.8A CN201711437794A CN108021702A CN 108021702 A CN108021702 A CN 108021702A CN 201711437794 A CN201711437794 A CN 201711437794A CN 108021702 A CN108021702 A CN 108021702A
Authority
CN
China
Prior art keywords
file
accumulation
basic
union operation
threshold value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711437794.8A
Other languages
English (en)
Inventor
李超勇
牟宇航
马如悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201711437794.8A priority Critical patent/CN108021702A/zh
Publication of CN108021702A publication Critical patent/CN108021702A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种基于LSM‑tree的分级存储方法,其特征在于,采用基于LSM‑tree的树形结构组织数据库的文件存储,将导入数据库的文件进行合并操作;所述合并操作包括累积合并操作和基本合并操作;所述累积合并操作包括:将第一类型文件进行合并操作,所述第一类型文件包括已导入数据库、未进行合并操作,且满足累积合并条件的文件;所述基本合并操作包括:将第二类型文件和所述累积合并操作生成的文件进行合并操作,所述第二类型文件包括已导入数据库、未进行合并操作,且不满足累积合并条件的文件。本发明提供的实施例提高了数据合并的效率,保证了存储引擎在大规模并发读写情况下的性能要求。

Description

基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质
技术领域
本发明涉及信息技术领域,尤其涉及一种基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质。
背景技术
现有技术的OLAP(Online Analytical Processing,联机分析处理)数据库存储组织目前主要基于hdfs(Hadoop Distributed File System,Hadoop分布式文件***)的块存储,数据库只负责文件格式,例如Hive的Orcfile,Spark的Parquet等。以Hive为例,Hive是建立在Hadoop上的数据仓库基础构架;Hive没有专门的数据存储格式,也没有为数据建立索引;Hive中所有的数据都存储在hdfs中,Hive中包含以下数据模型:表(Table),外部表(External Table),分区(Partition),桶(Bucket);Hive中的Table和数据库中的Table在概念上是类似的,每一个Table在Hive中都有一个相应的目录存储数据。现有OLAP数据库缺乏一个高效的存储组织,基于hdfs导致数据的读取、写入性能受限。
LSM-Tree(Log-Structured Merge-Tree,日志结构合并树)主要用在KV(Key-Value,键值)***中,用在OLAP中主要是KV模拟OLAP操作,通过大量KV操作完成数据的扫描,聚合。KV数据库是使用键值存储数据库,这是一种NoSQL(非关系型数据库)模型,其数据按照键值对的形式进行组织、索引和存储。现有基于LSM-Tree的实现多是基于KV存储,不提供关系模型的存储组织;且KV的LSM-Tree实现compaction(合并)往往只分为一层,对于OLAP数据库而言,compaction造成的IO高峰叠起。
发明内容
本发明实施例提供一种基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质,以至少解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种基于LSM-tree的分级存储方法,所述方法采用基于LSM-tree的树形结构组织数据库的文件存储,将导入数据库的文件进行合并操作;所述合并操作包括累积合并操作和基本合并操作;所述累积合并操作包括:将第一类型文件进行合并操作,所述第一类型文件包括已导入数据库、未进行合并操作,且满足累积合并条件的文件;所述基本合并操作包括:将第二类型文件和所述累积合并操作生成的文件进行合并操作,所述第二类型文件包括已导入数据库、未进行合并操作,且不满足累积合并条件的文件。
结合第一方面,本发明在第一方面的第一种实施方式中,所述累积合并条件包括文件的大小小于等于预设的文件大小阈值。
结合第一方面,本发明在第一方面的第二种实施方式中,还包括:在已导入数据库、未进行合并操作的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作;或者,在所述第一类型文件的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作。
结合第一方面,本发明在第一方面的第三种实施方式中,还包括:在所述累积合并操作生成的文件数大于等于预设的第二文件数阈值的情况下,进行所述基本合并操作。
结合第一方面,本发明在第一方面的第四种实施方式中,在累积版本文件的总的字节数与基本版文件的总的字节数之比大于等于预设的比例阈值的情况下,进行所述基本合并操作;所述累积版本文件包括现有数据库中所有的所述累积合并操作生成的文件,所述基本版本文件包括现有数据库中所有的所述基本合并操作生成的文件。
结合第一方面,本发明在第一方面的第五种实施方式中,还包括:每隔预设的时间阈值时间,进行一次所述基本合并操作。
结合第一方面,本发明在第一方面的第六种实施方式中,还包括:在预设的时间点定时触发所述基本合并操作。
结合第一方面、第一方面的第一种实施方式、第一方面的第二种实施方式、第一方面的第三种实施方式、第一方面的第四种实施方式、第一方面的第五种实施方式或第一方面的第六种实施方式,还包括:所述文件大小阈值的取值范围为3-5G;和/或,所述第一文件数阈值的取值范围为5-8;和/或,所述第二文件数阈值的取值范围为5-8;和/或,所述比例阈值的取值范围为30%-50%;和/或,所述时间阈值的取值范围为7天-10天。
第二方面,本发明实施例提供了一种基于LSM-tree的分级存储装置,所述装置用于:采用基于LSM-tree的树形结构组织数据库的文件存储,将导入数据库的文件进行合并操作;所述合并操作包括累积合并操作和基本合并操作;所述装置包括累积合并单元和基本合并单元;所述累积合并单元用于:将第一类型文件进行合并操作,所述第一类型文件包括已导入数据库、未进行合并操作,且满足累积合并条件的文件;所述基本合并单元用于:将第二类型文件和所述累积合并操作生成的文件进行合并操作,所述第二类型文件包括已导入数据库、未进行合并操作,且不满足累积合并条件的文件。
结合第二方面,本发明在第二方面的第一种实施方式中,所述累积合并条件包括文件的大小小于等于预设的文件大小阈值。
结合第二方面,本发明在第二方面的第二种实施方式中,所述累积合并单元还用于:在已导入数据库、未进行合并操作的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作;或者,在所述第一类型文件的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作。
结合第二方面,本发明在第二方面的第三种实施方式中,所述基本合并单元还用于:在所述累积合并操作生成的文件数大于等于预设的第二文件数阈值的情况下,进行所述基本合并操作。
结合第二方面,本发明在第二方面的第四种实施方式中,所述基本合并单元还用于:在累积版本文件的总的字节数与基本版文件的总的字节数之比大于等于预设的比例阈值的情况下,进行所述基本合并操作;所述累积版本文件包括现有数据库中所有的所述累积合并操作生成的文件,所述基本版本文件包括现有数据库中所有的所述基本合并操作生成的文件。
结合第二方面,本发明在第二方面的第五种实施方式中,所述基本合并单元还用于:每隔预设的时间阈值时间,进行一次所述基本合并操作。
结合第二方面,本发明在第二方面的第六种实施方式中,所述基本合并单元还用于:在预设的时间点定时触发所述基本合并操作。
结合第二方面、第二方面的第一种实施方式、第二方面的第二种实施方式、第二方面的第三种实施方式、第二方面的第四种实施方式、第二方面的第五种实施方式或第二方面的第六种实施方式,还包括:所述文件大小阈值的取值范围为3-5G;和/或,所述第一文件数阈值的取值范围为5-8;和/或,所述第二文件数阈值的取值范围为5-8;和/或,所述比例阈值的取值范围为30%-50%;和/或,所述时间阈值的取值范围为7天-10天。
在一个可能的设计中,基于LSM-tree的分级存储装置的结构中包括处理器和存储器,所述存储器用于存储支持基于LSM-tree的分级存储装置执行上述第一方面中基于LSM-tree的分级存储方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
第三方面,本发明实施例提供了一种OLAP数据库***,所述OLAP数据库***包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述第一方面中任一所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一所述的方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:通过采用基于LSM-tree的分级存储策略,将数据从随机写转成顺序写;同时每批次的写入产生一个新版本(version),写入过程中不影响现有数据的读取,做到读写分离,实现了并发控制。另外,通过采用基于LSM-tree的分级存储策略,在查询效率、合并频率,磁盘IO之间取得一个最佳的折中,提高了OLAP数据库存储引擎的读取和写入效率。采用本发明实施例构建的compaction(合并)策略,提高了数据compaction的效率,保证了存储引擎在大规模并发读写情况下的性能要求。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明实施例的基于LSM-tree的分级存储方法的整体框架图;
图2为本发明提供的基于LSM-tree的分级存储方法的一种优选实施例的两级数据组织策略示意图;
图3为本发明实施例的基于LSM-tree的分级存储装置的整体框架图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本发明实施例提供了一种基于LSM-tree的分级存储方法。图1为本发明实施例的基于LSM-tree的分级存储方法的整体框架图。本发明实施例的基于LSM-tree的分级存储方法采用基于LSM-tree的树形结构组织数据库的文件存储,将导入数据库的文件进行合并操作;所述合并操作包括累积合并操作和基本合并操作;如图1所示,步骤S110,所述累积合并操作包括:将第一类型文件进行合并操作,所述第一类型文件包括已导入数据库、未进行合并操作,且满足累积合并条件的文件;步骤S120,所述基本合并操作包括:将第二类型文件和所述累积合并操作生成的文件进行合并操作,所述第二类型文件包括已导入数据库、未进行合并操作,且不满足累积合并条件的文件。
具体来说,LSM-Tree的树结构是对索引变更进行延迟及批量处理,并通过某种算法,比如可以通过一种类似于归并排序的方式,高效地进行合并操作从而产生新的版本文件。compaction(合并)操作的目的是整理内部的数据,将随机写入的乱序数据整理成有序的数据。在LSM-Tree引擎中,compaction可采用多路归并的方式,顺序读取多个数据文件,并归并排序。LSM-Tree结构通常就是包含了一系列延迟放置机制,其实质上是结构化合并树的概念,它的核心思路就是不需要每次有数据更新就必须将数据进行合并,而是等到积累到一定数量之后,再使用归并排序的方式将数据合并追加到树形结构中。
本发明实施例采用LSM-tree的数据结构构建数据库的存储组织,采用LSM-tree通过分级存储的方法推迟和批量进行索引更新。磁盘数据compaction(合并)分为cumulativecompaction(累积合并)和base compaction(基本合并);在一种实施方式中,存储分为两级策略,cumulative compaction负责合并新导入的版本文件,base compaction负责合并cumulative生成的文件。
本发明实施例实现一个LSM-Tree进行数据的读写,将数据从随机写转成顺序写,因为合并时以索引单向遍历的方式进行,合并后的索引也是以顺序的方式添加到树形结构中,使树形结构的叶子节点的内部数据有序组织,从而有利于增加检索查询的效率。LSM-Tree的方案是当最近的更新操作积累到一定程度后,再进行批量的合并操作,从而把随机写变成批量顺序更新。同时每批次的写入产生一个新版本(version),写入过程中不影响现有数据的读取,做到读写分离。读操作与写操作是独立的,因此这两种操作之间不会产生竞争。具体地,在每批次写入数据时都产生一个新版本,而在读数据的时候会首先获取当前版本,根据当前版本去读取数据,因而实现了读写分离,LSM-Tree通过这种多版本的机制实现了并发控制。
现有技术的数据库缺乏一个高效的存储组织,以OLAP数据库为例,基于hdfs导致数据的读取,写入性能受限。如上述,采用本发明实施例构建的compaction(合并)策略,分级存储策略提高了数据compaction的效率,从随机写转成顺序写以及读写分离,保证了存储引擎在大规模并发读写情况下的性能要求。
在大部分情况下,compaction过程会与写入线程争抢磁盘的IO资源,如果两个事情同时进行,甚至还会额外的增加随机IO次数;再者,要提高查询效率,就需要增加进行合并操作的频率,这样会导致磁盘IO更加频繁,而磁盘IO频繁又会使查询效率受到影响。因此,如何能够平衡和高效地完成磁盘compaction的过程,是一个存储引擎实现好坏的关键。现有技术中LSM-Tree实现compaction往往只分为一层,这种情况下每次查询时都要读基本版本文件;因为compaction只有一层,所以这个基本版本文件很大,若每次操作都和基本版本文件合并的话需要消耗很多的IO,若不和基本版本文件合并的话又无法保证查询效率,因此对于OLAP数据库而言,compaction(合并)造成的IO高峰叠起。本发明实施例采用累积合并和基本合并的分级策略,因此累积合并生成的累积版本文件比基本版本文件小得多,从而在操作时很大程度上减少了IO的消耗,同时累积版本文件也是通过合并后进行有序组织的,又能够保证查询效率。因此本发明实施例通过以上分级存储策略,在查询效率,合并频率,磁盘IO之间取得一个最佳的折中。
根据本发明基于LSM-tree的分级存储方法的一种实施方式,所述累积合并条件包括文件的大小小于等于预设的文件大小阈值。所述文件大小阈值可根据数据量的大小而确定,例如:文件大小阈值的取值范围可设定为3-5G。
优选地,文件大小阈值设定为4G。在这种实施方式中,只有小于等于4G的文件才进行累积合并,大于4G的文件不进行累积合并,直接保留基本合并。如前述,累积版本文件的大小控制在一定范围内,可减少了IO的消耗并能够保证查询效率。
根据本发明基于LSM-tree的分级存储方法的一种实施方式,还包括:在已导入数据库、未进行合并操作的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作;或者,在所述第一类型文件的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作。所述第一文件数阈值的取值范围为5-8。新导入的文件数达到一定数量时进行累积合并操作,在一种实施方式中,统计已导入数据库、未进行合并操作的文件数,达到第一文件数阈值时做累积合并;在另一种实施方式中,统计第一类型文件的文件数,也就是只统计新导入的文件中的小文件(大小小于等于预设的文件大小阈值),小文件数达到第一文件数阈值时做累积合并。
图2为本发明提供的基于LSM-tree的分级存储方法的一种优选实施例的两级数据组织策略示意图。图2中的Base File是基本版本文件,也就是现有数据库中所有的基本合并操作生成的文件,如图示为编号从0-80的文件;Cumulative Deltas是累积的增量,如图示为编号从81-87的文件;Deltas是增量,也就是新导入的文件(已导入数据库、未进行合并操作的文件),如图示为数据编号从81-87的文件。图2中示例的存储策略如下:先后新导入7个文件(编号为81-87),则Cumulative Deltas逐渐增加,从81-84、到81-86、最后累积到81-87。若第一文件数阈值设置为5,则编号为84的文件导入后,Deltas的文件数达到了5个(81-84),这时进行累积合并操作,将5个文件81-84合并成一个大文件,即累积版本文件。
根据本发明基于LSM-tree的分级存储方法的一种实施方式,还包括:在所述累积合并操作生成的文件数大于等于预设的第二文件数阈值的情况下,进行所述基本合并操作。所述第二文件数阈值的取值范围为5-8。若第二文件数阈值设置为5,当累积合并操作生成的文件数达到5个的时候,进行基本合并的操作。可设置合并进程,当文件数目足够多的时候,合并进程会将文件合并成规模更少但是更大的文件。分级存储的策略就是将小文件合成中等规模的文件,再将中等规模的文件合成大文件。
根据本发明基于LSM-tree的分级存储方法的一种实施方式,在累积版本文件的总的字节数与基本版文件的总的字节数之比大于等于预设的比例阈值的情况下,进行所述基本合并操作;所述累积版本文件包括现有数据库中所有的所述累积合并操作生成的文件,所述基本版本文件包括现有数据库中所有的所述基本合并操作生成的文件。优选地,所述比例阈值的取值范围为30%-50%。累积版本文件达到一定量的时候进行基本合并操作,即增加数据的有序性,又不能让合并操作太频繁,有助于提高***读写性能,在查询效率,合并频率,磁盘IO之间取得一个最佳的折中。
根据本发明基于LSM-tree的分级存储方法的一种实施方式,还包括:每隔预设的时间阈值时间,进行一次所述基本合并操作。也就是在上次进行基本合并操作之后的预设时间阈值时间之后,进行本次基本合并操作。所述时间阈值的取值范围可根据数据量的大小而确定,比如所述时间阈值的取值范围设定为7天-10天。优选地,可设定时间阈值为7天,在上次进行基本合并操作7天之后,进行本次基本合并操作。
根据本发明基于LSM-tree的分级存储方法的一种实施方式,还包括:在预设的时间点定时触发所述基本合并操作。优选地,预设的触发时间点可以设置在晚上的时段,晚上的时段通常情况下读写操作比较少,***资源充足,这个时间段比较适合做基本合并操作。
另一方面,本发明实施例提供了一种基于LSM-tree的分级存储装置,图3为本发明实施例的基于LSM-tree的分级存储装置的整体框架图。所述装置用于:采用基于LSM-tree的树形结构组织数据库的文件存储,将导入数据库的文件进行合并操作;所述合并操作包括累积合并操作和基本合并操作;如图3所示,所述装置包括累积合并单元100和基本合并单元200;所述累积合并单元100用于:将第一类型文件进行合并操作,所述第一类型文件包括已导入数据库、未进行合并操作,且满足累积合并条件的文件;所述基本合并单元200用于:将第二类型文件和所述累积合并操作生成的文件进行合并操作,所述第二类型文件包括已导入数据库、未进行合并操作,且不满足累积合并条件的文件。
根据本发明基于LSM-tree的分级存储装置的一种实施方式,所述累积合并条件包括文件的大小小于等于预设的文件大小阈值。
根据本发明基于LSM-tree的分级存储装置的一种实施方式,所述累积合并单元100还用于:在已导入数据库、未进行合并操作的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作;或者,在所述第一类型文件的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作。
根据本发明基于LSM-tree的分级存储装置的一种实施方式,所述基本合并单元200还用于:在所述累积合并操作生成的文件数大于等于预设的第二文件数阈值的情况下,进行所述基本合并操作。
根据本发明基于LSM-tree的分级存储装置的一种实施方式,所述基本合并单元200还用于:在累积版本文件的总的字节数与基本版文件的总的字节数之比大于等于预设的比例阈值的情况下,进行所述基本合并操作;所述累积版本文件包括现有数据库中所有的所述累积合并操作生成的文件,所述基本版本文件包括现有数据库中所有的所述基本合并操作生成的文件。
根据本发明基于LSM-tree的分级存储装置的一种实施方式,所述基本合并单元200还用于:每隔预设的时间阈值时间,进行一次所述基本合并操作。
根据本发明基于LSM-tree的分级存储装置的一种实施方式,所述基本合并单元200还用于:在预设的时间点定时触发所述基本合并操作。
根据本发明基于LSM-tree的分级存储装置的一种实施方式,还包括:所述文件大小阈值的取值范围为3-5G;和/或,所述第一文件数阈值的取值范围为5-8;和/或,所述第二文件数阈值的取值范围为5-8;和/或,所述比例阈值的取值范围为30%-50%;和/或,所述时间阈值的取值范围为7天-10天。
在一个可能的设计中,基于LSM-tree的分级存储装置的结构中包括处理器和存储器,所述存储器用于存储支持基于LSM-tree的分级存储装置执行上述第一方面中基于LSM-tree的分级存储方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
本发明实施例还提供了一种OLAP数据库***,所述OLAP数据库***包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述第一方面中任一所述的方法。
本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一所述的方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:通过采用基于LSM-tree的分级存储策略,将数据从随机写转成顺序写;同时每批次的写入产生一个新版本(version),写入过程中不影响现有数据的读取,做到读写分离,实现了并发控制。另外,通过采用基于LSM-tree的分级存储策略,在查询效率、合并频率,磁盘IO之间取得一个最佳的折中,提高了OLAP数据库存储引擎的读取和写入效率。采用本发明实施例构建的compaction(合并)策略,提高了数据compaction的效率,保证了存储引擎在大规模并发读写情况下的性能要求。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。其中装置实施方式与方法的实施方式相对应,因此装置的实施方式描述比较简略,相关描述可参照方法的实施方式的描述即可。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种基于LSM-tree的分级存储方法,其特征在于,采用基于LSM-tree的树形结构组织数据库的文件存储,将导入数据库的文件进行合并操作;
所述合并操作包括累积合并操作和基本合并操作;
所述累积合并操作包括:将第一类型文件进行合并操作,所述第一类型文件包括已导入数据库、未进行合并操作,且满足累积合并条件的文件;
所述基本合并操作包括:将第二类型文件和所述累积合并操作生成的文件进行合并操作,所述第二类型文件包括已导入数据库、未进行合并操作,且不满足累积合并条件的文件。
2.根据权利要求1所述的方法,其特征在于,所述累积合并条件包括文件的大小小于等于预设的文件大小阈值。
3.根据权利要求1所述的方法,其特征在于,还包括:
在已导入数据库、未进行合并操作的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作;或者,
在所述第一类型文件的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作。
4.根据权利要求1所述的方法,其特征在于,还包括:在所述累积合并操作生成的文件数大于等于预设的第二文件数阈值的情况下,进行所述基本合并操作。
5.根据权利要求1所述的方法,其特征在于,还包括:在累积版本文件的总的字节数与基本版文件的总的字节数之比大于等于预设的比例阈值的情况下,进行所述基本合并操作;所述累积版本文件包括现有数据库中所有的所述累积合并操作生成的文件,所述基本版本文件包括现有数据库中所有的所述基本合并操作生成的文件。
6.根据权利要求1所述的方法,其特征在于,还包括:每隔预设的时间阈值时间,进行一次所述基本合并操作。
7.根据权利要求1所述的方法,其特征在于,还包括:在预设的时间点定时触发所述基本合并操作。
8.根据权利要求1-7中任一项所述的方法,其特征在于,还包括:
所述文件大小阈值的取值范围为3-5G;和/或,
所述第一文件数阈值的取值范围为5-8;和/或,
所述第二文件数阈值的取值范围为5-8;和/或,
所述比例阈值的取值范围为30%-50%;和/或,
所述时间阈值的取值范围为7天-10天。
9.一种基于LSM-tree的分级存储装置,其特征在于,
所述装置用于:采用基于LSM-tree的树形结构组织数据库的文件存储,将导入数据库的文件进行合并操作;所述合并操作包括累积合并操作和基本合并操作;所述装置包括累积合并单元和基本合并单元;
所述累积合并单元用于:将第一类型文件进行合并操作,所述第一类型文件包括已导入数据库、未进行合并操作,且满足累积合并条件的文件;
所述基本合并单元用于:将第二类型文件和所述累积合并操作生成的文件进行合并操作,所述第二类型文件包括已导入数据库、未进行合并操作,且不满足累积合并条件的文件。
10.根据权利要求9所述的装置,其特征在于,所述累积合并条件包括文件的大小小于等于预设的文件大小阈值。
11.根据权利要求9所述的装置,其特征在于,所述累积合并单元还用于:
在已导入数据库、未进行合并操作的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作;或者,
在所述第一类型文件的文件数大于等于预设的第一文件数阈值的情况下,进行所述累积合并操作。
12.根据权利要求9所述的装置,其特征在于,所述基本合并单元还用于:在所述累积合并操作生成的文件数大于等于预设的第二文件数阈值的情况下,进行所述基本合并操作。
13.根据权利要求9所述的装置,其特征在于,所述基本合并单元还用于:在累积版本文件的总的字节数与基本版文件的总的字节数之比大于等于预设的比例阈值的情况下,进行所述基本合并操作;所述累积版本文件包括现有数据库中所有的所述累积合并操作生成的文件,所述基本版本文件包括现有数据库中所有的所述基本合并操作生成的文件。
14.根据权利要求9所述的装置,其特征在于,所述基本合并单元还用于:每隔预设的时间阈值时间,进行一次所述基本合并操作。
15.根据权利要求9所述的装置,其特征在于,所述基本合并单元还用于:在预设的时间点定时触发所述基本合并操作。
16.根据权利要求9-15中任一项所述的装置,其特征在于,还包括:
所述文件大小阈值的取值范围为3-5G;和/或,
所述第一文件数阈值的取值范围为5-8;和/或,
所述第二文件数阈值的取值范围为5-8;和/或,
所述比例阈值的取值范围为30%-50%;和/或,
所述时间阈值的取值范围为7天-10天。
17.一种OLAP数据库***,其特征在于,所述OLAP数据库***包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
18.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN201711437794.8A 2017-12-26 2017-12-26 基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质 Pending CN108021702A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711437794.8A CN108021702A (zh) 2017-12-26 2017-12-26 基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711437794.8A CN108021702A (zh) 2017-12-26 2017-12-26 基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质

Publications (1)

Publication Number Publication Date
CN108021702A true CN108021702A (zh) 2018-05-11

Family

ID=62071033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711437794.8A Pending CN108021702A (zh) 2017-12-26 2017-12-26 基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质

Country Status (1)

Country Link
CN (1) CN108021702A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101197A (zh) * 2018-08-15 2018-12-28 郑州云海信息技术有限公司 一种文件存储和访问方法、装置、文件存储器及***
CN110716690A (zh) * 2018-07-12 2020-01-21 阿里巴巴集团控股有限公司 数据回收方法和***
CN111831622A (zh) * 2020-03-31 2020-10-27 北京嘀嘀无限科技发展有限公司 数据索引生成方法、装置、电子设备和可读存储介质
CN111881092A (zh) * 2020-06-22 2020-11-03 武汉绿色网络信息服务有限责任公司 一种基于cassandra数据库的文件合并的方法和装置
CN113204564A (zh) * 2021-05-20 2021-08-03 山东英信计算机技术有限公司 一种数据库高频sql查询方法、***和存储介质
CN113297141A (zh) * 2021-05-06 2021-08-24 维沃移动通信有限公司 文件合并方法、装置、电子设备和存储介质
CN114398378A (zh) * 2022-03-25 2022-04-26 北京奥星贝斯科技有限公司 确定索引代价的方法和装置
CN115994120A (zh) * 2023-03-23 2023-04-21 北京飞轮数据科技有限公司 数据文件合并方法、装置、电子设备和计算机可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009076010A1 (en) * 2007-12-06 2009-06-18 Microsoft Corporation Document merge
CN103577454A (zh) * 2012-08-01 2014-02-12 华为技术有限公司 一种文件合并方法和装置
CN104809237A (zh) * 2015-05-12 2015-07-29 百度在线网络技术(北京)有限公司 LSM-tree索引的优化方法和装置
CN106599247A (zh) * 2016-12-19 2017-04-26 北京奇虎科技有限公司 LSM‑tree结构中数据文件的合并方法及装置
CN106855861A (zh) * 2015-12-09 2017-06-16 北京金山安全软件有限公司 一种文件合并方法、装置及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009076010A1 (en) * 2007-12-06 2009-06-18 Microsoft Corporation Document merge
CN103577454A (zh) * 2012-08-01 2014-02-12 华为技术有限公司 一种文件合并方法和装置
CN104809237A (zh) * 2015-05-12 2015-07-29 百度在线网络技术(北京)有限公司 LSM-tree索引的优化方法和装置
CN106855861A (zh) * 2015-12-09 2017-06-16 北京金山安全软件有限公司 一种文件合并方法、装置及电子设备
CN106599247A (zh) * 2016-12-19 2017-04-26 北京奇虎科技有限公司 LSM‑tree结构中数据文件的合并方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716690A (zh) * 2018-07-12 2020-01-21 阿里巴巴集团控股有限公司 数据回收方法和***
CN110716690B (zh) * 2018-07-12 2023-02-28 阿里巴巴集团控股有限公司 数据回收方法和***
CN109101197A (zh) * 2018-08-15 2018-12-28 郑州云海信息技术有限公司 一种文件存储和访问方法、装置、文件存储器及***
CN111831622A (zh) * 2020-03-31 2020-10-27 北京嘀嘀无限科技发展有限公司 数据索引生成方法、装置、电子设备和可读存储介质
CN111881092A (zh) * 2020-06-22 2020-11-03 武汉绿色网络信息服务有限责任公司 一种基于cassandra数据库的文件合并的方法和装置
CN113297141A (zh) * 2021-05-06 2021-08-24 维沃移动通信有限公司 文件合并方法、装置、电子设备和存储介质
CN113204564A (zh) * 2021-05-20 2021-08-03 山东英信计算机技术有限公司 一种数据库高频sql查询方法、***和存储介质
CN113204564B (zh) * 2021-05-20 2023-02-28 山东英信计算机技术有限公司 一种数据库高频sql查询方法、***和存储介质
CN114398378A (zh) * 2022-03-25 2022-04-26 北京奥星贝斯科技有限公司 确定索引代价的方法和装置
CN115994120A (zh) * 2023-03-23 2023-04-21 北京飞轮数据科技有限公司 数据文件合并方法、装置、电子设备和计算机可读介质

Similar Documents

Publication Publication Date Title
CN108021702A (zh) 基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质
US10162598B2 (en) Flash optimized columnar data layout and data access algorithms for big data query engines
US10496621B2 (en) Columnar storage of a database index
US7689574B2 (en) Index and method for extending and querying index
Turner et al. A DBMS for large statistical databases
CN104298681B (zh) 一种数据存储方法及装置
CN104809237A (zh) LSM-tree索引的优化方法和装置
CN108536692A (zh) 一种执行计划的生成方法、装置及数据库服务器
CN103207889A (zh) 一种基于Hadoop的海量人脸图像的检索方法
CN102411632B (zh) 基于链表的内存数据库页式存储方法
CN110008246A (zh) 元数据管理方法及装置
CN108009290A (zh) 一种轨道交通指挥中心线网大数据的数据建模和存储方法
CN104408128B (zh) 一种基于b+树异步更新索引的读优化方法
CN105095255A (zh) 一种数据索引创建方法及装置
CN108182244A (zh) 一种基于多层次列式存储结构的时序数据存储方法
CN103324762A (zh) 基于Hadoop的索引创建方法及其索引方法
CN102402540A (zh) 基于多层优化平衡树的数值与文本混合倒排索引算法
CN107273443B (zh) 一种基于大数据模型元数据的混合索引方法
US7966333B1 (en) User segment population techniques
JP6006740B2 (ja) インデックス管理装置
CN110515897A (zh) Lsm存储***读性能的优化方法及***
Morfonios et al. Supporting the data cube lifecycle: the power of ROLAP
Wu et al. Hm: A column-oriented mapreduce system on hybrid storage
Ton That et al. PLI^++: efficient clustering of cloud databases
Vagena et al. Efficient processing of XML containment queries using partition-based schemes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180511