去年,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