【技术实现步骤摘要】
本专利技术涉及数据处理
,尤其涉及一种KV-Store(Key-ValueStore,键值存储)系统中文件压实的方法和装置。
技术介绍
KV-Store系统被广泛应用于大数据存储与处理中,其数据模型以Key-Value(键-值)对为基本单位;其提供的基本的操作包括GET(读)操作和PUT(写)操作。服务器执行PUT操作的过程通常包括:先将Key-Value对写入内存中的MemTable(MemoryTable,内存表)中;当MemTable已满时,在外部存储(简称外存,例如磁盘等)中创建一个SSTable(SortedStringTable,有序字符串表),然后将MemTable中的Key-Value对排序写入该SSTable中,PUT操作在用Key-Value对的新值代替旧值的时候,并不对仍然保存在外存的某个SSTable中的旧值进行删除;依次类推,随着PUT操作的增多,外存中可以包含一个或多个SSTable,其中包含的不断积累的大量被替代的旧值也会带来空间占用和影响性能的问题。后续通过Compaction(压实)机制归并全部或部分SSTable,以去除同一Key对应的非最新Value所对应的Key-Value对,从而实现节省存储空间的目的。目前,Compaction一般为多文件压实,即实现多个SSTable之间的归并;具体可以分为MajorCompaction(全部压实)和MinorCompaction(部分压实)。其中,MajorCompaction是指一次归并所有SSTable,MinorCompaction是指一次归并部分SSTable。 ...
【技术保护点】
一种键值存储KV‑Store系统中文件压实的方法,其特征在于,包括:根据待压实有序字符串表SSTable对应的待删除日志Delete Log,对所述待压实SSTable进行压实,生成新的SSTable;其中,所述Delete Log中记录有所述待压实SSTable中保存的所述KV‑Store系统中的非最新值Value所对应的键Key,所述新的SSTable中不包含所述Delete Log中的Key对应的Key‑Value对;删除所述待压实SSTable。
【技术特征摘要】
1.一种键值存储KV-Store系统中文件压实的方法,其特征在于,包括:根据待压实有序字符串表SSTable对应的待删除日志DeleteLog,对所述待压实SSTable进行压实,生成新的SSTable;其中,所述DeleteLog中记录有所述待压实SSTable中保存的所述KV-Store系统中的非最新值Value所对应的键Key,所述新的SSTable中不包含所述DeleteLog中的Key对应的Key-Value对;删除所述待压实SSTable。2.根据权利要求1所述的方法,其特征在于,在所述根据待压实有序字符串表SSTable对应的待删除日志DeleteLog,对所述待压实SSTable进行压实,生成新的SSTable之前,所述方法还包括:在所述待压实SSTable中,确定所述KV-Store系统中的非最新Value所对应的Key,作为目标Key;在所述DeleteLog中记录所述目标Key。3.根据权利要求2所述的方法,其特征在于,所述在所述DeleteLog中记录所述目标Key,包括:在确定所述DeleteLog中不包含所述目标Key时,在所述DeleteLog中记录所述目标Key。4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据待压实有序字符串表SSTable对应的待删除日志DeleteLog,对所述待压实SSTable进行压实,生成新的SSTable,包括:拷贝所述待压实SSTable中的、且不属于所述DeleteLog中的Key对应的Key-Value,生成新的SSTable。5.根据权利要求1所述的方法,其特征在于,在所述根据待压实有序字符串表SSTable对应的待删除日志DeleteLog,对所述待压实SSTable进行压实,生成新的SSTable之前,所述方法还包括:接收携带有待查找Key的读GET操作;在根据所述GET操作获取到所述待查找Key对应的最新Value后,确定所述待查找Key对应的次新Value所在的SSTable,在所述确定的SSTable对应的DeleteLog中记录所述待查找Key。6.根据权利要求1所述的方法,其特征在于,所述KV-Store系统应用于增量存储场景,在所述根据待压实有序字符串表SSTable对应的待删除日志DeleteLog,对所述待压实SSTable进行压实,生成新的SSTable之前,所述方法还包括:接收携带有待查找键Key的读GET操作;在根据所述GET操作获取到所述待查找Key对应的最新Value后,确定所述待查找Key对应的最新Value所在的SSTable,在所述确定的SSTable对应的DeleteLog中记录所述待查找Key;接收携带有所述待查找Key的写PUT操作。7.根据权利要求5或6所述的方法,其特征在于,所述在所述确定的SSTable对应的DeleteLog中记录所述待查找Key,包括:在所述确定的SSTable对应的DeleteLog中不包含所述待查找Key时,在所述确定的SSTable对应的DeleteLog中记录所述待查找Key。8.根据权利要求1所述的方法,其特征在于,所述根据待压实有序字符串表SSTable对应的待删除日志DeleteLog,对所述待压实SSTable进行压实,生成新的SSTable,包括:当待压实有序字符串表SSTable对应的待删除日志DeleteLog中的Key的数量大于或等于预设阈值时,根据所述DeleteLog,对所述待压实SSTable进行压实,生成新的SSTable。9.根据权利要求1所述的方法,其特征在于,所述待压实SSTable对应一个布隆过滤器BloomFilter,所述BloomFilter中记录有所述DeleteLog中的Key,所述方法还包括:当所述KV-Store系统所在的服务器故障恢复后,将所述BloomFilter的初始值设置为空;或,在所述KV-Store系统为分布式存储系统、且所述DeleteLog为本
\t地D...
【专利技术属性】
技术研发人员:陈世敏,朱良昌,张军,
申请(专利权)人:华为技术有限公司,中国科学院计算技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。