Calvin 是一個 deterministic database葫哗,也就是說珠插,對于需要處理的事務(wù)喧锦,Calvin 會在全局確定好事務(wù)的順序齿拂,并按照這個順序執(zhí)行。這些事務(wù)的執(zhí)行順序,我們可以認(rèn)為是一個全局的有序 log,并且 Calvin 會通過復(fù)制機制來備份到不同的副本上面恼五。所有的副本都是可以并行的順序執(zhí)行這些 log 的。這樣哭懈,即使一個副本當(dāng)?shù)粼致硗飧北疽踩匀荒軋?zhí)行并且 commit 事務(wù)。
所有的副本并行執(zhí)行的話遣总,數(shù)據(jù)不就重復(fù)了么睬罗?
Calvin:一個為分區(qū)數(shù)據(jù)庫設(shè)計的快速分布式事務(wù)框架之前一直聽說過 Calvin,也知道有基于 Calvin 的分布式數(shù)據(jù)庫 FaunaDB旭斥,但一直沒太關(guān)注 Calvin 是如何實現(xiàn)的容达。最近剛好看到一篇文章,討論了 Calvi...