CN109271343A - 一种应用于键值存储系统中的数据合并方法和装置 - Google Patents
一种应用于键值存储系统中的数据合并方法和装置 Download PDFInfo
- Publication number
- CN109271343A CN109271343A CN201810825117.1A CN201810825117A CN109271343A CN 109271343 A CN109271343 A CN 109271343A CN 201810825117 A CN201810825117 A CN 201810825117A CN 109271343 A CN109271343 A CN 109271343A
- Authority
- CN
- China
- Prior art keywords
- sst
- storage system
- sst file
- file
- key assignments
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
Abstract
本申请实施例提供一种应用于键值存储系统中的数据合并方法和装置,涉及信息技术领域,能够解决KV存储系统中SST文件中存在大量删除操作记录时导致的读取操作性能低的问题。其方法为:判断键值存储系统的第n层级的SST文件中的删除操作记录的数目是否大于第一预设阈值;其中,n为非负整数;当删除操作记录的数目大于该第一预设阈值时,将该第n层级中的第一SST文件与第二SST文件合并;其中,该第二SST文件位于该键值存储系统的第n+1层级,该键值存储系统接收该第一SST文件中的操作记录的时间晚于该键值存储系统接收该第二SST文件中的操作记录的时间。本申请实施例应用于KV存储系统存在大量数据删除的场景。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种应用于键值存储系统中的数据合并方法和装置。
背景技术
目前,在基于日志结构化合并树(log structured merge tree,LSM Tree)的键值(key value, KV)存储系统进行写操作时,采用追加写的形式。例如,当上层应用写入一条记录时,KV 存储系统首先将该记录写入到写前日志(write ahead log,WAL),而后再将该记录写入到内存中的Memtable。当Memtable占用的内存达到一定上限后,KV存储系统可以将Memtable 冻结为不可变Memtable,即Immutable Memtable,将不可变MemTable的数据排序后转储到硬盘,形成静态有序表(static sorted table,SST)文件。其中,KV存储系统的硬盘中可以包括多个层级,每一层级可以包含一个或多个SST文件。Immutable Memtable从内存中写到硬盘时,首先会存储到第0层级。对于删除数据的操作,KV存储系统可以分别在WAL和 Memtable中追加写数据被删除的标识记录。
KV存储系统进行读取操作时,需要在内存以及各个层级SST文件中依次查找。当KV存储系统记录大量删除操作时,SST文件中会存在大量删除操作记录(数据被删除的标识记录)。此时,读取操作需要在SST文件中不断跳过这些删除操作记录,大幅度地降低了读取性能。
发明内容
本申请实施例提供一种应用于键值存储系统中的数据合并方法和装置,能够解决KV存储系统中SST文件中存在大量删除操作记录时导致的读取操作性能低的问题。
第一方面,本申请实施例提供一种应用于键值存储系统中的数据合并方法,包括:判断该键值存储系统的第n层级的SST文件中的删除操作记录的数目是否大于第一预设阈值;其中,n为非负整数;当该删除操作记录的数目大于该第一预设阈值时,将该第n 层级中的第一SST文件与第二SST文件合并;其中,该第二SST文件位于该键值存储系统的第n+1层级,该键值存储系统接收该第一SST文件中的操作记录的时间晚于该键值存储系统接收该第二SST文件中的操作记录的时间。
现有技术中,当存储系统进行读取操作时,需要在内存以及硬盘中的各个层级文件中依次查找。若存在大量数据删除,SST文件中存在大量删除操作记录。此时,数据库的读取操作需要在SST文件中不断跳过删除操作记录,从而大幅度的降低读取性能。基于本申请实施例提供的应用于键值存储系统中的数据合并方法,若数据处理装置确定第n层级的SST文件中删除操作记录的数目大于第一预设阈值,可以将该第n层级的第一SST文件的数据与第n+1 层级的第二SST文件的数据合并,能够去除第一SST文件和第二SST文件的冗余数据,即可以及时去除无用的数据和该无用数据对应的删除操作记录,可以提高读取速度,保证了更好的读取性能,能够解决SST文件中存在大量删除操作记录时导致的读取操作性能低的问题。
在一种可能的实现方式中,判断该键值存储系统的第n层级的SST文件中的删除操作记录的数目是否大于第一预设阈值,包括:判断该第n层级中所有SST文件中的删除操作记录的数目是否大于该第一预设阈值。
这样一来,当第n层级的所有SST文件共同包括的删除操作记录较多时(大于第一预设阈值),可以及时将第n层级的第一SST文件与第n+1层级的第二SST文件进行合并,以减少第n层级的SST文件中的删除操作记录。从而,可以提高读取速度,保证了更好的读取性能,解决了SST文件中存在大量删除操作记录时导致的读取操作性能低的问题。
在一种可能的实现方式中,判断该键值存储系统的第n层级的SST文件中的删除操作记录的数目是否大于第一预设阈值,包括:判断该第一SST文件中的删除操作记录的数目是否大于该第一预设阈值。
这样一来,当第n层级的第一SST文件包括的删除操作记录较多时(大于第一预设阈值),可以及时将第一SST文件与第二SST文件进行合并,以减少第一SST文件中的删除操作记录,即减少了第n层级的SST文件中的删除操作记录。从而,可以提高读取速度,保证了更好的读取性能,能够解决SST文件中存在大量删除操作记录时导致的读取操作性能低的问题。
在一种可能的实现方式中,该第一SST文件中的操作记录的主键值与该第二SST文件中的操作记录的主键值重叠的数量最多或最少。
若选择将第n层级中与第二SST文件的主键值重叠最少的SST文件作为第一SST文件,可以减少第一SST文件中的数据和第二SST文件中数据的迭代次数,从而加快数据合并的速度。若选择将第n层级中与第二SST文件的主键值重叠最多的SST文件作为第一SST文件,可以尽可能多的去除第一SST文件和第二SST文件中的数据冗余,可以去除更多的删除操作记录和相应的数据记录,从而可以提高读取速度,保证了更好的读取性能。
在一种可能的实现方式中,该第一SST文件是该第n层级中的所有SST文件中所包括的删除操作记录最多的SST文件。
即可以将第n层级中操作记录的数目大于其余的SST文件的SST文件作为第一SST文件。这样一来,可以将更多的删除操作记录下沉到下一层,可以去除更多的删除操作记录和相应的数据记录。从而可以提高读取速度,保证了更好的读取性能。
第二方面,本申请实施例提供了一种数据处理装置,包括判断单元和合并单元:该判断单元,用于判断该键值存储系统的第n层级的SST文件中的删除操作记录的数目是否大于第一预设阈值;其中,n为非负整数;该合并单元,用于当该删除操作记录的数目大于该第一预设阈值时,将该第n层级中的第一SST文件与第二SST文件合并;其中,该第二SST文件位于该键值存储系统的第n+1层级,该键值存储系统接收该第一SST文件中的操作记录的时间晚于该键值存储系统接收该第二SST文件中的操作记录的时间。
在一种可能的实现方式中,该判断单元具体用于:判断该第n层级中所有SST文件中的删除操作记录的数目是否大于该第一预设阈值。
在一种可能的实现方式中,该判断单元具体用于:判断该第一SST文件中的删除操作记录的数目是否大于该第一预设阈值。
在一种可能的实现方式中,该第一SST文件中的操作记录的主键值与该第二SST文件中的操作记录的主键值重叠的数量最多或最少。
在一种可能的实现方式中,该第一SST文件是该第n层级中的所有SST文件中所包括的删除操作记录最多的SST文件。
第二方面及其各种可能的实现方式的技术效果可以参见第一方面及其各种可能的实现方式的技术效果,此处不再赘述。
第三方面,本申请实施例提供了一种装置,该装置以芯片的产品形态存在,该装置的结构中包括处理器和存储器,该存储器用于与处理器耦合,保存该装置必要的程序指令和数据,该处理器用于执行存储器中存储的程序指令,使得该装置执行上述方法中数据处理装置的功能。
第四方面,本申请实施例提供了一种数据处理装置,该数据处理装置可以实现上述方法实施例中相应的功能,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该数据处理装置的结构中包括处理器和通信接口,该处理器被配置为支持该数据处理装置执行上述方法中相应的功能。该通信接口用于支持该数据处理装置与其他网元之间的通信。该数据处理装置还可以包括存储器,该存储器用于与处理器耦合,其保存该数据处理装置必要的程序指令和数据。
第五方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
第六方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
附图说明
图1为本申请实施例提供的一种数据处理装置的结构示意图;
图2为本申请实施例提供的一种装置的硬件结构示意图;
图3为本申请实施例提供的一种应用于键值存储系统中的数据合并方法的流程示意图;
图4为本申请实施例提供的一种SST文件的层级结构示意图;
图5为本申请实施例提供的一种数据处理装置的结构示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
KV存储系统:该系统可以根据主键(又称关键字或主码)取值,可以通过主键对数据进行查询,查询速度快、存放数据量大、支持高并发。其中,主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键。主键可以唯一确定文件中的一个记录(一个条目)。当添加新记录时,数据库可以自动检查新记录的主键值,不允许该值与其他记录的主键值重复,也不可为空(NULL)。
删除操作记录:对删除的数据的记录,可以是标记相应的主键值为删除状态。例如,当删除用户A的电话号码时,若用户A的电话号码对应的主键值为100,则可以标记主键值100 为删除状态。
合并:也可以称为压缩,用于对已有的记录(数据)进行整理合并,从而删除一些不再有效的记录(例如,移除重复的更新或者删除操作记录),减少数据规模和文件数量,以加快读取速度。本申请实施例中,合并过程可以包括Flush过程(也称为minor compaction)和Compaction(也称为major compaction)过程。其中,Flush过程即将内存中的immutableMemtable转储为硬盘中的第0层级(level,可以简称为层或级)的SST文件。Compaction 过程即将SST文件从低level向高level转储。后文中的合并过程主要指Compaction过程。本发明实施例中,硬盘中的第0层级是指SST文件在由硬盘构成的存储资源池中的组织层级。
Rocksdb、LevelDB:都是一种基于LSM Tree的KV存储系统。在存储数据时,可以根据记录的主键有序存储,也就是说,相邻的主键分别对应的数据在存储文件中是依次顺序存储的。
本申请实施例提供一种应用于键值存储系统中的数据合并方法和装置,可以应用于KV 存储系统。例如,可以应用于基于LSM-Tree结构的KV存储系统存在大量数据删除的场景。其中,基于LSM-Tree结构的KV存储系统例如但不限于为Rocksdb、LevelDB等。
如图1所示,为本申请实施例的一种数据处理装置10的结构示意图。数据处理装置10 可以包括业务软件11和数据库12。数据库12可以用于受理业务软件11的访问、管理SST文件、WAL、清单(manifest)文件和当前(current)文件,以便为用户提供读取(查询)和写入(包括增加(PUT)/删除(DELETE)等操作)等功能。其中,WAL是处理数据插入和删除的过程中用来记录操作内容的一种日志。每一个业务数据的写入操作执行前,会记录在WAL中,同时写入Memtable中。manifest文件记载了各个SST文件的元数据,包括文件名、最大主键和最小主键等信息。current文件用于记录数据库当前的manifest文件的文件名。
其中,数据库12可以对SST文件进行分层管理,即全部的SST文件构成一种层级结构。每一层可以维护指定的文件个数或大小。例如,第0层为level 0,可以包括1M的SST文件,第1层为level 1,可以包括10M的SST文件,第2层为level 2,可以包括100M的SST文件,第3层为level 3,可以包括1G的SST文件,以此类推。其中,level 0-n表示SST文件存放的不同层级,level序号从小到大代表数据库中的数据从新到老(即数据库接收数据的时间从早到晚)。每一层中的SST文件可以是按照主键的大小排序的,每个SST文件有最小的主键和最大的主键,且每个SST文件的主键是不重叠的。因此在一层查找一个主键,只用查找一个SST文件。每个SST文件所属的层级信息可以记录在manifest文件中。
本申请实施例中的数据处理装置,可以由一个设备实现,也可以是一个设备内的一个功能模块,本申请实施例对此不作具体限定。可以理解的是,上述功能既可以是硬件设备中的网络元件,也可以是在专用硬件上运行的软件功能,或者是平台(例如,云平台)上实例化的虚拟化功能。
例如,本申请实施例中的数据处理装置可以通过图2中的装置来实现。图2所示为本申请实施例提供的装置的硬件结构示意图。该装置200包括至少一个处理器201,总线202,存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线202。
通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网等。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory, CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、硬盘或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介,但不限于此。存储器可以是独立存在,通过总线202与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器203用于存储执行本申请方案的计算机执行指令,并由处理器201来控制执行。处理器201用于执行存储器203中存储的计算机执行指令,从而实现本申请实施例的方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,装置200可以包括多个处理器,例如图2中的处理器 201和处理器207。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,装置200还可以包括输出设备205和输入设备206。输出设备205和处理器201通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(liquid crystal display,LCD),发光二极管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备206和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
本申请实施例提供一种应用于键值存储系统中的数据合并方法,如图3所示,包括:
301、数据处理装置判断键值存储系统的第n层级的SST文件中的删除操作记录的数目是否大于第一预设阈值;其中,n为非负整数。
在一种可能的设计中,第n层级的SST文件可以包括第n层级中所有(全部)SST文件。也就是说,数据处理装置可以确定第n层级中所有SST文件中删除操作记录的数目是否大于第一预设阈值。举例来说,第一预设阈值可以为删除操作记录的数目占第n层级中所有SST 文件的全部条目(记录)的数目的10%。例如,第二层SST文件中全部条目的数目为1000万,若删除操作记录的数目占200万,则删除操作记录的数目占全部条目的数目的20%,即删除操作记录的数目大于第一预设阈值。
在一种可能的设计中,第n层级的SST文件为第一SST文件。也就是说,数据处理装置可以确定第n层级的SST文件中的第一SST文件中删除操作记录的数目是否大于第一预设阈值。举例来说,第一预设阈值可以为第一SST文件中存在10万条删除操作记录;或者,第一预设阈值为第一SST文件中的删除操作记录占该SST文件的全部条目数目的30%;或者,第一预设阈值为第一SST文件中的删除操作记录占第n层级的所有SST文件中的删除操作记录的数目的10%。
在一种可能的设计中,如果用户预期删除操作记录可能集中在某一个范围内,第n层级的SST文件可以包括该范围内的SST文件。例如,假设用户预期删除操作记录可能集中在主键值为100-300这一范围内的SST文件,那么第n层级的SST文件可以包括每一层SST文件中主键值落入100-300这一范围内的SST文件。即数据处理装置可以确定主键值落入100-300这一范围内的SST文件中删除操作记录的数目是否大于第一预设阈值。举例来说,第一预设阈值可以为第n层级中主键值为100-300这一范围内的SST文件的删除操作记录的数目占该范围的SST文件的全部条目数目的20%。
若确定第n层级的SST文件中删除操作记录的数目大于第一预设阈值,数据处理装置执行步骤302。举例来说,若数据处理装置确定第二层的全部SST文件中删除操作记录的数目大于第一预设阈值,执行步骤302。或者,若数据处理装置确定第二层的第一SST文件中删除操作记录的数目大于第一预设阈值,执行步骤302。
需要说明的是,第n层级的SST文件的删除操作记录可以是连续的、不连续的或不完全连续的。
在一种可能的设计中,数据处理装置可以确定第n层级的一个或多个SST文件中连续的删除操作记录的数目是否大于第一预设阈值。例如,确定第n层级的SST文件中连续的删除操作记录的数目是否大于50条。若确定第n层级的SST文件中连续的删除操作记录的数目大于第一预设阈值,执行步骤302。这样一来,可以避免存储系统进行读取操作时连续跳过多个删除操作记录(例如,若第n层级的SST文件中的主键值为1-100的数据被标记为删除,当数据处理装置查询主键值为101的数据时,需要连续跳过100条删除操作记录),能够提高读写效率。
302、数据处理装置将第n层级中的第一SST文件与第二SST文件合并。
其中,第二SST文件位于键值存储系统的第n+1层级,键值存储系统接收第一SST文件中的操作记录的时间晚于键值存储系统接收第二SST文件中的操作记录的时间。
当第n层级的SST文件中删除操作记录的数目大于第一预设阈值时,数据处理装置可以从第n层级的SST文件中确定一个目标SST文件(第一SST文件)。若第n层级的SST文件包括第n层级的所有SST文件,数据处理装置可以选择一个第一SST文件。而后,将第一 SST文件的数据与第n+1层级的SST文件中的第二SST文件的数据合并,以去除第一SST 文件和第二SST文件的冗余数据。
在一种可能的设计中,可以将第n层级中的所有SST文件中包括删除操作记录最多的SST 文件作为第一SST文件,即可以将第n层级中操作记录的数目大于其余的SST文件的SST 文件作为第一SST文件。这样一来,可以将更多的删除操作记录下沉到下一层,可以去除更多的删除操作记录和相应的记录。从而可以提高读取速度,保证了更好的读取性能。
当第n层级的SST文件中每个SST文件的删除操作记录的数目相同时,可以选择将第n 层级中与第二SST文件的主键值重叠最少的SST文件作为第一SST文件。这样一来,可以减少第一SST文件中的数据和第二SST文件中数据的迭代次数,从而加快数据合并的速度。或者,可以选择将第n层级中与第二SST文件的主键值重叠最多的SST文件作为第一SST 文件,这样一来,可以尽可能多的去除第一SST文件和第二SST文件中的数据冗余,可以去除更多的删除操作记录和相应的数据记录,从而可以提高读取速度,保证了更好的读取性能。
又例如,第一SST文件可以是第n层级的SST文件中最晚生成的SST文件或最早生成的SST文件。需要说明的是,上述确定第一SST文件的方法仅为本申请实施例提供的几个示例,本申请不限定如何确定第一SST文件。
在一种可能的设计中,第二SST文件的主键值的范围与第一SST文件的主键值的范围有重叠部分(交叉部分)。举例来说,当第二层级的所有SST文件中删除操作记录的数目大于第一预设阈值时,可以从第二层SST文件中选择一个第一SST文件,将第一SST文件的数据与第三层SST文件中的第二SST文件的数据合并。或者,当第二层级的第一SST文件中删除操作记录的数目大于第一预设阈值时,将第一SST文件的数据与第三层SST文件中的第二SST文件的数据合并。如图4所示,假设第一SST文件的主键值的范围为100-200(即最小主键值为100,最大主键值为200),第n+1层级的SST文件包括6个SST文件,第1个到 6个SST文件的主键值范围分别为0-50,50-110,120-180,190-260,,270-320,325-390;从而第二SST文件可以包括第三层级的第2个到4个SST文件,即可以将第一SST文件与第三层级的第2个到4个SST文件分别进行数据合并。
在一种可能的设计中,第二SST文件的最小主键值与第一SST文件的最大主键值最接近,和/或,第二SST文件的最大主键值与第一SST文件的最小主键值最接近。例如,假设第一 SST文件的主键值的范围为100-200,第n+1层级的SST文件包括6个SST文件,第1个到 6个SST文件的主键值范围分别为0-90,210-260,270-320,325-390,400-460,468-520;从而第二SST文件可以包括第三层级的第1个和第2个SST文件,可以将第一SST文件插入第三层级的第1个和第2个SST文件之间。
具体的,数据处理装置将第一SST文件的数据与第二SST文件进行合并的过程相当于对第一SST文件的数据与至少一个第二SST文件进行多路归并排序。即,按照主键顺序依次迭代出第一SST文件和至少一个第二SST文件的数据(记录),如果没有保存价值,则直接抛弃;否则,将其写入到新生成的SST文件中。例如,当第一SST文件中有对数据A的删除操作记录,而第二SST文件中刚好有数据A的记录,那么可以将数据A和对数据A的删除操作记录都丢弃。这样一来,可以减少第一SST文件中的删除操作记录的数目,可以提高读取速度,保证了更好的读取性能。
可以理解的是,在数据的合并过程中,数据的删除操作记录可以逐层下沉,从而可以抛弃数据库中所有与删除操作记录有关的记录和相应的删除操作记录。举例来说,当第二层SST 文件中删除操作记录的数目大于第一预设阈值时,将第二层SST文件与第三层SST文件合并,从而第二层SST文件中的删除操作记录下沉到第三层SST文件。可以根据第二层SST文件中的删除操作记录删除掉第三层SST文件中的相应记录。进一步的,由于第三层文件中的删除操作记录增多,第三层SST文件中删除操作记录的数目可能大于第一预设阈值,此时,将第三层SST文件与第四层SST文件合并,从而第三层SST文件中的删除操作记录下沉到第四层SST文件。可以根据第三层SST文件中的删除操作记录删除掉第四层SST文件中的相应记录。以此类推,当删除操作记录下沉到最后一层时,可以抛弃数据库中所有与删除操作记录有关的记录和相应的删除操作记录。
现有技术中,当存储系统进行读取操作时,需要在内存以及硬盘中的各个层级文件中依次查找。若存在大量数据删除,SST文件中存在大量删除操作记录。此时,数据库的读取操作需要在SST文件中不断跳过删除操作记录,从而大幅度的降低读取性能。本申请实施例提供的应用于键值存储系统中的数据合并方法,若数据处理装置确定第n层级的SST文件中删除操作记录的数目大于第一预设阈值,可以将所述第n层级的第一SST文件的数据与第n+1 层级的第二SST文件的数据合并,能够去除第一SST文件和第二的SST文件的冗余数据,从而可以及时去除无用的数据和该无用数据对应的删除操作记录,可以提高读取速度,保证了更好的读取性能,能够解决SST文件中存在大量删除操作记录时导致的读取操作性能低的问题。
上述主要从数据处理装置的角度对本申请实施例提供的方案进行了介绍。可以理解的是,数据处理装置为了实现上述功能,其包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的算法步骤,本申请能够以硬件或硬件和软件的结合形式来实现。某个功能究竟以硬件还是软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中所涉及的数据处理装置5的一种可能的结构示意图,数据处理装置包括:判断单元501和合并单元502。判断单元501,用于判断键值存储系统的第n层级的SST文件中的删除操作记录的数目是否大于第一预设阈值;其中,n为非负整数。合并单元502,用于当删除操作记录的数目大于第一预设阈值时,将第n层级中的第一SST文件与第二SST文件合并;其中,第二SST文件位于键值存储系统的第n+1层级,键值存储系统接收第一SST文件中的操作记录的时间晚于键值存储系统接收第二SST文件中的操作记录的时间。其中,判断单元501用于支持数据处理装置执行图3中的过程301。合并单元502用于支持数据处理装置执行图3中的过程302。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在一种可能的实现方式中,该判断单元具体用于:判断该第n层级中所有SST文件中的删除操作记录的数目是否大于该第一预设阈值。
在另一种可能的实现方式中,该判断单元具体用于:判断该第一SST文件中的删除操作记录的数目是否大于该第一预设阈值。
在一种可能的实现方式中,该第一SST文件中的操作记录的主键值与该第二SST文件中的操作记录的主键值重叠的数量最多或最少。
在另一种可能的实现方式中,该第一SST文件是该第n层级中的所有SST文件中所包括的删除操作记录最多的SST文件。
本发明实施例中数据处理装置可能是服务器,本发明实施例中的硬盘可以由服务器本地的硬盘,也可以是多个服务器中的硬盘,或外置硬盘。硬盘可以是机械硬盘或者是固态硬盘 (Solid State Disk,SSD)或者机械硬盘与SSD的组合。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、只读光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于服务器中,用于实现本发明实施例各方式。。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在数据处理装置可读介质中或者作为数据处理装置可读介质上的一个或多个指令或代码进行传输。数据处理装置可读介质包括数据处理装置存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送数据处理装置程序的任何介质。存储介质可以是通用或专用数据处理装置能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (13)
1.一种应用于键值存储系统中的数据合并方法,其特征在于,包括:
判断所述键值存储系统的第n层级的静态排序表SST文件中的删除操作记录的数目是否大于第一预设阈值;其中,n为非负整数;
当所述删除操作记录的数目大于所述第一预设阈值时,将所述第n层级中的第一SST文件与第二SST文件合并;其中,所述第二SST文件位于所述键值存储系统的第n+1层级,所述键值存储系统接收所述第一SST文件中的操作记录的时间晚于所述键值存储系统接收所述第二SST文件中的操作记录的时间。
2.根据权利要求1所述的应用于键值存储系统中的数据合并方法,其特征在于,所述判断所述键值存储系统的第n层级的静态排序表SST文件中的删除操作记录的数目是否大于第一预设阈值,包括:
判断所述第n层级中所有SST文件中的删除操作记录的数目是否大于所述第一预设阈值。
3.根据权利要求1所述的应用于键值存储系统中的数据合并方法,其特征在于,所述判断所述键值存储系统的第n层级的静态排序表SST文件中的删除操作记录的数目是否大于第一预设阈值,包括:
判断所述第一SST文件中的删除操作记录的数目是否大于所述第一预设阈值。
4.根据权利要求1或2所述的应用于键值存储系统中的数据合并方法,其特征在于,所述第一SST文件中的操作记录的主键值与所述第二SST文件中的操作记录的主键值重叠的数量最多或最少。
5.根据权利要求2所述的应用于键值存储系统中的数据合并方法,其特征在于,所述第一SST文件是所述第n层级中的所有SST文件中所包括的删除操作记录最多的SST文件。
6.一种数据处理装置,其特征在于,包括判断单元和合并单元:
所述判断单元,用于判断所述键值存储系统的第n层级的静态排序表SST文件中的删除操作记录的数目是否大于第一预设阈值;其中,n为非负整数;
所述合并单元,用于当所述删除操作记录的数目大于所述第一预设阈值时,将所述第n层级中的第一SST文件与第二SST文件合并;其中,所述第二SST文件位于所述键值存储系统的第n+1层级,所述键值存储系统接收所述第一SST文件中的操作记录的时间晚于所述键值存储系统接收所述第二SST文件中的操作记录的时间。
7.根据权利要求6所述的数据处理装置,其特征在于,所述判断单元具体用于:
判断所述第n层级中所有SST文件中的删除操作记录的数目是否大于所述第一预设阈值。
8.根据权利要求6所述的数据处理装置,其特征在于,所述判断单元具体用于:
判断所述第一SST文件中的删除操作记录的数目是否大于所述第一预设阈值。
9.根据权利要求6或7所述的数据处理装置,其特征在于,所述第一SST文件中的操作记录的主键值与所述第二SST文件中的操作记录的主键值重叠的数量最多或最少。
10.根据权利要求7所述的数据处理装置,其特征在于,所述第一SST文件是所述第n层级中的所有SST文件中所包括的删除操作记录最多的SST文件。
11.一种数据处理装置,包括存储器,所述存储器存储有计算机指令,当所述计算机指令被执行时,使得所述数据处理装置执行如权利要求1-5中任一项的应用于键值存储系统中的数据合并方法。
12.一种计算机存储介质,所述计算机存储介质存储有计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行如权利要求1-5中任一项的应用于键值存储系统中的数据合并方法。
13.一种存储系统,其特征在于,所述存储系统作为第一存储系统,包括处理器和接口,所述处理器和所述接口通信,所述处理器用于执行如权利要求1-5中任一项的应用于键值存储系统中的数据合并方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810825117.1A CN109271343B (zh) | 2018-07-24 | 2018-07-24 | 一种应用于键值存储系统中的数据合并方法和装置 |
CN202011415970.XA CN112527735A (zh) | 2018-07-24 | 2018-07-24 | 一种应用于键值存储系统中的数据合并方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810825117.1A CN109271343B (zh) | 2018-07-24 | 2018-07-24 | 一种应用于键值存储系统中的数据合并方法和装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011415970.XA Division CN112527735A (zh) | 2018-07-24 | 2018-07-24 | 一种应用于键值存储系统中的数据合并方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109271343A true CN109271343A (zh) | 2019-01-25 |
CN109271343B CN109271343B (zh) | 2020-12-15 |
Family
ID=65153195
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810825117.1A Active CN109271343B (zh) | 2018-07-24 | 2018-07-24 | 一种应用于键值存储系统中的数据合并方法和装置 |
CN202011415970.XA Pending CN112527735A (zh) | 2018-07-24 | 2018-07-24 | 一种应用于键值存储系统中的数据合并方法和装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011415970.XA Pending CN112527735A (zh) | 2018-07-24 | 2018-07-24 | 一种应用于键值存储系统中的数据合并方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN109271343B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389942A (zh) * | 2019-06-21 | 2019-10-29 | 华中科技大学 | 一种无垃圾回收的键值分离存储方法和系统 |
CN111352908A (zh) * | 2020-02-28 | 2020-06-30 | 北京奇艺世纪科技有限公司 | 基于lsm的数据存储方法、装置、存储介质及计算机设备 |
CN111625531A (zh) * | 2019-02-28 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 基于可编程装置的合并装置、数据合并方法及数据库系统 |
CN111737261A (zh) * | 2020-06-24 | 2020-10-02 | 山东大学 | 基于LSM-Tree的压缩日志缓存方法及装置 |
WO2021061173A1 (en) * | 2019-12-04 | 2021-04-01 | Futurewei Technologies, Inc. | Data integrity validation on lsm tree snapshots |
CN112711564A (zh) * | 2019-10-24 | 2021-04-27 | 华为技术有限公司 | 合并处理方法以及相关设备 |
CN113032340A (zh) * | 2019-12-24 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 数据文件的合并方法、装置、存储介质及处理器 |
CN113326262A (zh) * | 2021-05-14 | 2021-08-31 | 锐掣(杭州)科技有限公司 | 基于键值数据库的数据处理方法、装置、设备及介质 |
CN113495871A (zh) * | 2020-04-04 | 2021-10-12 | 厦门网宿有限公司 | 一种基于LSM-Tree存储引擎的文件管理方法和装置 |
CN113934735A (zh) * | 2021-12-15 | 2022-01-14 | 深圳市城市交通规划设计研究中心股份有限公司 | 处理数据的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744628A (zh) * | 2014-01-27 | 2014-04-23 | 北京奇虎科技有限公司 | SSTable文件存储方法及装置 |
CN103812877A (zh) * | 2014-03-12 | 2014-05-21 | 西安电子科技大学 | 基于Bigtable分布式存储系统的数据压缩方法 |
CN105095287A (zh) * | 2014-05-14 | 2015-11-25 | 华为技术有限公司 | Lsm数据合并排序方法和装置 |
CN105468298A (zh) * | 2015-11-19 | 2016-04-06 | 中国科学院信息工程研究所 | 一种基于日志结构合并树的键值存储方法 |
CN106407224A (zh) * | 2015-07-31 | 2017-02-15 | 华为技术有限公司 | 一种键值存储系统中文件压实的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038206B (zh) * | 2017-01-17 | 2021-04-27 | 创新先进技术有限公司 | Lsm树的建立方法、lsm树的数据读取方法和服务器 |
CN107526550B (zh) * | 2017-09-06 | 2020-01-17 | 中国人民大学 | 一种基于日志结构合并树的两阶段合并方法 |
-
2018
- 2018-07-24 CN CN201810825117.1A patent/CN109271343B/zh active Active
- 2018-07-24 CN CN202011415970.XA patent/CN112527735A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744628A (zh) * | 2014-01-27 | 2014-04-23 | 北京奇虎科技有限公司 | SSTable文件存储方法及装置 |
CN103812877A (zh) * | 2014-03-12 | 2014-05-21 | 西安电子科技大学 | 基于Bigtable分布式存储系统的数据压缩方法 |
CN105095287A (zh) * | 2014-05-14 | 2015-11-25 | 华为技术有限公司 | Lsm数据合并排序方法和装置 |
CN106407224A (zh) * | 2015-07-31 | 2017-02-15 | 华为技术有限公司 | 一种键值存储系统中文件压实的方法和装置 |
CN105468298A (zh) * | 2015-11-19 | 2016-04-06 | 中国科学院信息工程研究所 | 一种基于日志结构合并树的键值存储方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625531A (zh) * | 2019-02-28 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 基于可编程装置的合并装置、数据合并方法及数据库系统 |
CN111625531B (zh) * | 2019-02-28 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 基于可编程装置的合并装置、数据合并方法及数据库系统 |
CN110389942B (zh) * | 2019-06-21 | 2021-07-30 | 华中科技大学 | 一种无垃圾回收的键值分离存储方法和系统 |
CN110389942A (zh) * | 2019-06-21 | 2019-10-29 | 华中科技大学 | 一种无垃圾回收的键值分离存储方法和系统 |
CN112711564B (zh) * | 2019-10-24 | 2024-04-09 | 华为云计算技术有限公司 | 合并处理方法以及相关设备 |
CN112711564A (zh) * | 2019-10-24 | 2021-04-27 | 华为技术有限公司 | 合并处理方法以及相关设备 |
WO2021061173A1 (en) * | 2019-12-04 | 2021-04-01 | Futurewei Technologies, Inc. | Data integrity validation on lsm tree snapshots |
CN113032340A (zh) * | 2019-12-24 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 数据文件的合并方法、装置、存储介质及处理器 |
CN111352908B (zh) * | 2020-02-28 | 2023-10-10 | 北京奇艺世纪科技有限公司 | 基于lsm的数据存储方法、装置、存储介质及计算机设备 |
CN111352908A (zh) * | 2020-02-28 | 2020-06-30 | 北京奇艺世纪科技有限公司 | 基于lsm的数据存储方法、装置、存储介质及计算机设备 |
CN113495871A (zh) * | 2020-04-04 | 2021-10-12 | 厦门网宿有限公司 | 一种基于LSM-Tree存储引擎的文件管理方法和装置 |
CN113495871B (zh) * | 2020-04-04 | 2023-06-23 | 厦门网宿有限公司 | 一种基于LSM-Tree存储引擎的文件管理方法和装置 |
CN111737261A (zh) * | 2020-06-24 | 2020-10-02 | 山东大学 | 基于LSM-Tree的压缩日志缓存方法及装置 |
CN111737261B (zh) * | 2020-06-24 | 2023-09-22 | 山东大学 | 基于LSM-Tree的压缩日志缓存方法及装置 |
CN113326262A (zh) * | 2021-05-14 | 2021-08-31 | 锐掣(杭州)科技有限公司 | 基于键值数据库的数据处理方法、装置、设备及介质 |
CN113326262B (zh) * | 2021-05-14 | 2022-06-24 | 锐掣(杭州)科技有限公司 | 基于键值数据库的数据处理方法、装置、设备及介质 |
CN113934735A (zh) * | 2021-12-15 | 2022-01-14 | 深圳市城市交通规划设计研究中心股份有限公司 | 处理数据的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112527735A (zh) | 2021-03-19 |
CN109271343B (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271343A (zh) | 一种应用于键值存储系统中的数据合并方法和装置 | |
US8418053B2 (en) | Division program, combination program and information processing method | |
US10705735B2 (en) | Method and device for managing hash table, and computer program product | |
CN106021267B (zh) | 对数据结构的并发读取和插入的方法和系统 | |
CN111801661A (zh) | 多主机分布式数据管理系统中的事务操作 | |
US10417265B2 (en) | High performance parallel indexing for forensics and electronic discovery | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
US9442694B1 (en) | Method for storing a dataset | |
CN106980665B (zh) | 数据字典实现方法、装置及数据字典管理系统 | |
US10049034B2 (en) | Information processing apparatus | |
US20160306655A1 (en) | Resource management and allocation using history information stored in application's commit signature log | |
JP2018538600A (ja) | データ準備のためのシグニチャベースのキャッシュ最適化 | |
CN109726264B (zh) | 用于索引信息更新的方法、装置、设备和介质 | |
JP6598997B2 (ja) | データ準備のためのキャッシュ最適化 | |
CN107665219A (zh) | 一种日志管理方法及装置 | |
KR20210058118A (ko) | CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치 | |
US8745350B2 (en) | Temporary VTOC locking during defragmentation | |
WO2012081165A1 (ja) | データベース管理装置及びデータベース管理方法 | |
JP6006740B2 (ja) | インデックス管理装置 | |
CN112905541B (zh) | 镜像仓库垃圾清理方法和装置 | |
US10282243B2 (en) | Performance enhancement for platform data dump collection | |
US20220092049A1 (en) | Workload-driven database reorganization | |
CN106959888B (zh) | 云存储系统中的任务处理方法及装置 | |
TWI475419B (zh) | 用於在儲存系統上存取檔案的方法和系統 | |
US9934141B1 (en) | System and method for efficiently managing a containment hierarchy |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220221 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |