去年,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 )关注我们。
评论