CN106156070B - 一种查询方法、文件合并方法与相关装置 - Google Patents

一种查询方法、文件合并方法与相关装置 Download PDF

Info

Publication number
CN106156070B
CN106156070B CN201510148521.6A CN201510148521A CN106156070B CN 106156070 B CN106156070 B CN 106156070B CN 201510148521 A CN201510148521 A CN 201510148521A CN 106156070 B CN106156070 B CN 106156070B
Authority
CN
China
Prior art keywords
record
file
rowkey
target
flag bit
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.)
Active
Application number
CN201510148521.6A
Other languages
English (en)
Other versions
CN106156070A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510148521.6A priority Critical patent/CN106156070B/zh
Publication of CN106156070A publication Critical patent/CN106156070A/zh
Application granted granted Critical
Publication of CN106156070B publication Critical patent/CN106156070B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据查询方法,用于提升数据库的查询效率。本发明实施例方法包括:查询装置接收查询指令;确定目标RowKey对应的N条目标记录;按照由新到旧的顺序,依次读取确定的目标记录;若查询装置读取到第M条目标记录时,该条目标记录的标志位为1,则终止依次读取确定的目标记录的操作。将读取到的M条目标记录合并为一条查询结果记录,并将查询结果记录作为查询结果;将查询结果记录写入数据库。本发明还提供了一种文件合并方法以及相关装置。

Description

