Batina's Blog

[B+ Tree] 3 - B+树并发

我们知道数据库的事务通过一系列并发控制手段能够保证并发执行的事务操作数据时不会互相干扰,而索引作为事务执行时需要经常访问的数据结构,我们也需要考虑使用并发控制措施来保证多线程同步访问索引结构时不...

[B+ Tree] 2 - B+树的插入/删除

我们终于要开始介绍B+树和它的基本操作了。这里我们将以 15-445 fall 2020 project2 的实现思路为模板介绍 B+ 树的结构,以图文的形式介绍插入、删除操作以及对应的调整操作...

[B+ Tree] 1 - B+树应用场景

做完了cmu 15-445 2020的project之后,想着稍微归纳一下从这个项目里学到的东西,这个项目总共完成了缓存管理、b+树索引、executor、transaction mana...

[algo/hash] 加密哈希与非加密哈希

之前大概知道MD5和SHA-1/SHA-2都是某种哈希算法,但是看了实现感觉跟数据结构课上学到的哈希函数不是同一个东西,最近才知道哈希算法分为加密/非加密哈希,故挖此坑。(另外之前略微了解...

[AVL Tree] 1 - 从二叉搜索树到平衡二叉搜索树

曾经上数据结构的时候上机作业留过一道AVL树的题目,班上有个搞ACM的大佬花了一个下午的时间写完了,当时我听到居然要写两百多行代码简直佩服得五体投地并且放弃了自己写的打算,对AVL树的理解...

『Tool』 1 - 生发道具 FastGit

这个系列的初衷是记录一些方便的小工具及其用法,篇幅的长短取决于上手的难易程度以及工具本身说明的详细程度(FastGit就很容易上手所以本篇很短); 至于系列的命名灵感则是:节省时间 == ...

Floyd/Brent判圈算法

简单记一下Floyd判圈算法和Brent判圈算法 leetcode-141 / leetcode-142,给出一条链的头节点,问链上是否存在环。 首先能想到一种简单的方法是用 set/unor...

Linux Command (4) -- netstsat

更多内容可在man手册中查看,或者命令行输入 man netstat 简而言之,netstat是一个用来查看网络连接情况的命令/工具,这里摘录一些常用的选项。 -r,...

Linux Command (3) -- wget and curl

简要比对wget和curl命令的不同,主要记录两个命令的用法,内容同样来自于man手册,若理解有误还请多包涵 写在正式内容之前的概述 wget 和 curl 都可以用来下载某个url...

[c++/STL] vector - swap()

第一次翻阅源码,能力有限,难免有错漏和理解不当之处,如果出错还请多多包涵 今天突然想了解一下 STL 的 vector 调用内部的swap()时候效率如何,具体是怎么实现的,这样以后用...