Calvin 是一個(gè) deterministic database,也就是說,對于需要處理的事務(wù)哑诊,Calvin 會在全局確定好事務(wù)的順序啊片,并按照這個(gè)順序執(zhí)行。這些事務(wù)的執(zhí)行順序厂镇,我們可以認(rèn)為是一個(gè)全局的有序 log苍糠,并且 Calvin 會通過復(fù)制機(jī)制來備份到不同的副本上面。所有的副本都是可以并行的順序執(zhí)行這些 log 的稠鼻。這樣冈止,即使一個(gè)副本當(dāng)?shù)簦硗飧北疽踩匀荒軋?zhí)行并且 commit 事務(wù)候齿。
所有的副本并行執(zhí)行的話熙暴,數(shù)據(jù)不就重復(fù)了么?
Calvin:一個(gè)為分區(qū)數(shù)據(jù)庫設(shè)計(jì)的快速分布式事務(wù)框架之前一直聽說過 Calvin慌盯,也知道有基于 Calvin 的分布式數(shù)據(jù)庫 FaunaDB周霉,但一直沒太關(guān)注 Calvin 是如何實(shí)現(xiàn)的。最近剛好看到一篇文章亚皂,討論了 Calvi...