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

文档序号:11829873阅读:来源:国知局

技术特征:

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个旧文件。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1