一种基于LSM树的持久化KV存储的I/O调度方法和系统
技术特征:
1.一种基于lsm树的持久化kv存储的i/o调度方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述探测前后台i/o请求之间形成的依赖关系,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据内存和硬盘资源动态变化情况和i/o请求的具体种类,判断i/o请求之间是否存在依赖关系,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据依赖关系动态调整前后台i/o请求的优先级,包括:
5.根据权利要求4所述的方法,其特征在于,在动态调整前后台i/o请求的优先级之前,设定初始化的i/o请求优先级为:write/read>flush>l0~l1低级别压缩>ln~ln+1高级别压缩。
6.根据权利要求1所述的方法,其特征在于,在所述第二层i/o调度层中,在确定i/o请求的依赖关系以及对i/o请求进行优先级的动态划分后,根据i/o请求之间的依赖关系,将依赖关系紧密的i/o请求划分到同一个核上进行处理,通过对i/o请求进行多核处理增大持久化kv存储的吞吐量,同时在i/o请求上打上标记tag,以在存储堆栈层之间的i/o请求传播时使用。
7.根据权利要求6所述的方法,其特征在于,在所述第三层i/o异步化组装层中,创建i/o请求控制器,在i/o请求通过存储堆栈中文件系统层和块层时,对i/o请求的tag信息进行分析,将优先级高的i/o请求优先通过存储堆栈;并且,按照优先级的高低进行i/o队列的组装,高优先级i/o请求在前,低优先级i/o请求在后,将组装好的i/o队列发送到数据通路,最后到达存储设备。
8.一种基于lsm树的持久化kv存储的i/o调度系统,其特征在于,包括在操作系统的存储堆栈基础上构造的多层调度模型,所述多层调度模型包括第一层i/o依赖探测层、第二层i/o调度层和第三层i/o异步化组装层;所述第一层i/o依赖探测层探测前后台i/o请求之间形成的依赖关系,根据依赖关系动态调整前后台i/o请求的优先级;所述第二层i/o调度层将不同优先级的i/o请求分配到多核处理,且将具有依赖关系的i/o请求分配到同一个核上处理;所述第三层i/o异步化组装层确保i/o请求在存储堆栈的各层之间按优先级高低有效地传播,将i/o请求按照优先级的高低进行异步化i/o队列的组装,并将i/o队列发送到存储硬件。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一项所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一项所述的方法。
技术总结
本发明提供了一种基于LSM树的持久化KV存储的I/O调度方法和系统,属于操作系统存储领域,所述调度方法包括以内核旁路为基础构建操作系统的轻量级存储堆栈,在其上构造多层调度模型,第一层I/O依赖探测层:探测前后台I/O请求之间形成的依赖关系,根据依赖关系动态调整前后台I/O请求的优先级;第二层I/O调度层:将不同优先级的I/O请求分配到多核处理;第三层I/O异步化组装层:确保I/O请求在轻量级存储堆栈的各层之间按优先级高低有效的传播,将I/O请求按照优先级的高低进行异步化的队列组装。本发明所述的调度方法可以达到有效的减少持久化KV存储的系统延迟,提升持久化KV存储的吞吐量,降低I/O优先级反转问题的发生,优化持久化KV存储的性能开销的效果。
技术研发人员:朱春晖,陶秋铭
受保护的技术使用者:中国科学院软件研究所
技术研发日:
技术公布日:2024/11/18
技术研发人员:朱春晖,陶秋铭
技术所有人:中国科学院软件研究所
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
