The FuzzyLog: A Partially Ordered Shared Log

The FuzzyLog: A Partially Ordered Shared Log
复制标题

DOI:
--
复制
发表时间:
2018-10
期刊:
--
影响因子:
--
通讯作者:
Joshua Lockerman;Jose M. Faleiro;Juno Kim;Soham Sankaran;D. Abadi;J. Aspnes;S. Sen;M. Balakrishnan
Joshua Lockerman;Jose M. Faleiro;Juno Kim;Soham Sankaran;D. Abadi;J. Aspnes;S. Sen;M. Balakrishnan
中科院分区:
其他
文献类型:
--
作者:
Joshua Lockerman;Jose M. Faleiro;Juno Kim;Soham Sankaran;D. Abadi;J. Aspnes;S. Sen;M. Balakrishnan

文献摘要

被引文献

相似文献

FuzzyLog是一个部分有序的共享日志抽象。分布式应用程序可以并发地追加到偏序并回放它。FuzzyLog应用程序获得了底层共享日志的好处-以简单的方式提取强一致性,持久性和故障原子性-而不会遭受其缺点。通过公开偏序,FuzzyLog为应用程序提供了三个关键功能:吞吐量和容量的线性扩展(不牺牲原子性),较弱的一致性保证以及对网络分区的容忍。我们提出了Dapple,一个分布式实现的FuzzyLog抽象存储的偏序compounds和支持有效的追加/回放通过一个新的排序协议。我们在FuzzyLog上实现了几个数据结构和应用程序,包括几个地图变体以及ZooKeeper实现。我们的评估表明,这些应用程序是紧凑,快速和灵活的:它们保留了共享日志设计的简单性(100行代码)和强语义(持久性和故障原子性),同时利用模糊日志的偏序来实现线性可伸缩性,灵活的一致性保证(例如,因果性+一致性)和网络分区容限。在6节点Dapple部署上,我们基于FuzzyLog的ZooKeeper支持3 M/秒的单键写入和150 K/秒的原子跨分片重命名。
The FuzzyLog is a partially ordered shared log abstraction. Distributed applications can concurrently append to the partial order and play it back. FuzzyLog applications obtain the benefits of an underlying shared log — extracting strong consistency, durability, and failure atomicity in simple ways — without suffering from its drawbacks. By exposing a partial order, the FuzzyLog enables three key capabilities for applications: linear scaling for throughput and capacity (without sacrificing atomicity), weaker consistency guarantees, and tolerance to network partitions. We present Dapple, a distributed implementation of the FuzzyLog abstraction that stores the partial order compactly and supports efficient appends/playback via a new ordering protocol. We implement several data structures and applications over the FuzzyLog, including several map variants as well as a ZooKeeper implementation. Our evaluation shows that these applications are compact, fast, and flexible: they retain the simplicity (100s of lines of code) and strong semantics (durability and failure atomicity) of a shared log design while exploiting the partial order of the Fuzzy- Log for linear scalability, flexible consistency guarantees (e.g., causal+ consistency), and network partition tolerance. On a 6-node Dapple deployment, our FuzzyLog-based ZooKeeper supports 3M/sec single-key writes, and 150K/sec atomic cross-shard renames.