【技术实现步骤摘要】
一种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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。