mgo寫入安全機制
- mongo寫入安全
- 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 successWMode string // Write mode for MongoDB 2.0+ (e.g. "majority")WTimeout int // Milliseconds to wait for W before timing outFSync bool // Sync via the journal if present, or via data files sync otherwiseJ bool // Sync via the journal if present
}
- W 參數對應著REPLICAS_SAFE,就是等待著W臺服務器完成寫操作
- WMode 可以寫mongo安全中的前四個."none","normal","safe","majority"
- WTimeout 注釋寫的蠻清楚的
- FSync 將異步寫變為同步寫,即是等待mongo返回寫入的信息反饋
- J 相當于等待寫入日志再返回.