The embodiment of the present invention provides a data reading method, a data query method, a device and a device in a key value KV storage system. The method includes: recording the identification of multiple write records of the first write operation to the preset file of the KV storage system; writing multiple write records of the first write operation to the write operation log file of the KV storage system; and writing the first write operation to the write operation log file of the KV storage system. The first write record is written to a writable memory table in the memory of the KV storage system, and the first write record is any one of the multiple write records. The reliability of data reading is improved.
【技术实现步骤摘要】
KV存储系统中的数据读取方法、数据查询方法、装置及设备
本专利技术涉及存储
,尤其涉及一种KV存储系统中的数据读取方法、数据查询方法、装置及设备。
技术介绍
在键值(KeyValue,KV)存储系统中,数据以KV的形式进行存储。在向KV存储系统中写入数据时,批量(batch)写操作包括至少两个写记录,该批量写操作需要执行:1、生成快照snapshot版本号,将写操作的每一个写记录和快照版本号记录追加至写操作日志文件(Write-AheadLog,WAL)。2、将写操作的写记录和snapshot版本号记录插入到的可写内存表(Memtable)中,并将KV存储系统的最大快照版本号更新为该批量写操作的快照版本号。当可写内存表占用的内存达到一个上限值后,KV存储系统会将可写内存表冻结成为不可写内存表(ImmutableMemtable),并同时生成一个新的可写内存表和写操作操作日志。基于上述数据写入方法,在进行数据查询操作时,小于最大快照版本号的快照版本号对应的写记录均可以被查询到。然而,在多个写操作并行执行的过程中,在快照版本号较小的写操作正在进行数据写入时,快照版本号较大的写操作可能已经完成,并将KV存储系统的最大快照版本号更新为该较大的快照版本号,使得可以查询到快照版本号较小的、且正在执行写入的写操作的部分写记录,使得数据读取错误,导致数据读取的可靠性较差。
技术实现思路
第一方面,本专利技术实施例提供一种键值KV存储系统中的数据写入方法,在执行第一写操作时,将第一写操作的多个写记录的标识记录到所述KV存储系统的预设文件;将所述第一写操作的多个写记录写入所 ...
【技术保护点】
1.一种键值KV存储系统中的数据写入方法,其特征在于,包括:将第一写操作的多个写记录的标识记录到所述KV存储系统的预设文件;将所述第一写操作的多个写记录写入所述KV存储系统的写操作日志文件;将所述第一写操作的第一写记录写入所述KV存储系统的内存中的可写内存表,所述第一写记录为所述多个写记录中的任意一个写记录。
【技术特征摘要】
1.一种键值KV存储系统中的数据写入方法,其特征在于,包括:将第一写操作的多个写记录的标识记录到所述KV存储系统的预设文件;将所述第一写操作的多个写记录写入所述KV存储系统的写操作日志文件;将所述第一写操作的第一写记录写入所述KV存储系统的内存中的可写内存表,所述第一写记录为所述多个写记录中的任意一个写记录。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述第一写操作的多个写记录均写入所述可写内存表之后,删除所述预设文件中的所述第一写操作的多个写记录的标识。3.根据权利要求1或2所述的方法,其特征在于,所述预设文件为哈希链表;所述第一写操作的第一写记录的标识包括所述第一写记录的键key和所述第一写操作的快照版本号。4.根据权利要求3所述的方法,其特征在于,将所述第一记录的标识记录到所述KV存储系统的预设文件,包括:根据所述第一写记录的key确定所述第一写记录对应的哈希节点;在所述第一写记录对应的哈希节点所对应的存储空间中,记录所述第一写记录的标识。5.根据权利要求4所述的方法,其特征在于,所述根据所述第一写记录的key确定所述第一写记录对应的哈希节点,包括:将所述第一写记录的key与预设的最大哈希值的余数确定为第一哈希值;将所述第一哈希值对应的哈希节点确定为所述第一写记录对应的哈希节点。6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:将第二写操作的多个写记录标识记录到所述预设文件;其中,所述第二写操作与所述第一写操作为并行执行的写操作;将所述第二写操作的多条记录写入所述写操作日志文件;将所述第二写操作的多条记录写入到所述可写内存表;删除所述预设文件中的所述第二写操作的多个写记录标识。7.一种键值KV存储系统中的数据查询方法,其特征在于,包括:在所述键值KV存储系统的内存的可写内存表中查询到第一写记录;判断所述KV存储系统的预设文件中是否包括所述第一写记录的标识;所述预设文件中包括第一写操作的多个写记录的标识,所述第一写记录为所述多个写记录中一个;当所述预设文件中包含所述第一写记录的标识,则不执行返回包含所述第一写记录的查询响应。8.根据权利要求7所述的方法,其特征在于,所述预设文件为哈希链表;所述第一写记录的标识包括所述第一写记录的键key和所述第一写操作的快照版本号。9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:在所述KV存储系统的所述可写内存表中查询到第二写记录;判断所述预设文件中是否包括所述第二写记录的标识;当所述预设文件中不包含所述第二写记录的标识,返回包含所述第二写记录的查询响应。10.一种键值KV存储系统中的数据写入装置,其特征在于,包括记录模块和写入模块,其中,所述记录模块,用于将第一写操作的多个写记录的标识记录到所述KV存储系统的预设文件;所述写入模块,用于将所述第一写操作的多个写记录写入所述KV存储系统的写操作日志文件,将所述第一写操作的第一写记录写入所述KV存储系统的内存中的可写内存表,所述第一写记录为所述多个写记录中的任意一个写记录。11.根据权利要求10所述的装置,其特征在于,所述装置还包括删除...
【专利技术属性】
技术研发人员:谢晓芹,崔林威,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。