去年,Netflix云數(shù)據(jù)庫(CDE)團隊推出了Dynomite。Dynomite是一個代理層,旨在將任意非分布式的數(shù)據(jù)庫轉(zhuǎn)化為分片、多區(qū)域的分布式數(shù)據(jù)庫系統(tǒng)。Dynomite提供高可用性,通過Active-Active設(shè)置,即便AWS中整個region失效了,仍然能夠正常工作。
Netflix已經(jīng)在生產(chǎn)系統(tǒng)里部署了Dynomite。在系列博客文章中,Netflix詳細描述了Dynomite的使用場景和特性。例如在第一篇里,我們可以了解Dynomite幫助Redis在AWS上線性擴展的細節(jié)。
Dynomite能夠?qū)⒆罱K一致性(eventual consistency)擴展為協(xié)調(diào)一致性(tunable consistency)。使用DC_ONE模式,讀寫行為在local Availability Zone(AZ)下是同步的;使用DC_QUORUM模式,本地區(qū)域特定數(shù)量結(jié)點下的操作是同步的。
由測試得到的結(jié)果,Dynomite能從3,6,12,24一路擴展到48個節(jié)點,在DC_ONE和DC_QUORUM模式下,吞吐率都能線性地增長。與此同時,Dynomite在延遲方面只增加了很少的開支,即便在DC_QUORUM模式下,(延遲)也只有幾毫秒。DC_QUORUM模式在延遲和吞吐量方面處于劣勢,但是能為客戶提供更好的讀寫保證。
最后,Dynomite也支持Redis管道,能夠批量地處理請求,從而提升高達50%的性能。Dynomite通過提升吞吐量來減少延遲,從用戶的角度講,這是具有現(xiàn)實意義的。
該博客系列的下一篇文章,是關(guān)于Dynomite中的逆熵處理問題,以及如何獲取更好的一致性。
查看英文原文:Benchmarking Netflix Dynomite with Redis on AWS