亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 1867 | 回復(fù): 0
打印 上一主題 下一主題

[MongoDB] MongoDB writeConcern原理解析 [復(fù)制鏈接]

求職 : Linux運(yùn)維
論壇徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亞洲杯之約旦
日期:2015-04-05 20:08:292015年亞洲杯之澳大利亞
日期:2015-04-09 09:25:552015年亞洲杯之約旦
日期:2015-04-10 17:34:102015年亞洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亞洲杯之日本
日期:2015-04-16 16:28:552015年亞洲杯紀(jì)念徽章
日期:2015-04-27 23:29:17操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-06-06 22:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-06-09 22:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-06-14 10:48 |只看該作者 |倒序?yàn)g覽
MongoDB支持客戶(hù)端靈活配置寫(xiě)入策略(writeConcern),以滿(mǎn)足不同場(chǎng)景的需求。

db.collection.insert({x: 1}, {writeConcern: {w: 1}})
writeConcern選項(xiàng)

MongoDB支持的WriteConncern選項(xiàng)如下

w: 數(shù)據(jù)寫(xiě)入到number個(gè)節(jié)點(diǎn)才向用客戶(hù)端確認(rèn)
{w: 0} 對(duì)客戶(hù)端的寫(xiě)入不需要發(fā)送任何確認(rèn),適用于性能要求高,但不關(guān)注正確性的場(chǎng)景
{w: 1} 默認(rèn)的writeConcern,數(shù)據(jù)寫(xiě)入到Primary就向客戶(hù)端發(fā)送確認(rèn)
{w: “majority”} 數(shù)據(jù)寫(xiě)入到副本集大多數(shù)成員后向客戶(hù)端發(fā)送確認(rèn),適用于對(duì)數(shù)據(jù)安全性要求比較高的場(chǎng)景,該選項(xiàng)會(huì)降低寫(xiě)入性能
j: 寫(xiě)入操作的journal持久化后才向客戶(hù)端確認(rèn)
默認(rèn)為”{j: false},如果要求Primary寫(xiě)入持久化了才向客戶(hù)端確認(rèn),則指定該選項(xiàng)為true
wtimeout: 寫(xiě)入超時(shí)時(shí)間,僅w的值大于1時(shí)有效。
當(dāng)指定{w: }時(shí),數(shù)據(jù)需要成功寫(xiě)入number個(gè)節(jié)點(diǎn)才算成功,如果寫(xiě)入過(guò)程中有節(jié)點(diǎn)故障,可能導(dǎo)致這個(gè)條件一直不能滿(mǎn)足,從而一直不能向客戶(hù)端發(fā)送確認(rèn)結(jié)果,針對(duì)這種情況,客戶(hù)端可設(shè)置wtimeout選項(xiàng)來(lái)指定超時(shí)時(shí)間,當(dāng)寫(xiě)入過(guò)程持續(xù)超過(guò)該時(shí)間仍未結(jié)束,則認(rèn)為寫(xiě)入失敗。
{w: “majority”}解析

{w: 1}、{j: true}等writeConcern選項(xiàng)很好理解,Primary等待條件滿(mǎn)足發(fā)送確認(rèn);但{w: “majority”}則相對(duì)復(fù)雜些,需要確認(rèn)數(shù)據(jù)成功寫(xiě)入到大多數(shù)節(jié)點(diǎn)才算成功,而MongoDB的復(fù)制是通過(guò)Secondary不斷拉取oplog并重放來(lái)實(shí)現(xiàn)的,并不是Primary主動(dòng)將寫(xiě)入同步給Secondary,那么Primary是如何確認(rèn)數(shù)據(jù)已成功寫(xiě)入到大多數(shù)節(jié)點(diǎn)的?

http://77g6ez.com1.z0.glb.clouddn.com/majority.png


Client向Primary發(fā)起請(qǐng)求,指定writeConcern為{w: “majority”},Primary收到請(qǐng)求,本地寫(xiě)入并記錄寫(xiě)請(qǐng)求到oplog,然后等待大多數(shù)節(jié)點(diǎn)都同步了這條/批oplog(Secondary應(yīng)用完oplog會(huì)向主報(bào)告最新進(jìn)度)。
Secondary拉取到Primary上新寫(xiě)入的oplog,本地重放并記錄oplog。為了讓Secondary能在第一時(shí)間內(nèi)拉取到主上的oplog,find命令支持一個(gè)awaitData的選項(xiàng),當(dāng)find沒(méi)有任何符合條件的文檔時(shí),并不立即返回,而是等待最多maxTimeMS(默認(rèn)為2s)時(shí)間看是否有新的符合條件的數(shù)據(jù),如果有就返回;所以當(dāng)新寫(xiě)入oplog時(shí),備立馬能獲取到新的oplog。
Secondary上有單獨(dú)的線(xiàn)程,當(dāng)oplog的最新時(shí)間戳發(fā)生更新時(shí),就會(huì)向Primary發(fā)送replSetUpdatePosition命令更新自己的oplog時(shí)間戳。
當(dāng)Primary發(fā)現(xiàn)有足夠多的節(jié)點(diǎn)oplog時(shí)間戳已經(jīng)滿(mǎn)足條件了,向客戶(hù)端發(fā)送確認(rèn)。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP