<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linearizable on I'm OWenT</title><link>//owent.net/tags/linearizable.html</link><description>Recent content in Linearizable on I'm OWenT</description><generator>Hugo</generator><language>zh-cn</language><copyright>&lt;a rel="license" href="https://github.com/owent/blog-hugo/blob/master/LICENSE.md"&gt;&lt;img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /&gt;&lt;/a&gt;</copyright><lastBuildDate>Sun, 21 Apr 2019 11:38:16 +0000</lastBuildDate><atom:link href="//owent.net/tags/linearizable/index.xml" rel="self" type="application/rss+xml"/><item><title>Anna（支持任意扩展和超高性能的KV数据库系统）阅读笔记</title><link>//owent.net/2019/1905.html</link><pubDate>Sun, 21 Apr 2019 11:38:16 +0000</pubDate><guid>//owent.net/2019/1905.html</guid><description>&lt;h1 id="前言"&gt;前言&lt;/h1&gt;
&lt;p&gt;年前被同事安利了这个分布式最终一致性的存储系统 &lt;a href="http://db.cs.berkeley.edu/jmh/papers/anna_ieee18.pdf"&gt;Anna&lt;/a&gt; 。初略看了一眼Paper，似乎很是牛X。说是支持任意规模的扩展，并且性能不低于 &lt;a href="https://github.com/fastio/pedis"&gt;pedis&lt;/a&gt;。于是抽空来看看并了解下这套系统的设计特点和这种夸张的单机性能和扩展性的来源。&lt;/p&gt;
&lt;h1 id="主流分布式kvs的比较"&gt;主流分布式KVS的比较&lt;/h1&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;系统名词&lt;/th&gt;
 &lt;th&gt;扩容设计&lt;/th&gt;
 &lt;th&gt;内存模型&lt;/th&gt;
 &lt;th&gt;针对单个Key的一致性策略&lt;/th&gt;
 &lt;th&gt;针对多个Key一致性策略&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Masstree&lt;/td&gt;
 &lt;td&gt;多核&lt;/td&gt;
 &lt;td&gt;共享内存&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Bw-tree&lt;/td&gt;
 &lt;td&gt;多核&lt;/td&gt;
 &lt;td&gt;共享内存&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PALM&lt;/td&gt;
 &lt;td&gt;多核&lt;/td&gt;
 &lt;td&gt;共享内存&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MICA&lt;/td&gt;
 &lt;td&gt;多核&lt;/td&gt;
 &lt;td&gt;共享内存&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Redis&lt;/td&gt;
 &lt;td&gt;单核&lt;/td&gt;
 &lt;td&gt;N/A&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Serializability"&gt;&lt;strong&gt;串行化(Serializable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;COPS, Bolt-on&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Causal_consistency"&gt;&lt;strong&gt;因果一致性(Causal)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Bayou&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;, 单调读/写, &lt;a href="http://www.dbms2.com/2010/05/01/ryw-read-your-writes-consistency/"&gt;&lt;strong&gt;Read Your Writes&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Dynamo&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Cassandra&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PNUTS&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;线性写, 单调读&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CouchDB&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Voldemort&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;HBase&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Riak&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DocumentDB&lt;/td&gt;
 &lt;td&gt;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://www.allthingsdistributed.com/2007/12/eventually_consistent.html"&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/a&gt;, &lt;a href="http://pbs.cs.berkeley.edu/"&gt;&lt;strong&gt;Bounded Staleness&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Memcached&lt;/td&gt;
 &lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;
 &lt;td&gt;共享内存&amp;amp;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MongoDB&lt;/td&gt;
 &lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;
 &lt;td&gt;共享内存&amp;amp;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;H-Store&lt;/td&gt;
 &lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Serializability"&gt;&lt;strong&gt;串行化(Serializable)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ScyllaDB&lt;/td&gt;
 &lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Anna&lt;/td&gt;
 &lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;
 &lt;td&gt;消息队列&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt;, Item Cut, Writes Follow Reads, 单调读/写, &lt;a href="http://www.dbms2.com/2010/05/01/ryw-read-your-writes-consistency/"&gt;&lt;strong&gt;Read Your Writes&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/PRAM_consistency"&gt;&lt;strong&gt;PRAM&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://jepsen.io/consistency/models/read-committed"&gt;&lt;strong&gt;Read Committed&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://jepsen.io/consistency/models/read-uncommitted"&gt;&lt;strong&gt;Read Uncommitted&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;一致性说明:&lt;/p&gt;</description></item></channel></rss>