- 博客(6)
- 资源 (5)
- 收藏
- 关注
原创 一个退役中校教你如何用go语言写一个基于B+树的json数据库(进阶篇)之json字符串解析为BsTr结构(二)
json字符串反序列为BsTr中间结构,以及BsTr中间结构序列化为json字符串。
2024-01-30 11:15:08 641 1
原创 一个退役中校教你如何用go语言写一个基于B+树的json数据库(进阶篇)之BsTr tree(二)指针混写的实现2
❷ 第二种方法的代码如下(以[]byte类型的key建立的树为例):_groutine_bskeyCsWrFunc是一个驻留协程,用于处理节点如何获取,顺序执行。
2024-01-26 18:08:36 404 1
原创 一个退役中校教你如何用go语言写一个基于B+树的json数据库(进阶篇)之BsTr tree(二)指针混写的实现1
/ 如果旧的父节点被删除了,说明父节点发生了变化,则将其父节点设置为当前节点。// 如果父节点的offset不为-1,则先查找映射,映射的key为"offset@文件名"的字符串格式。} else { ////如果是叶子节点,并且是FILEBIG模式,需要子chunk切片只需分配父节点、左右兄弟节点的空间。//如果存在映射关系,则获取父节点,并设置到当前节点的父节点位置上。// 如果位置为chunk切片的长度,则表明是当前节点也是父节点的最大子节点,位置进行-1操作。
2024-01-25 17:50:43 504
原创 一个退役中校教你如何用go语言写一个基于B+树的json数据库(进阶篇)之BsTr tree(一)
上图的parent、left、right是三个指针,分别指向父节点、左右兄弟节点,图中没有画指向箭头,只是标记了相应节点的最大key来指代指针的指向。可以看的出来,BsTr tree和一般的B+树不同的是,除了指向孩子节点的指针和offset,它还包含了指向父节点和左右节点的指针和offset(offset用于实现指针混写,在内存和文件页面间自由转换)。在最后环节,不同类型的key对应不同的驻留协程,而不同的key和不同的flag对应着不同的表,不同的表对应不同的树,也就是说,支持表级并行执行。
2024-01-22 11:18:35 1003
原创 go语言B+树实现:resob包介绍
resob是remote service of BsTr tree的缩写。包resob定义了一个名为BsTr的结构,并基于该结构实现了一个可以指针混写的类B+树,借鉴脉动工作流模式,支持表级并行度。纯go标准库实现,没有额外的依赖。resob_jsondb是基于BsTr树的json数据库,支持特定的json格式作为包含数据的操作命令,通过解析json实现插入、删除、更新和查找。
2024-01-18 17:45:39 1277
一个简单的会员信息系统(采用我自行写的一个数据库函数库,包含源码-库-头文件)
2010-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人