<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bounded Staleness on I'm OWenT</title><link>//owent.net/tags/bounded-staleness.html</link><description>Recent content in Bounded Staleness 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/bounded-staleness/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;&#10;&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;&#10;&lt;h1 id="主流分布式kvs的比较"&gt;主流分布式KVS的比较&lt;/h1&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;系统名词&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;扩容设计&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;内存模型&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;针对单个Key的一致性策略&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;针对多个Key一致性策略&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Masstree&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;共享内存&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Bw-tree&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;共享内存&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;PALM&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;共享内存&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MICA&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;共享内存&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Redis&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;单核&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;N/A&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;COPS, Bolt-on&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Bayou&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dynamo&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cassandra&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;PNUTS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;线性写, 单调读&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CouchDB&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Voldemort&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;HBase&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Riak&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;DocumentDB&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Memcached&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;共享内存&amp;amp;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MongoDB&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;共享内存&amp;amp;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;H-Store&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ScyllaDB&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Anna&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多核&amp;amp;分布式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;消息队列&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&#9;&#9;&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;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;一致性说明:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Linearizability"&gt;&lt;strong&gt;线性(Linearizable)&lt;/strong&gt;&lt;/a&gt; 是指在更新了某行之后，后续的客户端不会读到老数据，通常用在单行一致性上，最强的一致性模型；&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性(Eventual)&lt;/strong&gt;&lt;/a&gt; 是指在更新了某行之后，后续的客户端可能在某些（缓存）结点上会读到老数据（特别是并发执行的事务），但是最后（一段时间后）一定会读到一致的最新数据；&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Serializability"&gt;&lt;strong&gt;串行化(Serializable)&lt;/strong&gt;&lt;/a&gt; 是指对多个读写同一行数据的事务，采用排序和排队执行的机制，这样也能保证数据的严格一致性，但是通常这涉及加锁（&lt;a href="https://ai.google/research/pubs/pub39966" title="Spanner: Google's Globally-Distributed Database"&gt;spanner&lt;/a&gt;/&lt;a href="https://ai.google/research/pubs/pub41344" title="F1: A Distributed SQL Database That Scales"&gt;f1&lt;/a&gt;）或单点原子化操作（&lt;a href="https://redis.io/"&gt;redis&lt;/a&gt;）；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;单调读(Monotonic Reads)&lt;/strong&gt; 是指在某一个客户端读取到新数据后，不会再读到老数据，但是有可能在更新一行后短期内客户端仍然读到老数据，属于 &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性&lt;/strong&gt;&lt;/a&gt; 的一种；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;单调写(Monotonic Writes)&lt;/strong&gt; 是指对单个客户端的写入操作一定是有序的，属于 &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性&lt;/strong&gt;&lt;/a&gt; 的一种；&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Causal_consistency"&gt;&lt;strong&gt;因果一致性(Causal)&lt;/strong&gt;&lt;/a&gt; 是指在某个客户端上对一组Key的读写操作会被认为有因果关系，那么在进程上也都保持一样的可见性顺序，属于 &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性&lt;/strong&gt;&lt;/a&gt; 的一种。通常通过 &lt;a href="https://en.wikipedia.org/wiki/Vector_clock"&gt;向量时钟(Vector Clock)&lt;/a&gt; 实现；&lt;/li&gt;&#10;&lt;li&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;strong&gt;N个副本节点&lt;/strong&gt; ， &lt;strong&gt;W个节点感知到写入&lt;/strong&gt; ， &lt;strong&gt;R个节点对读操作返回的数据一致&lt;/strong&gt; ， 且如果 &lt;strong&gt;W + R &amp;gt; N&lt;/strong&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;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性&lt;/strong&gt;&lt;/a&gt; 的一种；&lt;/li&gt;&#10;&lt;li&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://www.dbms2.com/2010/05/01/ryw-read-your-writes-consistency/"&gt;&lt;strong&gt;Read Your Writes&lt;/strong&gt;&lt;/a&gt;的一种更具体的行为，即每一次客户端连接到服务器的Session中保证 &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; 一致性，如果重新建立Session则不保证，属于 &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性&lt;/strong&gt;&lt;/a&gt; 的一种；&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://pbs.cs.berkeley.edu/"&gt;&lt;strong&gt;Bounded Staleness&lt;/strong&gt;&lt;/a&gt; 是指读取操作最多滞后于写入操作最多k个版本或t个周期之后，属于 &lt;a href="https://en.wikipedia.org/wiki/Eventual_consistency"&gt;&lt;strong&gt;最终一致性&lt;/strong&gt;&lt;/a&gt; 的一种；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Writes follows reads&lt;/strong&gt; 是指对一个Key的读操作后一定跟着这个Key的写操作；&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/PRAM_consistency"&gt;&lt;strong&gt;PRAM&lt;/strong&gt;&lt;/a&gt; 是指对于某个进程对多个Key的写入，其他进程看到的写入顺序和这个写入进程的写入顺序一致。因为这些Key在这个写入进程上是同一个pipeline；&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://jepsen.io/consistency/models/read-uncommitted"&gt;&lt;strong&gt;Read Uncommitted&lt;/strong&gt;&lt;/a&gt; 是指对同一组事务禁止 &lt;em&gt;&lt;strong&gt;脏写&lt;/strong&gt;&lt;/em&gt; ，即多个未提交事务同时修改一组数据；&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://jepsen.io/consistency/models/read-committed"&gt;&lt;strong&gt;Read Committed&lt;/strong&gt;&lt;/a&gt; 是指事务读取数据时，不允许看到其他未提交事务所写入的数据，通常涉及多个事务并发执行且需要访问同一组数据；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;See &lt;a href="https://en.wikipedia.org/wiki/Consistency_model"&gt;https://en.wikipedia.org/wiki/Consistency_model&lt;/a&gt; for more details&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item></channel></rss>