一种查询方法、文件合并方法与相关装置
技术领域
本发明涉及数据库领域,尤其涉及一种查询方法、文件合并方法与相关装置。
背景技术
随着互联网数据的日益增长,管理分布式数据的需求也日益增加,因此提供一种高效、快速、性能优异的分布式数据库,具有重要的实际意义。
日志结构的合并树(Log-Structured Merge-Tree,LSM-Tree)提供了一种数据存储的思想:将对数据记录的更新保存在内存中,待内存中的更新数据记录达到一定大小后再合并为文件写入磁盘。在从LSM-Tree数据库查询数据时,需要读取磁盘中的历史数据记录和内存中的更新数据记录,并将读取结果合并后作为查询结果。
但是实际应用中,若对某条数据记录进行了多次更新,则磁盘中就会保存有多个记录了该条数据记录的更新信息的文件。这样在查询数据时,就需要从磁盘中访问较多的文件,查询时间较长,查询效率较低。
发明内容
本发明实施例提供了一种数据查询方法,用于提升数据库的查询效率。
本发明实施例第一方面提供了一种查询方法,适用于日志结构的合并树LSM-Tree数据库,包括:
接收查询指令,所述查询指令中包括待查找的目标RowKey;
确定所述目标RowKey对应的N条目标记录,其中,所述N条目标记录包括所述目标RowKey对应的初始目标记录,和/或用于更新所述初始目标记录的更新目标记录,和/或所述目标RowKey对应的查询结果记录,每条所述目标记录包括标志位,其中,初始目标记录和查询结果记录的标识位为1,更新目标记录的标志位为0;
按照由新到旧的顺序,依次读取确定的目标记录;
若读取的第M条目标记录的标志位为1,则终止所述依次读取确定的目标记录的操作,其中1≤M≤N;
将读取到的M条目标记录合并为一条查询结果记录,并将所述查询结果记录作为查询结果。
将所述查询结果记录写入所述数据库。
结合本发明实施例的第一方面,本发明实施例的第一方面的第一种实现方式中,所述将读取到的M条目标记录合并为一条查询结果记录包括:
根据读取到的M条目标记录,生成查询结果记录,其中所述查询结果记录的RowKey为所述目标RowKey,所述查询结果记录的标志位为1。
结合本发明实施例的第一方面或第一方面的第一种实现方式,本发明实施例的第一方面的第二种实现方式中,所述目标记录还包括时间戳和/或版本号,所述时间戳用于表示所述目标记录的生成时间,所述版本号用于表示所述目标记录的新旧;
所述按照由新到旧的顺序,依次读取确定的目标记录包括:根据所述N条目标记录的时间戳和/或版本号,按照由新到旧的顺序,依次读取确定的目标记录。
本发明实施例的第二方面提供了一种文件合并方法,适用于日志结构的合并树LSM-Tree数据库,包括:
确定待合并的P个旧文件,其中,每个所述旧文件包括一条或多条旧记录,每条旧记录包括标志位和用于标识所述旧记录的RowKey,其中,所述标志位的取值包括0或1,其中,P为不小于2的整数;
将所述P个旧文件合并为一个新文件,其中,所述新文件包括Q条新记录,每条新记录包括标志位和用于标识所述新记录的RowKey,所述Q条新记录的Q个RowKey为所述P个旧文件的RowKey的并集;其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则所述第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则所述第R条新记录的标志位为0,其中,Q≥1,1≤R≤Q。
结合本发明实施例的第二方面,本发明实施例的第二方面的第一种实现方式中,所述将所述P个旧文件合并为一个新文件包括:
确定所述新文件中待确定的第R条新记录的RowKey,其中,1≤R≤Q;
按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位;
若读取的第S个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位为1,则确定所述新文件中第R条新记录的标志位为1,并终止所述按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位的步骤,其中,1≤S≤P;
若读取的所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位均为0,则确定所述新文件中第R条新记录的标志位为0。
结合本发明实施例的第二方面或第二方面的第一种实现方式,本发明实施例的第二方面的第二种实现方式中,所述方法还包括:
在将P个旧文件合并为一个新文件后,删除所述P个旧文件。
本发明实施例的第三方面提供了一种查询装置,适用于日志结构的合并树LSM-Tree数据库,包括:
指令接收模块,用于接收查询指令,所述查询指令中包括待查找的目标RowKey;
记录确定模块,用于确定所述目标RowKey对应的N条目标记录,其中,所述N条目标记录包括所述目标RowKey对应的初始目标记录,和/或用于更新所述初始目标记录的更新目标记录,和/或所述目标RowKey对应的查询结果记录,每条所述目标记录包括标志位,其中,初始目标记录和查询结果记录的标识位为1,更新目标记录的标志位为0;
记录读取模块,用于按照由新到旧的顺序,依次读取确定的目标记录;
若读取的第M条目标记录的标志位为1,则所述记录读取模块终止所述依次读取确定的目标记录的操作,其中1≤M≤N;
记录合并模块,用于将读取到的M条目标记录合并为一条查询结果记录,并将所述查询结果记录作为查询结果。
结果写入模块,用于将所述查询结果记录写入所述数据库。
结合本发明实施例的第三方面,本发明实施例的第三方面的第一种实现方式中,所述记录合并模块具体用于:
根据读取到的M条目标记录,生成查询结果记录,并将所述查询结果记录作为查询结果,其中所述查询结果记录的RowKey为所述目标RowKey,所述查询结果记录的标志位为1。
结合本发明实施例的第三方面或第三方面的第一种实现方式,本发明实施例的第三方面的第二种实现方式中,所述目标记录还包括时间戳和/或版本号,所述时间戳用于表示所述目标记录的生成时间,所述版本号用于表示所述目标记录的新旧;
所述记录读取模块具体用于:根据所述N条目标记录的时间戳和/或版本号,按照由新到旧的顺序,依次读取确定的目标记录。
本发明实施例的第四方面提供了一种文件合并装置,适用于日志结构的合并树LSM-Tree数据库,包括:
文件确定模块,用于确定待合并的P个旧文件,其中,每个所述旧文件包括一条或多条旧记录,每条旧记录包括标志位和用于标识所述旧记录的RowKey,其中,所述标志位的取值包括0或1,其中,P为不小于2的整数;
文件合并模块,用于将所述P个旧文件合并为一个新文件,其中,所述新文件包括Q条新记录,每条新记录包括标志位和用于标识所述新记录的RowKey,所述Q条新记录的Q个RowKey为所述P个旧文件的RowKey的并集;其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则所述第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则所述第R条新记录的标志位为0,其中,Q≥1,1≤R≤Q。
结合本发明实施例的第四方面,本发明实施例的第四方面的第一种实现方式中,所述文件合并模块具体用于:
确定所述新文件中待确定的第R条新记录的RowKey,其中,1≤R≤Q;
按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位;
若读取的第S个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位为1,则确定所述新文件中第R条新记录的标志位为1,并终止所述按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位的步骤,其中,1≤S≤P;
若读取的所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位均为0,则确定所述新文件中第R条新记录的标志位为0。
结合本发明实施例的第四方面或第四方面的第一种实现方式,本发明实施例的第四方面的第二种实现方式中,所述装置还包括:
文件删除模块,用于在将P个旧文件合并为一个新文件后,删除所述P个旧文件。
本发明实施例中,查询装置接收查询指令;确定目标RowKey对应的N条目标记录;按照由新到旧的顺序,依次读取确定的目标记录;若查询装置读取到第M条目标记录时,该条目标记录的标志位为1,则终止依次读取确定的目标记录的操作。将读取到的M条目标记录合并为一条查询结果记录,并将查询结果记录作为查询结果;将查询结果记录写入数据库。由于查询结果记录的标志位为1,这样当查询装置再次查找目标RowKey时,只需要按照数据库中的目标RowKey对应的目标记录的生产时间顺序,依次读取到最新生成的查询结果记录即可,生成该查询结果记录的N条目标记录无需被读取。与现有技术中,查询装置需要读取目标RowKey对应的所有的目标记录相比,本实施例提供的查询方法可以减少读取的文件的数量,节约了查询时间和数据库的资源,提高了查询效率。
附图说明
图1为本发明实施例中查询方法一个实施例流程图;
图2为本发明实施例中文件合并方法一个实施例流程图;
图3为本发明实施例中查询装置一个实施例结构图;
图4为本发明实施例中文件合并装置一个实施例结构图;
图5为本发明实施例中查询装置或文件合并装置一个实施例结构图。
具体实施方式
本发明实施例提供了一种查询方法,用于提升LSM-Tree数据库的性能。本发明实施例还提供了相关的文件合并方法以及相关装置,以下将分别进行描述。
现阶段的技术中,基于LSM-Tree结构的数据库(以下简称LSM-Tree数据库)中的文件结构请参阅表1(a)。其中,表1(a)仅为LSM-Tree数据库中文件的逻辑结构,其底层文件可以为其它形式,此处不做限定。
表1(a)
表1(a)中每行对应文件File A中的一条记录,如表1(a)所示,每条记录包括主键(RowKey)与键值(Value)。RowKey用于在File A中唯一标识该条记录,Value用于记录具体的数值。每条记录还可以包括其他内容,如时间戳、版本号、数据类型等,此处不做限定。
本发明实施例对LSM-Tree数据库中的文件结构做了细微的修改,具体的,为每条数据添加了一个标志位(Flag),标志位的取值可以为0或1。本发明实施例中LSM-Tree数据库中的文件结构请参阅表1(b)。其中,表1(b)仅为本发明实施例中LSM-Tree数据库中文件的逻辑结构,其底层文件可以为其它形式,此处不做限定。
表1(b)
表1(b)中每行对应文件File A中的一条记录,如表1(b)所示,每条记录包括RowKey、标志位与Value。RowKey用于在File A中唯一标识该条记录,标志位具有0、1两种取值,Value用于记录具体的数值。每条记录还可以包括其他内容,如时间戳、版本号、或数据类型等,此处不做限定。
其中,标志位的赋值可以遵循如下规律:以RowKey 1为例,当数据库初始生成RowKey值为RowKey 1的初始记录时,该条初始记录的标志位取值为1;此后若生成RowKey 1的更新记录来对该条初始记录做更新,则RowKey 1的更新记录的标志位为0;当从数据库中查询RowKey 1对应的记录时,数据库会若将RowKey 1对应的多条记录进行合并,得到查询结果记录,其中查询结果记录的标志位为1。
本发明实施例基于表1(b)所示的文件结构,以及上述标志位的赋值规律,提出了一种查询方法,用于查询目标RowKey。其基本流程请参阅图1,包括:
101、接收查询指令;
LSM-Tree数据库包括查询装置,用于查询数据。本实施例中,查询装置接收查询指令。其中,查询指令中包括待查找的目标RowKey;
102、确定目标RowKey对应的N条目标记录。
查询装置确定目标RowKey对应的N条目标记录,并将该N条目标记录按照由新到旧的顺序进行排序。其中,该N条目标记录包括目标RowKey对应的初始目标记录、和/或用于更新该初始目标记录的更新目标记录,和/或该目标RowKey对应的查询结果记录。其中,该N条目标记录可以为内存中的目标记录,也可以为磁盘文件中的目标记录,本实施例中不做限定。
103、按照由新到旧的顺序,依次读取确定的目标记录;
查询装置将该N条目标记录按照由新到旧的顺序,依次读取确定的目标记录。
特别的,本步骤并不要求查询装置读取全部的N条目标记录。若查询装置读取到第M条目标记录时,该条目标记录的标志位为1,则终止依次读取确定的目标记录的操作。可以理解的,1≤M≤N。从理论上来看,第M条目标记录可以为任意一条标志位为1的目标记录,但为了节约数据库的读资源,简化查询装置的操作,优选的,第M条目标记录可以为查询装置读取到的第1条标志位为1的目标记录。
104、将读取到的M条目标记录合并为一条查询结果记录,并将查询结果记录作为查询结果。
查询装置将读取到的M条目标记录合并为一条目标RowKey对应的查询结果记录,并将该查询结果记录作为查询指令对应的查询结果。
可以理解的,查询结果记录的RowKey应为目标RowKey,查询结果记录的标志位的取值为1。
105、将查询结果记录写入数据库。
查询装置将得到的目标RowKey的查询结果记录写入数据库。其中,查询装置既可以将查询结果记录写入数据库的内存,也可以将查询结果记录写入数据库的磁盘,本实施例中不做限定。
值得指出的是,由于步骤105中最新生成的查询结果记录的标志位为1,这样当查询装置再次执行步骤101至105查找目标RowKey时,只需要按照数据库中的RowKey对应的目标记录的生产时间顺序,依次读取到该条最新生成的查询结果记录即可,生成该查询结果记录的N条目标记录无需被读取。
本实施例中,查询装置接收查询指令;确定目标RowKey对应的N条目标记录;按照由新到旧的顺序,依次读取确定的目标记录;若查询装置读取到第M条目标记录时,该条目标记录的标志位为1,则终止依次读取确定的目标记录的操作;将读取到的M条目标记录合并为一条查询结果记录,并将查询结果记录作为查询结果;将查询结果记录写入数据库。由于查询结果记录的标志位为1,这样当查询装置再次查找目标RowKey时,只需要按照数据库中的目标RowKey对应的目标记录的生产时间顺序,依次读取到最新生成的查询结果记录即可,生成该查询结果记录的N条目标记录无需被读取。与现有技术中,查询装置需要读取目标RowKey对应的所有的目标记录相比,本实施例提供的查询方法可以减少读取的文件的数量,节约了查询时间和数据库的资源,提高了查询效率。
其中,LSM-Tree数据库中的每条记录可以包括时间戳,时间戳用于表示该条记录的生成时间。步骤103中,查询装置可以根据该N条目标记录的时间戳,来将N条目标记录按照由新到旧的顺序依次读取确定的目标记录。步骤104中,查询结果记录也可以包括时间戳,该时间戳用于表示该查询结果记录的生成时间。可以理解的,该查询结果记录的时间戳的时间应晚于N条目标记录的时间戳的时间。
其中,LSM-Tree数据库中的每条记录可以包括版本号,版本号用于表示该条记录的版本的新旧。步骤103中,查询装置可以根据该N条目标记录的版本号,来按照由新到旧的顺序依次读取确定的目标记录。步骤104中,查询结果记录也可以包括版本号,该版本号用于表示该查询结果记录的新旧。可以理解的,该查询结果记录的版本号应新于该N条目标记录的版本号。
具有相同RowKey对应的记录可能存在于多个不同的文件中。随着文件的不断增多,每次查询RowKey时都需要从多个文件中读取记录进行合并。数据库运行的时间越久,数据库中的文件就越多,导致查询的效率就越低。现阶段的技术中常常将多个旧文件合并为一个新文件,然后删除该多个旧文件,已达到减少文件个数,提高查询效率的目的。由于本申请中的文件结构在现有技术的基础上增加了一个标志位,因此在文件合并时,需要确定合并后的文件中,每条记录的标志位。
因此,本发明实施例还提供了一种文件合并方法,用于详细解释基于表1(b)所示的文件结构的文件在合并时如何确定标志位。其基本流程请参阅图2,包括:
201、确定待合并的P个旧文件,其中,每个旧文件包括一条或多条旧记录,每条旧记录包括标志位和用于标识该条旧记录的RowKey,其中,标志位的取值包括0或1,其中,P为不小于2的整数。其中,该P个旧文件可以位于数据库的磁盘中。
202、将该P个旧文件合并为一个新文件。其中,该新文件包括Q条新记录,每条新记录包括标志位和用于标识该条新记录的RowKey,Q条新记录的Q个RowKey为该P个旧文件的RowKey的并集;其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则第R条新记录的标志位为0。其中,Q≥1,1≤R≤Q。其中,该新文件可以位于数据库的磁盘中。
本实施例基于表1(b)所示的文件结构提供了一种文件合并方法,能够在文件合并时,确定合并后的新文件中每条新记录的标志位。其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则第R条新记录的标志位为0。这样就确定了新文件中每条新记录的标志位,使得新文件的结构也满足表1(b)所示的文件结构,保证了数据库的文件结构的统一性。
优选的,步骤202中,文件合并装置具体可以通过如下方式将该P个旧文件合并为一个新文件:首先确定新文件中待确定的第R条新记录的RowKey,其中,1≤R≤Q;然后按照文件由新到旧的顺序,依次确定在该P个旧文件中,第R条新记录的RowKey所对应的旧记录的标志位;若读取的第S个旧文件中,第R条新记录的RowKey所对应的旧记录的标志位为1,则确定新文件中第R条新记录的标志位为1,并终止按照文件由新到旧的顺序依次确定在P个旧文件中第R条新记录的RowKey所对应的旧记录的标志位的步骤,其中,1≤S≤P;若读取的P个旧文件中,第R条新记录的RowKey所对应的旧记录的标志位全部为0,则确定新文件中第R条新记录的标志位为0。当R依次取遍1至Q中的所有整数后,就可以确定新文件中每条新记录的标志位。通过这样的方法,使得文件合并装置在确定第R条新记录的标志位时,只需要读取到第R条新记录的RowKey所对应的旧记录中,第1条标志位为1的旧记录即可,无需读取全部P个文件,减少了读取的文件个数,缩短了文件合并时间。
优选的,本实施例中在在将P个旧文件合并为一个新文件后,还可以删除该P个旧文件,以减少数据库的文件个数。
为了便于理解上述实施例,下面将以一个具体的应用场景为例进行描述。
LSM-Tree数据库的查询装置接收查询指令,该查询指令中包括待查找的目标RowKey为RowKey 20。
查询装置确定LSM-Tree数据库中,RowKey 20对应的所有目标记录。其中,查询装置在文件File 1中得到了RowKey 20的初始记录,在文件File 2、File 3、File 4中得到了RowKey 20的3条更新记录。查询装置将该4条记录按照生成时间进行排序,File 4的更新记录的初始时间最晚,File 2、File 3次之,File 1的初始记录的生成时间最早。其中,File 1中RowKey 20对应的的标志位为1,File 2、File 3、File 4中RowKey 20对应的的标志位为0。
查询装置依次读取RowKey 20对应的目标记录,直到读取到的目标记录的标志位为1为止。由于File 2、File 3、File 4中RowKey 20对应的目标记录的标志位为0,因此查询装置依次读取File 4、File 3、File 2、File 1中RowKey 20对应的目标记录。
查询装置将File 4、File 3、File 2、File 1中RowKey 20对应的目标记录合并为一条查询结果记录,并将该条查询结果记录作为查询结果。其中,该条查询结果记录的RowKey为RowKey 20,标志位为1。
查询装置将该条查询结果记录写入数据库的文件File 5中。
此后,数据库又生成了两条用于更新RowKey 20对应的记录的更新记录,分别保存在文件File 6、File 7中。其中,这两条更新记录的标志位为0。
当查询装置再次接收到查询指令查找RowKey 20时,查询装置确定RowKey 20对应的所有目标记录。具体的,在文件File 1中得到了RowKey 20的初始记录,在文件File 2、File 3、File 4、File 6、File 7中得到了RowKey 20的5条更新记录,在文件File 5中得到了RowKey 20的查询结果记录。查询装置将该7条记录按照生成时间进行排序,排序次序为File 7、File 6、File 5、File 4、File 3、File 2、File 1。
查询装置依次读取RowKey 20对应的目标记录,直到读取到的目标记录的标志位为1为止。由于File 7、File 6中RowKey 20对应的目标记录的标志位为0,File 5中RowKey20对应的目标记录的标志位为1,因此查询装置依次读取File 7、File 6、File 5中RowKey20对应的目标记录。
查询装置将File 7、File 6、File 5中RowKey 20对应的目标记录合并为一条新的查询结果记录,其中,该条新的查询结果记录的RowKey为RowKey 20,标志位为1。
查询装置将该条新的查询结果记录写入数据库的文件File 8中。
LSM-Tree数据库的文件合并装置确定待合并的三个文件File 9、File 10和File11,请参阅表2(a)、表2(b)与表2(c)。其中,File 9中包括3条记录,其RowKey分别为RowKey1、RowKey 2和RowKey 3;File 10中包括3条记录,其RowKey分别为RowKey 2、RowKey 3和RowKey 4;File 11中包括3条记录,其RowKey分别为RowKey 3、RowKey 4和RowKey 5。其中文件File11最新,File 9最旧。
文件合并装置将File 9、File 10和File 11合并为File 12。其中,File 12的RowKey为File 9、File 10和File 11的RowKey的并集:RowKey 1、RowKey 2、RowKey 3、RowKey 4和RowKey5。其中,由于RowKey 1在File 11和File 10中不存在,在File 9中的标志位为0,,因此在File 12中标志位为0;RowKey 2在File 11中不存在,在File 10中的标志位为0,在File 9中标志位为1,因此在File 12中标志位为1;RowKey 3在File 11、File 10、File 9中的标志位全部为0,因此在File 12中标志位为0;RowKey 4在File 11中的标志位为1,因此文件合并装置不再读取File 10与File 9中RowKey 4对应的记录,直接确定RowKey 4在File 12中标志位为1;RowKey 5在File 11中的标志位为1,因此文件合并装置不再读取File 10与File 9中RowKey 5对应的记录,直接确定RowKey 5在File 12中标志位为1。合并后得到的文件File 12请参阅表2(d)。其中,File 12中的各条记录的Value为合并后的Value值。
表2(a)
表2(b)
表2(c)
表2(d)
本发明实施例还提供了相关的查询装置,用于实现图1所示的查询方法。其基本结构请参阅图3,包括:
指令接收模块301,用于接收查询指令,查询指令中包括待查找的目标RowKey;
记录确定模块302,用于确定目标RowKey对应的N条目标记录,其中,该N条目标记录包括目标RowKey对应的初始目标记录,和/或用于更新初始目标记录的更新目标记录,和/或目标RowKey对应的查询结果记录,每条目标记录包括标志位,其中,初始目标记录和查询结果记录的标识位为1,更新目标记录的标志位为0;
记录读取模块303,用于按照由新到旧的顺序,依次读取确定的目标记录;
若读取的第M条目标记录的标志位为1,则记录读取模块303终止依次读取确定的目标记录的操作,其中1≤M≤N;
记录合并模块304,用于将读取到的M条目标记录合并为一条查询结果记录,并将该查询结果记录作为查询结果。
结果写入模块305,用于将查询结果记录写入所述数据库。
本实施例中,指令接收模块301接收查询指令;记录确定模块302确定目标RowKey对应的N条目标记录;记录读取模块303按照由新到旧的顺序,依次读取确定的目标记录;若查询装置读取到第M条目标记录时,该条目标记录的标志位为1,则终止依次读取确定的目标记录的操作。记录合并模块304将读取到的M条目标记录合并为一条查询结果记录,并将查询结果记录作为查询结果;结果写入模块305将查询结果记录写入数据库。由于查询结果记录的标志位为1,这样当查询装置再次查找目标RowKey时,只需要按照数据库中的目标RowKey对应的目标记录的生产时间顺序,依次读取到最新生成的查询结果记录即可,生成该查询结果记录的N条目标记录无需被读取。与现有技术中,查询装置需要读取目标RowKey对应的所有的目标记录相比,本实施例提供的查询方法可以减少读取的文件的数量,节约了查询时间和数据库的资源,提高了查询效率。
优选的,作为本发明的又一个实施例,记录合并模块304具体用于:
根据读取到的M条目标记录,生成查询结果记录,并将查询结果记录作为查询结果,其中查询结果记录的RowKey为目标RowKey,查询结果记录的标志位为1。
优选的,作为本发明的又一个实施例,每条目标记录还包括时间戳,该时间戳用于表示所述目标记录的生成时间。记录读取模块303具体用于:根据所述N条目标记录的时间戳,按照由新到旧的顺序,依次读取确定的目标记录。
优选的,作为本发明的又一个实施例,每条记录可以包括版本号,版本号用于表示该条记录的版本的新旧。记录读取模块303可以根据该N条目标记录的版本号,来按照由新到旧的顺序依次读取确定的目标记录。查询结果记录也可以包括版本号,该版本号用于表示该查询结果记录的新旧。可以理解的,该查询结果记录的版本号应新于该N条目标记录的版本号。
本发明实施例还提供了相关的文件合并装置,用于实现图2所示的文件合并方法。其基本结构请参阅图4,包括:
文件确定模块401,用于确定待合并的P个旧文件,其中,每个所述旧文件包括一条或多条旧记录,每条旧记录包括标志位和用于标识所述旧记录的RowKey,其中,所述标志位的取值包括0或1,其中,P为不小于2的整数;
文件合并模块402,用于将所述P个旧文件合并为一个新文件,其中,所述新文件包括Q条新记录,每条新记录包括标志位和用于标识所述新记录的RowKey,所述Q条新记录的Q个RowKey为所述P个旧文件的RowKey的并集;其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则所述第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则所述第R条新记录的标志位为0,其中,Q≥1,1≤R≤Q。
本实施例基于表1(b)所示的文件结构提供了一种文件合并装置,能够在文件合并时,确定合并后的新文件中每条新记录的标志位。其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则第R条新记录的标志位为0。这样就确定了新文件中每条新记录的标志位,使得新文件的结构也满足表1(b)所示的文件结构,保证了数据库的文件结构的统一性。
优选的,作为本发明的又一个实施例,文件合并模块402具体可以通过如下方式将该P个旧文件合并为一个新文件:首先确定新文件中待确定的第R条新记录的RowKey,其中,1≤R≤Q;然后按照文件由新到旧的顺序,依次确定在该P个旧文件中,第R条新记录的RowKey所对应的旧记录的标志位;若读取的第S个旧文件中,第R条新记录的RowKey所对应的旧记录的标志位为1,则确定新文件中第R条新记录的标志位为1,并终止按照文件由新到旧的顺序依次确定在P个旧文件中第R条新记录的RowKey所对应的旧记录的标志位的步骤,其中,1≤S≤P;若读取的P个旧文件中,第R条新记录的RowKey所对应的旧记录的标志位全部为0,则确定新文件中第R条新记录的标志位为0。当R依次取遍1至Q中的所有整数后,就可以确定新文件中每条新记录的标志位。通过这样的方法,使得文件合并模块402在确定第R条新记录的标志位时,只需要读取到第R条新记录的RowKey所对应的旧记录中,第1条标志位为1的旧记录即可,无需读取全部P个文件,减少了读取的文件个数,缩短了文件合并时间。
优选的,作为本发明的又一个实施例,文件合并装置还可以包括文件删除模块403,用于在将P个旧文件合并为一个新文件后,删除该P个旧文件。可以理解的,文件删除模块403为可选模块。
为了便于理解上述实施例,下面将以一个具体的应用场景为例进行描述。
LSM-Tree数据库的查询装置的指令接收模块301接收查询指令,该查询指令中包括待查找的目标RowKey为RowKey 20。
记录确定模块302确定LSM-Tree数据库中,RowKey 20对应的所有目标记录。其中,记录确定模块302在文件File 1中得到了RowKey 20的初始记录,在文件File 2、File 3、File 4中得到了RowKey 20的3条更新记录。记录确定模块302将该4条记录按照生成时间进行排序,File 4的更新记录的初始时间最晚,File 2、File 3次之,File 1的初始记录的生成时间最早。其中,File 1中RowKey 20对应的的标志位为1,File 2、File 3、File 4中RowKey 20对应的的标志位为0。
记录读取模块303依次读取RowKey 20对应的目标记录,直到读取到的目标记录的标志位为1为止。由于File 2、File 3、File 4中RowKey 20对应的目标记录的标志位为0,因此记录读取模块303依次读取File 4、File 3、File 2、File 1中RowKey 20对应的目标记录。
记录合并模块304将File 4、File 3、File 2、File 1中RowKey 20对应的目标记录合并为一条查询结果记录,并将该条查询结果记录作为查询结果。其中,该条查询结果记录的RowKey为RowKey 20,标志位为1。
结果写入模块305将该条查询结果记录写入数据库的文件File 5中。
此后,数据库又生成了两条用于更新RowKey 20对应的记录的更新记录,分别保存在文件File 6、File 7中。其中,这两条更新记录的标志位为0。
当指令接收模块301再次接收到查询指令查找RowKey 20时,记录确定模块302确定RowKey 20对应的所有目标记录。具体的,在文件File 1中得到了RowKey 20的初始记录,在文件File 2、File 3、File 4、File 6、File 7中得到了RowKey 20的5条更新记录,在文件File 5中得到了RowKey 20的查询结果记录。记录确定模块302将该7条记录按照生成时间进行排序,排序次序为File 7、File 6、File 5、File 4、File 3、File 2、File 1。
记录读取模块303依次读取RowKey 20对应的目标记录,直到读取到的目标记录的标志位为1为止。由于File 7、File 6中RowKey 20对应的目标记录的标志位为0,File 5中RowKey 20对应的目标记录的标志位为1,因此记录读取模块303依次读取File 7、File 6、File 5中RowKey 20对应的目标记录。
记录合并模块304将File 7、File 6、File 5中RowKey 20对应的目标记录合并为一条新的查询结果记录,其中,该条新的查询结果记录的RowKey为RowKey 20,标志位为1。
结果写入模块305将该条新的查询结果记录写入数据库的文件File 8中。
LSM-Tree数据库的文件合并装置的文件确定模块401确定待合并的三个文件File9、File 10和File 11,请参阅表2(a)、表2(b)与表2(c)。其中,File 9中包括3条记录,其RowKey分别为RowKey 1、RowKey 2和RowKey 3;File 10中包括3条记录,其RowKey分别为RowKey 2、RowKey 3和RowKey 4;File 11中包括3条记录,其RowKey分别为RowKey 3、RowKey 4和RowKey 5。其中文件File11最新,File 9最旧。
文件合并模块402将File 9、File 10和File 11合并为File 12。其中,File 12的RowKey为File 9、File 10和File 11的RowKey的并集:RowKey 1、RowKey 2、RowKey 3、RowKey 4和RowKey5。其中,由于RowKey 1在File 11和File 10中不存在,在File 9中的标志位为0,,因此在File 12中标志位为0;RowKey 2在File 11中不存在,在File 10中的标志位为0,在File 9中标志位为1,因此在File 12中标志位为1;RowKey 3在File 11、File 10、File 9中的标志位全部为0,因此在File 12中标志位为0;RowKey 4在File 11中的标志位为1,因此文件合并模块402不再读取File 10与File 9中RowKey 4对应的记录,直接确定RowKey 4在File 12中标志位为1;RowKey 5在File 11中的标志位为1,因此文件合并模块402不再读取File 10与File 9中RowKey 5对应的记录,直接确定RowKey 5在File 12中标志位为1。合并后得到的文件File 12请参阅表2(d)。其中,File 12中的各条记录的Value为合并后的Value值。
上面从单元化功能实体的角度对本发明实施例中的查询装置进行了描述,下面从硬件处理的角度对本发明实施例中的查询装置进行描述,请参阅图5,本发明实施例中的查询装置500另一实施例包括:
输入装置501、输出装置502、处理器503和存储器504(其中查询装置500中的处理器503的数量可以一个或多个,图5中以一个处理器503为例)。在本发明的一些实施例中,输入装置501、输出装置502、处理器503和存储器504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
其中,通过调用存储器504存储的操作指令,处理器503用于执行如下步骤:
接收查询指令,所述查询指令中包括待查找的目标RowKey;
确定所述目标RowKey对应的N条目标记录,其中,所述N条目标记录包括所述目标RowKey对应的初始目标记录,和/或用于更新所述初始目标记录的更新目标记录,和/或所述目标RowKey对应的查询结果记录,每条所述目标记录包括标志位,其中,初始目标记录和查询结果记录的标识位为1,更新目标记录的标志位为0;
按照由新到旧的顺序,依次读取确定的目标记录;
若读取的第M条目标记录的标志位为1,则终止所述依次读取确定的目标记录的操作,其中1≤M≤N;
将读取到的M条目标记录合并为一条查询结果记录,并将所述查询结果记录作为查询结果。
将所述查询结果记录写入所述数据库。
本发明的一些实施例中,处理器503还执行如下步骤:
根据读取到的M条目标记录,生成查询结果记录,其中所述查询结果记录的RowKey为所述目标RowKey,所述查询结果记录的标志位为1。
本发明的一些实施例中所述目标记录还包括时间戳和/或版本号,所述时间戳用于表示所述目标记录的生成时间,所述版本号用于表示所述目标记录的新旧,处理器503还执行如下步骤:
根据所述N条目标记录的时间戳和/或版本号,将所述N条目标记录按照生成时间由新到旧的顺序进行排序。
上面从单元化功能实体的角度对本发明实施例中的文件合并装置进行了描述,下面从硬件处理的角度对本发明实施例中的文件合并装置进行描述,请仍参阅图5,本发明实施例中的文件合并装置500另一实施例包括:
输入装置501、输出装置502、处理器503和存储器504(其中文件合并装置500中的处理器503的数量可以一个或多个,图5中以一个处理器503为例)。在本发明的一些实施例中,输入装置501、输出装置502、处理器503和存储器504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
其中,通过调用存储器504存储的操作指令,处理器503用于执行如下步骤:
确定待合并的P个旧文件,其中,每个所述旧文件包括一条或多条旧记录,每条旧记录包括标志位和用于标识所述旧记录的RowKey,其中,所述标志位的取值包括0或1,其中,P为不小于2的整数;
将所述P个旧文件合并为一个新文件,其中,所述新文件包括Q条新记录,每条新记录包括标志位和用于标识所述新记录的RowKey,所述Q条新记录的Q个RowKey为所述P个旧文件的RowKey的并集;其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则所述第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则所述第R条新记录的标志位为0,其中,Q≥1,1≤R≤Q。
本发明的一些实施例中,处理器503还执行如下步骤:
确定所述新文件中待确定的第R条新记录的RowKey,其中,1≤R≤Q;
按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位;
若读取的第S个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位为1,则确定所述新文件中第R条新记录的标志位为1,并终止所述按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位的步骤,其中,1≤S≤P;
若读取的所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位均为0,则确定所述新文件中第R条新记录的标志位为0。
本发明的一些实施例中,处理器503还执行如下步骤:
在将P个旧文件合并为一个新文件后,删除所述P个旧文件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种查询方法,适用于日志结构的合并树LSM-Tree数据库,其特征在于,包括:
接收查询指令,所述查询指令中包括待查找的目标主键RowKey;
确定所述目标RowKey对应的N条目标记录,其中,所述N条目标记录包括所述目标RowKey对应的初始目标记录,和/或用于更新所述初始目标记录的更新目标记录,和/或所述目标RowKey对应的查询结果记录,每条所述目标记录包括标志位,其中,初始目标记录和查询结果记录的标识位为1,更新目标记录的标志位为0;
按照由新到旧的顺序,依次读取确定的目标记录;
若读取的第M条目标记录的标志位为1,则终止所述依次读取确定的目标记录的操作,其中1≤M≤N;
将读取到的M条目标记录合并为一条查询结果记录,并将所述查询结果记录作为查询结果;
将所述查询结果记录写入所述数据库。
2.根据权利要求1所述的查询方法,其特征在于,所述将读取到的M条目标记录合并为一条查询结果记录包括:
根据读取到的M条目标记录,生成查询结果记录,其中所述查询结果记录的RowKey为所述目标RowKey,所述查询结果记录的标志位为1。
3.根据权利要求1或2所述的查询方法,其特征在于,所述目标记录还包括时间戳和/或版本号,所述时间戳用于表示所述目标记录的生成时间,所述版本号用于表示所述目标记录的新旧;
所述按照由新到旧的顺序,依次读取确定的目标记录包括:根据所述N条目标记录的时间戳和/或版本号,按照由新到旧的顺序,依次读取确定的目标记录。
4.一种文件合并方法,适用于日志结构的合并树LSM-Tree数据库,其特征在于,包括:
确定待合并的P个旧文件,其中,每个所述旧文件包括一条或多条旧记录,每条旧记录包括标志位和用于标识所述旧记录的主键RowKey,其中,所述标志位的取值包括0或1,其中,P为不小于2的整数;
将所述P个旧文件合并为一个新文件,其中,所述新文件包括Q条新记录,每条新记录包括标志位和用于标识所述新记录的RowKey,所述Q条新记录的Q个RowKey为所述P个旧文件的RowKey的并集;其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则所述第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则所述第R条新记录的标志位为0,其中,Q≥1,1≤R≤Q。
5.根据权利要求4所述的文件合并方法,其特征在于,所述将所述P个旧文件合并为一个新文件包括:
确定所述新文件中待确定的第R条新记录的RowKey,其中,1≤R≤Q;
按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位;
若读取的第S个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位为1,则确定所述新文件中第R条新记录的标志位为1,并终止所述按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位的步骤,其中,1≤S≤P;
若读取的所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位均为0,则确定所述新文件中第R条新记录的标志位为0。
6.根据权利要求4或5所述的文件合并方法,其特征在于,所述方法还包括:
在将P个旧文件合并为一个新文件后,删除所述P个旧文件。
7.一种查询装置,适用于日志结构的合并树LSM-Tree数据库,其特征在于,包括:
指令接收模块,用于接收查询指令,所述查询指令中包括待查找的目标主键RowKey;
记录确定模块,用于确定所述目标RowKey对应的N条目标记录,其中,所述N条目标记录包括所述目标RowKey对应的初始目标记录,和/或用于更新所述初始目标记录的更新目标记录,和/或所述目标RowKey对应的查询结果记录,每条所述目标记录包括标志位,其中,初始目标记录和查询结果记录的标识位为1,更新目标记录的标志位为0;
记录读取模块,用于按照由新到旧的顺序,依次读取确定的目标记录;
若读取的第M条目标记录的标志位为1,则所述记录读取模块终止所述依次读取确定的目标记录的操作,其中1≤M≤N;
记录合并模块,用于将读取到的M条目标记录合并为一条查询结果记录,并将所述查询结果记录作为查询结果;
结果写入模块,用于将所述查询结果记录写入所述数据库。
8.根据权利要求7所述的查询装置,其特征在于,所述记录合并模块具体用于:
根据读取到的M条目标记录,生成查询结果记录,并将所述查询结果记录作为查询结果,其中所述查询结果记录的RowKey为所述目标RowKey,所述查询结果记录的标志位为1。
9.根据权利要求7或8所述的查询装置,其特征在于,所述目标记录还包括时间戳和/或版本号,所述时间戳用于表示所述目标记录的生成时间,所述版本号用于表示所述目标记录的新旧;
所述记录读取模块具体用于:根据所述N条目标记录的时间戳和/或版本号,按照由新到旧的顺序,依次读取确定的目标记录。
10.一种文件合并装置,适用于日志结构的合并树LSM-Tree数据库,其特征在于,包括:
文件确定模块,用于确定待合并的P个旧文件,其中,每个所述旧文件包括一条或多条旧记录,每条旧记录包括标志位和用于标识所述旧记录的主键RowKey,其中,所述标志位的取值包括0或1,其中,P为不小于2的整数;
文件合并模块,用于将所述P个旧文件合并为一个新文件,其中,所述新文件包括Q条新记录,每条新记录包括标志位和用于标识所述新记录的RowKey,所述Q条新记录的Q个RowKey为所述P个旧文件的RowKey的并集;其中,若第R条新记录的RowKey对应的旧记录中,存在标志位为1的旧记录,则所述第R条新记录的标志位为1,若第R条新记录的RowKey对应的旧记录的标志位全部为0,则所述第R条新记录的标志位为0,其中,Q≥1,1≤R≤Q。
11.根据权利要求10所述的文件合并装置,其特征在于,所述文件合并模块具体用于:
确定所述新文件中待确定的第R条新记录的RowKey,其中,1≤R≤Q;
按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位;
若读取的第S个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位为1,则确定所述新文件中第R条新记录的标志位为1,并终止所述按照由新到旧的顺序依次确定在所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位的步骤,其中,1≤S≤P;
若读取的所述P个旧文件中,所述第R条新记录的RowKey所对应的旧记录的标志位均为0,则确定所述新文件中第R条新记录的标志位为0。
12.根据权利要求10或11所述的文件合并装置,其特征在于,所述装置还包括:
文件删除模块,用于在将P个旧文件合并为一个新文件后,删除所述P个旧文件。
CN201510148521.6A 2015-03-31 2015-03-31 一种查询方法、文件合并方法与相关装置 Active CN106156070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510148521.6A CN106156070B (zh) 2015-03-31 2015-03-31 一种查询方法、文件合并方法与相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510148521.6A CN106156070B (zh) 2015-03-31 2015-03-31 一种查询方法、文件合并方法与相关装置

Publications (2)

Publication Number Publication Date
CN106156070A CN106156070A (zh) 2016-11-23
CN106156070B true CN106156070B (zh) 2019-07-12

Family

ID=57337848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510148521.6A Active CN106156070B (zh) 2015-03-31 2015-03-31 一种查询方法、文件合并方法与相关装置

Country Status (1)

Country Link
CN (1) CN106156070B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874285B (zh) * 2015-12-10 2020-06-30 ***通信集团公司 一种照片文件处理方法及终端设备
CN114677145A (zh) * 2016-12-09 2022-06-28 创新先进技术有限公司 客户***、信息处理方法和读写方法及装置
CN108628542B (zh) 2017-03-22 2021-08-03 华为技术有限公司 一种文件合并方法及控制器
CN107247729B (zh) * 2017-05-03 2021-04-27 ***股份有限公司 一种文件处理方法和装置
CN108769172A (zh) * 2018-05-21 2018-11-06 杭州有赞科技有限公司 一种数据同步方法及***
CN110716900A (zh) * 2019-10-10 2020-01-21 支付宝(杭州)信息技术有限公司 一种数据查询方法和***
CN111104403B (zh) * 2019-11-30 2022-06-07 北京浪潮数据技术有限公司 一种lsm树数据处理方法、***、设备及计算机介质
CN113495871B (zh) * 2020-04-04 2023-06-23 厦门网宿有限公司 一种基于LSM-Tree存储引擎的文件管理方法和装置
WO2021197493A1 (zh) * 2020-04-04 2021-10-07 厦门网宿有限公司 一种基于LSM-Tree存储引擎的文件管理方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593185A (zh) * 2008-05-29 2009-12-02 国际商业机器公司 利用同步进行数据恢复的方法和***
CN101751473A (zh) * 2009-12-31 2010-06-23 中兴通讯股份有限公司 一种修改记录项的查找、更新和同步方法及数据同步设备
CN102110121A (zh) * 2009-12-24 2011-06-29 阿里巴巴集团控股有限公司 一种数据处理方法及其***
CN102789475A (zh) * 2012-05-08 2012-11-21 华为技术有限公司 数据库服务器端结果集缓存的数据同步方法及装置
CN103353891A (zh) * 2013-07-05 2013-10-16 北京人大金仓信息技术股份有限公司 数据库管理***及其数据处理方法
CN104424219A (zh) * 2013-08-23 2015-03-18 华为技术有限公司 一种数据文件的管理方法及装置
CN104834700A (zh) * 2015-04-27 2015-08-12 南京邮电大学 一种基于轨迹变更的移动数据增量捕获方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593185A (zh) * 2008-05-29 2009-12-02 国际商业机器公司 利用同步进行数据恢复的方法和***
CN102110121A (zh) * 2009-12-24 2011-06-29 阿里巴巴集团控股有限公司 一种数据处理方法及其***
CN101751473A (zh) * 2009-12-31 2010-06-23 中兴通讯股份有限公司 一种修改记录项的查找、更新和同步方法及数据同步设备
CN102789475A (zh) * 2012-05-08 2012-11-21 华为技术有限公司 数据库服务器端结果集缓存的数据同步方法及装置
CN103353891A (zh) * 2013-07-05 2013-10-16 北京人大金仓信息技术股份有限公司 数据库管理***及其数据处理方法
CN104424219A (zh) * 2013-08-23 2015-03-18 华为技术有限公司 一种数据文件的管理方法及装置
CN104834700A (zh) * 2015-04-27 2015-08-12 南京邮电大学 一种基于轨迹变更的移动数据增量捕获方法

