一种B+树遍历的方法及装置制造方法及图纸

技术编号:24289518 阅读:76 留言:0更新日期:2020-05-26 19:58
本发明专利技术公开了一种B+树遍历的方法,包括在读请求过程中,给某一节点加读锁时,并给其父节点解锁;在写请求过程中,给某一节点加写锁时,并给其父节点解锁。本发明专利技术对传统B+树遍历机制进行改进,通过及时归还父节点的锁,解决了在IO并发量急剧增加的时候,由于非叶子节点持锁时间长导致的性能下降的问题;通过控制持锁区间,降低了由于不必要的持锁时间导致的开销;有助于提高bcache的IO并发处理能力。

A method and device of B + tree traversal

【技术实现步骤摘要】
一种B+树遍历的方法及装置
本专利技术涉及计算机处理
,具体而言,为一种B+树遍历的方法及装置。
技术介绍
bcache是linux内核块设备层cache(缓存),它使用类似SSD(固态硬盘)来作为HDD(机械硬盘)硬盘的cache,从而起到加速的作用。如图1所示的是linuxKernelv4.16.12里的bcache版本,SSD盘sdb为sdc系列后端HDD低速磁盘提供bcache服务。bcache将随机写转化为顺序写,它将SSD看做是缓存设备,首先将IO数据写到SSD上,然后通过bcache内部特有的回刷机制,将这些缓存数据有序的写到磁盘或者阵列上,从而获得更高的随机写性能。bcache是用B+树来管理缓存数据与HDD上数据块的对应关系的。B+树索引的k-v(key-value,键-值)结构在bcache中称为bkey。如图2所示,bcache会将系统中的多块HDD空间编址为一个地址空间。以HDD盘的id(编号)与IO请求的LBA(LogicalBlockAddress,逻辑区地址)为索引建立B+树,叶子节点中存放的是实际的本文档来自技高网...

【技术保护点】
1.一种B+树遍历的方法,其特征在于,包括/n在读请求过程中,给某一节点加读锁时,并给其父节点解锁;/n在写请求过程中,给某一节点加写锁时,并给其父节点解锁。/n

【技术特征摘要】
1.一种B+树遍历的方法,其特征在于,包括
在读请求过程中,给某一节点加读锁时,并给其父节点解锁;
在写请求过程中,给某一节点加写锁时,并给其父节点解锁。


2.根据权利要求1所述的B+树遍历的方法,其特征在于,所述“在读请求过程中,给某一节点加读锁时,给其父节点解锁”中,包括
根节点加读锁;
遍历根节点的bkey,找到符合条件的非叶子节点;
给任一非叶子节点加读锁时,并给该非叶子节点的父节点解锁;
遍历非叶子节点的bkey,直至找到符合条件的叶子节点;
给叶子节点加读锁时,并给该叶子节点的父节点解锁;
在叶子节点中查找匹配的数据;
给叶子节点解锁;
结束。


3.根据权利2所述的B+树遍历的方法,其特征在于,所述“在写请求过程中,给某一节点加读锁时,并给其父节点解锁”中,包括
根节点加读锁;
遍历根节点的bkey,找到符合条件的非叶子节点;
给任一非叶子节点加读锁时,给该非叶子节点的父节点解锁;
遍历非叶子节点的bkey,直至找到符合条件的叶子节点;
给叶子节点加写锁时,给该叶子节点的父节点解锁;
在叶子节点中插入新增bkey;
给叶子节点解锁;
结束。


4.根据权利要求3所述的B+树遍历的方法,其特征在于,当所述在叶子节点中插入新增bkey时该节点中bkey已满,则进行节点分裂;任一节点分裂时,该节点下新增节点的bkey插入到该节点的上级节点中;且给任一节点加写锁时,并给上级节点解锁。


5.一种B+树遍历的装置,...

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

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

1