I'm OWenT

Recent content on I'm OWenT

马上订阅 I'm OWenT RSS 更新: https://owent.net/index.xml

Anna(支持任意扩展和超高性能的KV数据库系统)阅读笔记

2019年4月21日 19:38

前言

年前被同事安利了这个分布式最终一致性的存储系统 Anna 。初略看了一眼Paper,似乎很是牛X。说是支持任意规模的扩展,并且性能不低于 pedis。于是抽空来看看并了解下这套系统的设计特点和这种夸张的单机性能和扩展性的来源。

主流分布式KVS的比较

系统名词 扩容设计 内存模型 针对单个Key的一致性策略 针对多个Key一致性策略
Masstree 多核 共享内存 线性(Linearizable)
Bw-tree 多核 共享内存 线性(Linearizable)
PALM 多核 共享内存 线性(Linearizable)
MICA 多核 共享内存 线性(Linearizable)
Redis 单核 N/A 线性(Linearizable) 串行化(Serializable)
COPS, Bolt-on 分布式 消息队列 最终一致性(Eventual) 因果一致性(Causal)
Bayou 分布式 消息队列 最终一致性(Eventual), 单调读/写, Read Your Writes 最终一致性(Eventual)
Dynamo 分布式 消息队列 线性(Linearizable), 最终一致性(Eventual)
Cassandra 分布式 消息队列 线性(Linearizable), 最终一致性(Eventual)
PNUTS 分布式 消息队列 线性写, 单调读
CouchDB 分布式 消息队列 最终一致性(Eventual)
Voldemort 分布式 消息队列 线性(Linearizable), 最终一致性(Eventual)
HBase 分布式 消息队列 线性(Linearizable)
Riak 分布式 消息队列 最终一致性(Eventual)
DocumentDB 分布式 消息队列 最终一致性(Eventual), Session, Bounded Staleness, 线性(Linearizable)
Memcached 多核&分布式 共享内存&消息队列 线性(Linearizable)
MongoDB 多核&分布式 共享内存&消息队列 线性(Linearizable)
H-Store 多核&分布式 消息队列 线性(Linearizable) 串行化(Serializable)
ScyllaDB 多核&分布式 消息队列 线性(Linearizable), 最终一致性(Eventual)
Anna 多核&分布式 消息队列 最终一致性(Eventual), 最终一致性(Eventual), Item Cut, Writes Follow Reads, 单调读/写, Read Your Writes, PRAM Read Committed, Read Uncommitted

一致性说明: