這是一個建立於
的文章,其中的資訊可能已經有所發展或是發生改變。
mgo寫入安全機制
mongo寫入安全
mongo本身也有一整套的寫入安全機制,但是在這篇的內容裡只介紹一小部分相關部分.先放一個連結可以跳過本節不看直接看這個
連結.
- WriteConcern.NONE:沒有異常拋出
- WriteConcern.NORMAL:僅拋出網路錯誤異常,沒有伺服器錯誤異常
- WriteConcern.SAFE:拋出網路錯誤異常、伺服器錯誤異常;並等待伺服器完成寫操作。
- WriteConcern.MAJORITY: 拋出網路錯誤異常、伺服器錯誤異常;並等待一個主伺服器完成寫操作。
- WriteConcern.FSYNC_SAFE: 拋出網路錯誤異常、伺服器錯誤異常;寫操作等待伺服器將資料重新整理到磁碟。
- WriteConcern.JOURNAL_SAFE:拋出網路錯誤異常、伺服器錯誤異常;寫操作等待伺服器提交到磁碟的記錄檔。
- WriteConcern.REPLICAS_SAFE:拋出網路錯誤異常、伺服器錯誤異常;等待至少2台伺服器完成寫操作。
mgo寫入安全
先放mgo中的safe結構體.
type Safe struct { W int // Min # of servers to ack before success WMode string // Write mode for MongoDB 2.0+ (e.g. "majority") WTimeout int // Milliseconds to wait for W before timing out FSync bool // Sync via the journal if present, or via data files sync otherwise J bool // Sync via the journal if present}
- W 參數對應著REPLICAS_SAFE,就是等待著W台伺服器完成寫操作
- WMode 可以寫mongo安全中的前四個."none","normal","safe","majority"
- WTimeout 注釋寫的蠻清楚的
- FSync 將非同步寫變為同步寫,即是等待mongo返回寫入的資訊反饋
- J 相當於等待寫入日誌再返回.