Strictly serializable (linearizable) services appear to execute transactions (operations) sequentially, in an order consistent with real time. This restricts a transaction's (operation's) possible return values and in turn, simplifies application programming. In exchange, strictly serializable (linearizable) services perform worse than those with weaker consistency. Switching to such services, however, can break applications. This work introduces two new consistency models to ease this trade-off: regular sequential serializability (RSS) and regular sequential consistency (RSC). They are just as "strong" for applications; we prove any application invariant that holds when using a strictly serializable (linearizable) service also holds when using an RSS (RSC) service. Yet they are "weaker" for services; they allow new, better-performing designs. To demonstrate this, we design, implement, and evaluate variants of two systems, Spanner and Gryff, weakening their consistency to RSS and RSC, respectively. The new variants achieve better read-only transaction and read tail latency than their counterparts.
翻译:严格串联( 线性) 服务似乎按顺序执行交易( 操作), 顺序与实时一致。 这限制了交易( 操作) 可能的回报值, 从而简化了应用程序程序。 换句话说, 严格串联( 线性) 服务比一致性较弱的服务更差。 但是, 转换到这类服务可以中断应用程序。 这项工作引入了两种新的一致性模式来方便这种交易: 定期顺序串联性( RSS) 和经常顺序一致性( RSC) 。 它们与应用程序一样“ 强 ” ; 我们证明, 当使用严格串联( 线性) 服务时, 持有的应用程序也是不易变式的。 然而, 它们“ 精细” 服务, 允许新的、 更好的设计。 为了证明这一点, 我们设计、 实施并评价两个系统( spanner 和 Gryff) 的变式, 分别削弱它们与RSS 和 RSC 的兼容性。 新的变式比对等系统更能只读取交易和 。