1. 使用算法hash, bucket, btree.
2. 独立存储节点,独立数据目录,bucket扩展
3. 可靠性保证:多机冗余(N=3),同步写(同时想多个节点写,写成功2个节点即可),依次读
4. 一致性(最终一致性)
用Hash tree的数据结构做节点数据同步
存储引擎:没有使用TokyoCabinet,BerkeleyDB,使用了Bitcask存储算法
通过对key进行重新编码将20字节编码为5个字节,来节省内存。
Leader/Follower模型实现请求和处理,实现网络异步,磁盘同步的处理。
感觉:
1. 使用到的算法需要很讲究,根据具体的发展来演化,算法对提高效率很重要
2. 请求处理和磁盘读写之间的结合非常影响整体的性能
3. 失掉临时一致性保证最终一致性