出去溜达想去附近跨年的,去了发现人们都是再逛商场就回来了
写下今年写代码的一点点收获吧
年初的时候仿 lucene 早期版本写了个倒排索引,里面有点数据存储的部分结合后面零零三三看了点资料说下简单的收获(大部分是网上已知的。
1.数据存储写到文件形式
- 1.length:key-length:value
- 2.lengthkey+lengthvalue:key:value
2.大文件提升文件读写效率
- 1.采用的一个方式是存文件的时候采用定长的方式,也就是分块限制大小
3.文件读取要尽量以文件页的大小来
4.数据压缩有一些成型的
- 1.例如字符串根据前缀的,这种排序后好处理点
- 2.之前实现过 Golomb 编解码的但是有些 bug
- 3.连续数字的话即使差值
- 4.length 的话一般是高位是个标志位可以把 int/long 变长压缩解析( Golomb 好像也用到这个东西,时间久有点忘了)
- 5.这里对那种 olap 库的列存储压缩很友好的
- 6.这里还有个问题就是库里面索引为什么快,索引大部分时单列
5.主键的顺序写很关键
今年还让 AI 给写了些 demo
- 1.2pl 、mvcc 、raft 的 demo
- 2.没搞懂还有个地方就是 mvcc B+tree 刷盘的地方
明年打算搞的
- 1.如果是简单的分片复制存储好处理,但是想实现分布式就是不是简单的复制那种还没搞定
- 2.但是可能搞不定