這個問題出現(xiàn)了好幾天。日志里面一天出現(xiàn)幾十次no write has been done on this connection, 所以研究好幾天。 程序那邊所做的操作就是在發(fā)生問題時,拋出getLastError 然后去查了一下getLastError的方法,W有幾個值, 1:任何一臺服務(wù)器寫完即可進行下一步
這個問題出現(xiàn)了好幾天。日志里面一天出現(xiàn)幾十次no write has been done on this connection,
所以研究好幾天。
程序那邊所做的操作就是在發(fā)生問題時,拋出getLastError
然后去查了一下getLastError的方法,W有幾個值,
1:任何一臺服務(wù)器寫完即可進行下一步操作。
2:必須要有2臺完成。
0:則是不考慮寫完成與否,繼續(xù)寫操作。
還有一個數(shù)值就是majority。查看官方文檔后,我的理解是,大于2的值都用majority。下面是官方的解釋
以上是官方對幾個參數(shù)的全部解釋。
還有一個值是j,true,false,true就打開日志記錄。
舉個例子,w:1,j:true,那么,就必須要一臺服務(wù)器寫操作完成后,并且將操作寫進journal,然后才可以進行下一步操作。
圖中可以看到,必須寫完journal才能返回有效值。
從紅線部分,可以看出,majority會替代大于2的數(shù)字,
回到題目,報那個錯,最后發(fā)現(xiàn)是版本問題。我們可以通過以下方法驗證,在2.2上,對一個空集合進行remove操作,然后馬上輸入getLastError(w:1),就會返回題目的錯誤,但是在2.6上,就不會。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com