Calvin 是一個(gè) deterministic database奏路,也就是說,對(duì)于需要處理的事務(wù)臊诊,Calvin 會(huì)在全局確定好事務(wù)的順序鸽粉,并按照這個(gè)順序執(zhí)行。這些事務(wù)的執(zhí)行順序抓艳,我們可以認(rèn)為是一個(gè)全局的有序 log触机,并且 Calvin 會(huì)通過復(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...