[系統] 請問MongoDB的eventual consistency

看板Database (資料庫)作者 (時光如槍)時間8年前 (2016/06/27 10:47), 8年前編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/2 (看更多)
請問一下這個所謂的最終同步(不好意思可能不懂亂翻), 是不是指── 0. 原始DB的樣子 甲地 乙地 A A B B 1. START! 甲地 乙地 A A B B (寫入C) (寫入D) 2. 寫完了 甲地 乙地 A A B B C D 3. 過了一陣子 甲地 乙地 (兩地自動互訪) A A B B C →C D← D 然後最終兩邊都會寫上ABCD四份文件 不過如果是這樣的話,我又看了一下官網文件 它說一組會自動同步的MongoDB,只能有一個Primary DB,其他的Secondary DB都是 read-only的,只有Primary能寫入、做到單向同步,從單台Primary → 各台Secondary。 請問一下我是誤解eventual consistency定義了嗎? 還是說MongoDB的確可以透過配置,做到上述範例呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.51.165.168 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1466995659.A.E7B.html ※ 編輯: Longness (123.51.165.168), 06/27/2016 10:50:11

06/27 15:09, , 1F
我想你誤解了這個詞的意思,MongoDB在讀寫primary時是
06/27 15:09, 1F

06/27 15:10, , 2F
consistent(一致的),而讀取時Secondary時是
06/27 15:10, 2F

06/27 15:11, , 3F
eventually consistent(最終一致)
06/27 15:11, 3F

06/27 15:11, , 4F
因為寫入Secondary的延遲,所以可能讀到過時的資料
06/27 15:11, 4F
文章代碼(AID): #1NS9FBvx (Database)
文章代碼(AID): #1NS9FBvx (Database)