Traditional approaches to replication require client requests to be ordered before making them durable by copying them to replicas. As a result, clients must wait for two round-trip times (RTTs) before updates complete. In this paper, we show that this entanglement of ordering and durability is unnecessary for strong consistency. Consistent Unordered Replication Protocol (CURP) allows clients to replicate requests that have not yet been ordered, as long as they are commutative. This strategy allows most operations to complete in 1 RTT (the same as an unreplicated system). We implemented CURP in the Redis and RAMCloud storage systems. In RAMCloud, CURP improved write latency by ~2x (13.8 us -> 7.3 us) and write throughput by 4x. Compared to unreplicated RAMCloud, CURP's latency overhead for 3-way replication is just 0.4 us (6.9 us vs 7.3 us). CURP transformed a non-durable Redis cache into a consistent and durable storage system with only a small performance overhead.
翻译:传统的复制方法要求客户在要求其复制到复制品后才能持久。 因此,客户必须等待两次往返时间才能完成更新。 在本文中,我们表明,这种订购和耐久性纠缠在一起对于保持高度一致性是没有必要的。 一致的无序复制协议允许客户复制尚未订购的请求,只要这些请求具有通俗性。 这项战略允许大多数操作在1 RTT(与一个无法复制的系统相同)中完成。 我们在Redis和RAMCloud储存系统中实施了CURP。 在RAMCloud, CURP改进了写稿的长度,增加了~2x(13.8 us - > 7.3 us)和4x。 与未复制的RAMCloud相比,CURP用于3个途径复制的透明管理费只有0.4 us (6.9 us vs 7.3 us) 。 CURP将一个不耐用的Redis缓存器转换成一个一致和耐久的储存系统,只有少量的运行管理费。