mongo 版本是3.0.2, 應用程式是nodejs。 近期 發現mongo有更新丟失的情況,
nodejs的請求日志查到了丟失的資料請求, 回傳的狀態是200, 但是沒入mongo庫。
mongo是分兩個片 片上做了復制集,2個資料節點 一個投票節點。
目前庫的ops 不到1000, 更新占大部分。
nodejs:
var query = {
deviceId: deviceId,
date: moment(playDate.format("YYYY-MM-DD")),
adId: logItemInstance.adId,
orderId: logItemInstance.orderId,
is_cross_day: isCrossDay
};
var update = {
$set: { lut: moment(), appVersion: appVersion, agentId: agentId },
$inc: { count: 1 },
$push: {
Detail: {
pT: moment(),
dPT: logItemInstance.playTime,
recordId: value.id,
}
}
};
adPlayRecordNewModel.update(query, update, { upsert: true }, function (err, a) {
if (err) {
next(err);
} else {
subNext(null, subValue);
}
});
mongo模型:
var safe = { w: 1, j: true, wtimeout: 60 * 1000 };
var mongoose = require('mongoose');
var modelName = "adPlayRecordNewModel";
var dbName = "ad_play_records_new";
var modelSchema = new mongoose.Schema({
date: Date,
deviceId: String,
agentId: Number,
adId: Number,
orderId: Number,
count: Number,
appVersion: String,
lut: Date,
is_cross_day: { type: Boolean, default: false },
Detail: [{
pT: Date,
dPT: Date,
recordId: Number
}]
}, safe);
var instanse = mongoose.model(modelName, modelSchema, dbName);
module.exports = instanse;
uj5u.com熱心網友回復:
查一下opslog是否有這條更新陳述句uj5u.com熱心網友回復:
oplog里翻了 并沒有那條資料。 準備試試把w:1 改成 w:2, 在觀察觀察。 看官方檔案2.6就解決寫丟失的問題了。uj5u.com熱心網友回復:
升級到3的最新版本 之前3.0的小版本確實有提交的資料查不到的buguj5u.com熱心網友回復:
丟資料就嚴重了,mogodb果斷放棄uj5u.com熱心網友回復:
參考:https://docs.mongodb.com/manual/reference/write-concern/
w: <number>
Any data-bearing member of the replica set can contribute to write acknowledgment of w: <number> write operations.
The following table lists when the member can acknowledge the write based on the j value:
j is unspecified
Acknowledgment requires writing operation in memory (j: false).
--------------------
如果你沒有特別設定,那么是 j:false,這意味著你是只寫入記憶體,所以就算寫入成功,也不保證不丟失
uj5u.com熱心網友回復:
而且,也因為默認是寫入記憶體算成功,所以 oplog 也找不到uj5u.com熱心網友回復:
w:2 確保有兩個副本寫入,只要不同時 down,不會出現丟資料的問題如果要完全保證不丟資料,應該要確認寫入磁盤,也就是 j:true
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/45132.html
標籤:MongoDB
上一篇:資料結構第四章思維導圖
下一篇:大鵬展翅
