作者Longness (時光如槍)
看板Database
標題[系統] 請問MongoDB的eventual consistency
時間Mon Jun 27 10:47:36 2016
請問一下這個所謂的最終同步(不好意思可能不懂亂翻),
是不是指──
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
→ linjrming: 我想你誤解了這個詞的意思,MongoDB在讀寫primary時是 06/27 15:09
→ linjrming: consistent(一致的),而讀取時Secondary時是 06/27 15:10
→ linjrming: eventually consistent(最終一致) 06/27 15:11
→ linjrming: 因為寫入Secondary的延遲,所以可能讀到過時的資料 06/27 15:11