【技术实现步骤摘要】
面向Key-Value系统的compaction粗粒度进程级并行优化方法及系统
本专利技术涉及数据存储
,尤其涉及面向Key-Value系统的compaction粗粒度进程级并行优化方法及系统。
技术介绍
在如搜索引擎、大数据、云计算、云存储、电子商务及社交网络等数据密集型应用的环境下,持久化的Key-Value存储日益发挥着不可替代的作用。针对写密集型负载,基于LSM-tree的Key-Value存储成为当前最先进的技术。其中,应用较为广泛的Key-Value存储包括Google的BigTable、LevelDB,FaceBook的Cassandra等。LSM-tree数据组织由内存中的一个C0组件和磁盘中的C1~Ck组成。其中C0作为在内存中的一个缓冲区,一旦C0达到阈值,会和C1进行合并排序操作,此作称为compaction。此外,当磁盘中的组件Ci达到阈值的时候,也会触发Ci和Ci+1之间的compaction操作。随着数据量的增加,LSM-tree结构需要在组件之间频繁的进行compaction操作;这将大量占用系统资源,难以高效的服务用户请求。现 ...
【技术保护点】
面向Key‑Value系统的compaction粗粒度进程级并行优化方法,其特征在于,包括以下步骤:S1、主进程接收到读写请求后判断是否需要调度compaction线程,当判断结果为是时,主进程将compaction线程中的任务信息分割为主进程子任务和从进程子任务;S2、主进程提取从进程子任务中的元数据信息并发送至从进程,并对主进程子任务进行compaction操作,从进程接收主进程发送的元数据信息后对从进程子任务进行compaction操作;S3、主进程在主进程完成主进程子任务compaction操作且从进程完成从进程子任务compaction操作后对Key‑Value系 ...
【技术特征摘要】
1.面向Key-Value系统的compaction粗粒度进程级并行优化方法,其特征在于,包括以下步骤:S1、主进程接收到读写请求后判断是否需要调度compaction线程,当判断结果为是时,主进程将compaction线程中的任务信息分割为主进程子任务和从进程子任务;S2、主进程提取从进程子任务中的元数据信息并发送至从进程,并对主进程子任务进行compaction操作,从进程接收主进程发送的元数据信息后对从进程子任务进行compaction操作;S3、主进程在主进程完成主进程子任务compaction操作且从进程完成从进程子任务compaction操作后对Key-Value系统的文件进行优化操作。2.根据权利要求1所述的面向Key-Value系统的compaction粗粒度进程级并行优化方法,其特征在于,步骤S1具体包括:主进程接收读请求或写请求后,根据Key-Value系统每一层可容纳的文件容量阈值来判断Key-Value系统是否需要调度compaction线程;优选地,为Key-Value系统每一层设置可容纳的文件容量阈值,记为QLm=aQLm-1;其中,QLm为Lm层可容纳的文件容量阈值,QLm-1为Lm-1层可容纳的文件容量阈值,a为预设值,QL1=A,A为预设值;当OLk≥QLk时,则判定此时Key-Value系统需要调度compaction线程;其中,OLk为Lk层当前容纳的文件容量;当主进程判定Key-Value系统需要调度compaction线程时,主进程根据任务分割算法将compaction线程中的任务信息分割为主进程子任务和从进程子任务;优选地,所述任务分割算法具体包括:主进程确定此次compaction选定的Lk层的SSTable文件SSTk1、SSTk2、SSTk3……SSTkn中的一个文件SSTka;确定LK+1层中的SSTable文件的Key范围与SSTka的Key范围有重叠的所有SSTable文件,记为SSTv1、SSTv2、SSTv3……SSTvm;主进程将SSTable文件分割为主进程子任务,将SSTable文件分割为从进程子任务;主进程根据SSTable文件的元数据信息中指示的Smallest的值Y以及SSTka文件的Key范围[SSTka_smallest,SSTka_largest]将SSTka文件中的[SSTka_smallest,Y]文件分割为主进程子任务,将SSTka文件的剩余部分分割为从进程子任务;其中,1≤a≤n,v=k+1。3.根据权利要求2所述的面向Key-Value系统的compaction粗粒度进程级并行优化方法,其特征在于,步骤S2具体包括:主进程提取从进程子任务所需的SSTable文件元数据信息发送至从进程,并读取主进程子任务中对应的SSTable文件,对上述SSTable文件进行多路合并排序操作生成多个新的有序的SSTable文件,且更新较新的Key-Value项、删除具有删除标记的Key-Value项,以完成主进程子任务compaction操作;从进程接收主进程发送的元数据信息后,读取从进程子任务中对应的SSTable文件,对上述SSTable文件进行多路合并排序操作生成多个新的有序的SSTable文件,且更新较新的Key-Value项、删除具有删除标记的Key-Value项,以完成从进程子任务compaction操作。4.根据权利要求3所述的面向Key-Value系统的compaction粗粒度进程级并行优化方法,其特征在于,步骤S3具体包括:主进程完成主进程子任务compaction操作后,置完成标志,进入等待状态,当从进程完成从进程子任务compaction操作时,从进程判断主进程是否完成主进程子任务compaction操作,若是,从进程唤醒主进程并将从进程子任务中新生成的SSTable文件的元数据信息发送至主进程,主进程对Key-Value系统的日志文件进行更新、过期文件进行删除,已完成对Key-Value系统的文件的优化操作。5.面向Key-Value系统的compaction粗粒度进程级并行优化系统,其特征在于,包括:主进程模块和从进程模块,主进程模块和从进程模块通信连接;主进程模块用于在接收到读写请求后判断是否需要调度compaction线程,且当判断结果为是时将compaction线程中的任务信息分割为主进程子任务和从进程子任务,主进程模块用于提取从进程子任务所需的元数据信息并发送至从进程模块,并对主进程子任务进行compaction操作,主进程模块还用于在主进程模块完成主进程子任务compaction操作且从进程模块完成...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。