fasterkv 与 fishstore
我感觉就像个bitcask加强版
而且是内存丢失版,不保证落盘的
fasterkv只是简单的kv 点读点写以及RMW
fishstore使用了faster同样的设计,为了处理json做了subset index
前面讲fasterkv,后面讲fishstore
这个记录是笔记式的,随时都可能变化
[toc]
我感觉就像个bitcask加强版
而且是内存丢失版,不保证落盘的
fasterkv只是简单的kv 点读点写以及RMW
fishstore使用了faster同样的设计,为了处理json做了subset index
前面讲fasterkv,后面讲fishstore
这个记录是笔记式的,随时都可能变化
[toc]
每种数据库都有自己的结构,每种数据库之间的导入导出都需要convert
解决方案就是用通用的中间模型来表达,省掉转换的代价,也就是arrow的由来
https://github.com/git-hulk/tcpkit
这个小工具是抓包打印延迟的。挺好用,学习一下,改成c++版本
这个抓包库很全 https://github.com/mfontanini/libtins,资料很多 http://libtins.github.io/examples/
再套上sol2,加上arg解析,就完成了
现在是20年代了,计算机领域所有的指标都在变快。如何才能快速估算?
这里有一个估算系列的问题https://sirupsen.com/napkin/,以及需要的参数 https://github.com/sirupsen/napkin-math
顾名思义,就是记录key和对应value hash的一棵二叉树。
树的形态
通过每层hash来校验数据块
如果要求严苛,hash函数需要用安全的xxhash之类的。如果要求仅仅是校验 crc即可
原文链接 https://medium.com/@dgryski/consistent-hashing-algorithmic-tradeoffs-ef6b8e2fcae8
加了很多自己的理解
没有锁,spdlog是mpmc+锁的模式,nanolog是spsc组合模式
二进制日志写入,没有写放大
论文地址 https://www.usenix.org/system/files/conference/atc18/atc18-yang.pdf
这里有一篇介绍 https://zhuanlan.zhihu.com/p/136208506还有很多优化的点子,比如cache miss,比如tsc读时间
看到这里或许你有建议或者疑问或者指出我的错误,请留言评论或者邮件mailto:wanghenshui@qq.com, 多谢! 你的评论非常重要!
鸽了