一种Linux Bcache中的垃圾回收方法及系统技术方案

技术编号:24707743 阅读:294 留言:0更新日期:2020-06-30 23:56
本发明专利技术公开了一种Linux Bcache中的垃圾回收方法,包括设置辅助B+tree;在写请求流程与GC流程并发时,写请求的数据元素插入所述辅助B+tree中,并在GC流程结束后,将插入的所述数据元素插入到原始B+tree中。本发明专利技术方法通过辅助B+tree,避免了写请求与GC过程并发时,请求必须等待造成的流量中断;结合“可抢占式锁”解决了Bcache GC过程中,读请求必须等待造成的流量中断;同时通过维护GC任务优先级的方式,避免GC任务一直被抢占而造成的缓存设备空间分配中断。

【技术实现步骤摘要】
一种LinuxBcache中的垃圾回收方法及系统
本专利技术涉及计算机存储优化
,具体而言,为一种LinuxBcache中的垃圾回收方法及系统。
技术介绍
LinuxBcache是Linux内核中的块设备缓存,基本功能是用固态硬盘(缓存设备)给机械硬盘(后端设备)做缓存。在Bcache中,用B+tree(一种多路搜索树)维护缓存设备和后端设备上面数据的映射关系。该B+tree涉及的操作有“查找,遍历,插入,整理”四种,向缓存设备写数据会向B+tree插入元素;从缓存设备读数据会从B+tree查找元素;将缓存设备上的数据写回到后端设备(回刷)会遍历B+tree来标记缓存设备上有“脏数据”的区间;将缓存设备上的空间回收再利用(垃圾回收)会整理B+tree的所有节点。为保护B+tree上面数据的可靠性,防止上述四个动作并发进行(比如在插入的同时查找),Bcache采用“读写锁”的方式:对B+tree上面某节点加“读锁”,用来查找和遍历,此时请求写锁的其他任务必须等待;对B+tree上面某节点加“写锁”,用来插入和整理,此时请求读本文档来自技高网...

【技术保护点】
1.一种Linux Bcache中的垃圾回收方法,其特征在于,包括/n设置辅助B+tree;/n在写请求流程与GC流程并发时,写请求的数据元素插入所述辅助B+tree中,并在GC流程结束后,将插入的所述数据元素插入到原始B+tree中;/n取多个原始B+tree节点设置为GC流程检查点;/n在检查点设置任务优先级规则;/n在读请求与GC流程并发时,根据所述检查点的优先级比对结果以及当前的读请求排队任务个数,确定GC流程继续执行或者中断。/n

【技术特征摘要】
1.一种LinuxBcache中的垃圾回收方法,其特征在于,包括
设置辅助B+tree;
在写请求流程与GC流程并发时,写请求的数据元素插入所述辅助B+tree中,并在GC流程结束后,将插入的所述数据元素插入到原始B+tree中;
取多个原始B+tree节点设置为GC流程检查点;
在检查点设置任务优先级规则;
在读请求与GC流程并发时,根据所述检查点的优先级比对结果以及当前的读请求排队任务个数,确定GC流程继续执行或者中断。


2.根据权利要求1所述的所述的LinuxBcache中的垃圾回收方法,其特征在于,所述GC流程处理完毕后,遍历所述辅助B+tree。


3.根据权利要求2所述的所述的LinuxBcache中的垃圾回收方法,其特征在于,所述在检查点设置任务优先级规则,包括对GC任务优先级的设置和/或对排队等待的读请求任务个数设置。


4.一种Lin...

【专利技术属性】
技术研发人员:王云飞沈海嘉郭照斌石胜男
申请(专利权)人:天津中科曙光存储科技有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1