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