Also Published As

Publication number Publication date
CN106156070A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN106156070B (zh) 一种查询方法、文件合并方法与相关装置
CN109034809B (zh) 区块链的生成方法、装置、区块链节点及存储介质
CN103020255B (zh) 分级存储方法和装置
CN105721629B (zh) 用户标识匹配方法和装置
CN104881466B (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN106202548A (zh) 数据存储方法、查找方法及装置
CN106874348A (zh) 文件存储和索引方法、装置及读取文件的方法
CN103810246B (zh) 一种索引创建方法和装置以及索引查询方法和装置
CN106708443A (zh) 数据读写方法及装置
CN109522332A (zh) 客户信息数据合并方法、装置、设备及可读存储介质
CN109947729A (zh) 一种实时数据分析方法及装置
CN108021333A (zh) 随机读写数据的***、装置及方法
CN105653209A (zh) 一种对象存储数据传输方法及装置
CN108268216A (zh) 数据处理方法、装置及服务器
CN109460406A (zh) 一种数据处理方法及装置
CN104346347A (zh) 数据存储方法、装置、服务器及***
CN107402982A (zh) 数据写入、数据匹配方法、装置及计算设备
CN114328632A (zh) 基于位图的用户数据分析方法、装置及计算机设备
CN109739854A (zh) 一种数据存储方法及装置
CN110209780A (zh) 一种问题模板生成方法、装置、服务器及存储介质
CN110263060B (zh) 一种erp电子附件管理方法及计算机设备
CN106682047B (zh) 一种数据导入方法以及相关装置
CN110362540A (zh) 一种数据存储、访客数获取方法及装置
CN110928923A (zh) 一种基于区块链的数据存储方法及***
CN110825953A (zh) 数据查询方法、装置和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant