去年,Netflix云数据库(CDE)团队推出了 Dynomite 。Dynomite是一个代理层,旨在将任意非分布式的数据库转化为分片、多区域的分布式数据库系统。Dynomite提供高可用性,通过 Active-Active 设置,即便AWS中整个region失效了,仍然能够正常工作。
Netflix已经在生产系统里部署了Dynomite。在系列博客文章中,Netflix详细描述了Dynomite的使用场景和特性。例如在 第一篇 里,我们可以了解Dynomite帮助Redis在AWS上线性扩展的细节。
Dynomite能够将最终一致性(eventual consistency)扩展为 协调一致性 (tunable consistency)。使用DC_ONE模式,读写行为在local Availability Zone(AZ)下是同步的;使用DC_QUORUM模式,本地区域特定数量结点下的操作是同步的。
由测试得到的结果,Dynomite能从3,6,12,24一路扩展到48个节点,在DC_ONE和DC_QUORUM模式下,吞吐率都能线性地增长。与此同时,Dynomite在延迟方面只增加了很少的开支,即便在DC_QUORUM模式下,(延迟)也只有几毫秒。DC_QUORUM模式在延迟和吞吐量方面处于劣势,但是能为客户提供更好的读写保证。
最后,Dynomite也支持Redis 管道 ,能够批量地处理请求,从而提升高达50%的性能。Dynomite通过提升吞吐量来减少延迟,从用户的角度讲,这是具有现实意义的。
该 博客系列 的下一篇文章,是关于Dynomite中的逆熵处理问题,以及如何获取更好的一致性。
查看英文原文: Benchmarking Netflix Dynomite with Redis on AWS
感谢张龙对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。