国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MongoDB 可調節(jié)的一致性,其他數(shù)據庫都不行系列 (白皮書 翻譯)--2

這篇具有很好參考價值的文章主要介紹了MongoDB 可調節(jié)的一致性,其他數(shù)據庫都不行系列 (白皮書 翻譯)--2。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

開頭還是介紹一下群,如果感興趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有問題,有需求都可以加群群內有各大數(shù)據庫行業(yè)大咖,CTO,可以解決你的問題。加群請聯(lián)系 liuaustin3 ,(共2000人左右 1 + 2 + 3 + 4 +5) 新人獎直接分配到5群,另歡迎 OpenGauss 的技術人員加入。

mongodb,數(shù)據庫,mongodb

這里翻譯一篇關于 mongodb 數(shù)據一致性的白皮書,這是一份有10頁的文檔?;跀?shù)據一致性的部分內容,在其他的傳統(tǒng)數(shù)據庫,緩存數(shù)據庫都不存在,也是一個讓傳統(tǒng)DBA 想不明白的部分,所以進行翻譯。

繼續(xù)第一篇:

在上一篇中我們討論了寫入和讀取的concern的級別,下面我們將討論細節(jié),在本文中,我們將在存儲引擎層引用一個事務為wiredTiger事務,為提供高可用性,Mongodb 提供了作為復制集運行數(shù)據庫的功能,復制集合采用基于 leader的一致性協(xié)議,類似raft協(xié)議,在一個復制集中存在一個primary和眾多的secondary,主節(jié)點接受客戶的數(shù)據寫入并將其 插入到oplog的日志,oplog是一個邏輯日志,齊總每個條目包含關于如何應對單個數(shù)據庫操作的信息,每個條目都有自己的時間戳這些時間戳是有序的,這些時間戳在節(jié)點日志中是唯一且完全有序的,oplog條目不包含足夠的信息來撤銷操作,可以看做一個普通的文檔的集合,當不在需要的時候,最老的文檔將被刪除,文檔會被重復利用,循環(huán)利用,從節(jié)點復制OPLOG并應用,通過這個方式來同步數(shù)據,基于這樣的方式,其他的從及節(jié)點也可以從,secondary 上拉去自己還未得到的oplog,一旦受到就應用,不必以事務的方式來應用。

客戶端寫入必須發(fā)送到主節(jié)點,而讀取可以發(fā)送到主節(jié)點或從節(jié)點,客戶通過驅動程序與復制集進行交互,驅動程序是一個客戶端的庫,實現(xiàn)了與復制集正確通信兵監(jiān)控其健康狀態(tài)的標準規(guī)范,在內部,驅動程序通過類似RPC的協(xié)議與復制集的節(jié)點通信,以BSON格式發(fā)送數(shù)據,為實現(xiàn)水平擴展MongoDB 還提供了分片功能,允許用戶將數(shù)據分布在多個復制集中,但本文不會討論分片的詳細信息。

MongoDB中的一致性級別,在MongoDB復制集中,一致性級別通過ReadConcern和writeConcern級別想客戶暴露,這兩個級別是任何讀取或寫入操作的參數(shù),要理解和讀取和寫入關注的語義,需要對MongoDB 復制系統(tǒng)中的操作的生命周期有了解,MongoDB復制系統(tǒng)將進入系統(tǒng)的而每個寫入操作串行到oplog中,當操作由副本集的主節(jié)點處理時,該操作的效果必須被寫入數(shù)據庫,并且該操作的描述也必須寫入oplog,MongoDB中的所有操作都發(fā)生在wiredTiger 事務中,當操作的事務提交是,我們稱為本地提交,一旦他被寫入數(shù)據庫和oplog中,他可以被復制到從節(jié)點,當oplog數(shù)據傳播到足夠多的節(jié)點的情況下,我們稱之為大多數(shù)提交,這意味著它在復制集中是永久持久性。

writeConcern可以被指定為數(shù)值,或majority,在任何寫入語句中,w:1寫操作的客戶端將在該寫入在服務器的主節(jié)點后,立即受到確認,當你將語句中帶入 w:N 完成的時候,寫操作至少會寫入N個服務器后才在本地將事務提交,當你寫入 w:majority的時候,寫操作客戶端在寫入操作被大多數(shù)提交之前不會受到事務的確認信息。

這意味著,寫入將對復制級中任意一組節(jié)點的臨時或永久性來說是具有彈性的,這也是Mongodb 在事務的一致性上,能做到其他數(shù)據庫無法達到的彈性。假設你希望你寫入的數(shù)據在操作系統(tǒng)層面或硬件層面不存在丟失的可能性,則 w:大多數(shù),可以向你的寫入的客戶端保證數(shù)據不丟失。

寫關注還可以接受一個布爾值,"j"參數(shù),該參數(shù)確定數(shù)據在想客戶端確認之前是否在復制節(jié)點上被日志記錄,甚至你可以指定數(shù)據必須寫到你指定的那個節(jié)點上,本文不再詳細討論j 或 tag set選項,指定寫入關注客戶端操作可能會收到服務器不同類型的相應,這些寫入關注相應可分為兩類,滿足和不滿足,滿足的寫入關注意味著必須以滿足必要條件,如在w:2的情況下,客戶端會保證已經有兩個數(shù)據庫服務器節(jié)點寫入了數(shù)據后才能反饋寫入任務完成,對于不滿足的寫入關注,這并不一定意味著寫入失敗,寫入只是為達到預期的寫入節(jié)點數(shù)量的需求,稍等寫入達到節(jié)點的數(shù)量要求就會進行反饋。

readConcern 確定從服務器返回的數(shù)據的持久性和在某些情況下的一致性,在readConcern級別"local"執(zhí)行讀取操作的時候,返回的數(shù)據將反應查詢執(zhí)行在副本集合中的部分節(jié)點的局部情況,(這里不是翻譯,是我個人的理解,傳統(tǒng)DBA可以理解為臟讀,但僅僅是類似并不是概念的完全對齊,只是方便快速理解),這里并沒有保證返回的數(shù)據是大多數(shù)提交的,他只反應特定節(jié)點所知道的最新的數(shù)據情況,存在讀取的數(shù)據。在他讀取任何本地提交的數(shù)據,使用readConcern級別"majority"進行讀取操作,保證只返回大多數(shù)提交的數(shù)據,對于大多數(shù)讀取,返回的數(shù)據的是否是最新的并不重要,而是已經確認一定會commit的數(shù)據。

同時MongoDB還提供了可線性化的readConcern,當w:majority寫操作結合時提供最強的一致性保證,使用readConcern 級別“線性化”進行讀取的操作保證返回在讀取操作開始前返回的結果如上提出的在大多數(shù)Mongodb 已經落盤。在操作中這是自動判斷的,在讀取的某個瞬間來判斷返回的數(shù)據是否在大多數(shù)節(jié)點應用。

MongoDB提供可用和快照讀取的級別,支持因果一致性讀取的能力,同時MongoDB 本身雖然是文檔數(shù)據庫,但具有MVCC的能力,提供快照隔離,由可用“讀取”關注提供的一些特定的細節(jié)在本文中,不做討論。

mongodb,數(shù)據庫,mongodb文章來源地址http://www.zghlxwxcb.cn/news/detail-841259.html

到了這里,關于MongoDB 可調節(jié)的一致性,其他數(shù)據庫都不行系列 (白皮書 翻譯)--2的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 緩存和數(shù)據庫一致性問題分析

    目錄 1、數(shù)據不一致的原因 1.1 并發(fā)操作 1.2 非原子操作 1.3 數(shù)據庫主從同步延遲 2、數(shù)據不一致的解決方案 2.1 并發(fā)操作 2.2 非原子操作 2.3 主從同步延遲 2.4 最終方案 3、不同場景下的特殊考慮 3.1 讀多寫少的場景 3.2 讀少寫多的場景 導致緩存和數(shù)據庫數(shù)據不一致的原因有三個

    2024年02月14日
    瀏覽(25)
  • 分布式數(shù)據庫-事務一致性

    分布式數(shù)據庫-事務一致性

    version: v-2023060601 author: 路__ 分布式數(shù)據庫的“強一致性”應該包含兩個方面: serializability(串行) and linearizability(線性一致) ,上述圖為“Highly Available Transactions: Virtues and Limitations”論文中對于一致性模型的介紹。圖中箭頭表示一致性模型之間的關系。對于異步網絡上的分

    2024年02月08日
    瀏覽(28)
  • 如何保證ES和數(shù)據庫的數(shù)據一致性?

    如何保證ES和數(shù)據庫的數(shù)據一致性?

    在業(yè)務中,我們通常需要把數(shù)據庫中的數(shù)據變更同步到ES中,那么如何保證數(shù)據庫和ES的一致性呢?通常有以下幾種做法: 雙寫 在代碼中,對數(shù)據庫和ES進行雙寫,并且先操作本地數(shù)據庫,后操作ES,而且還需要把兩個操作放到一個事務中: ?在以上邏輯中,如果寫數(shù)據庫成功

    2024年04月28日
    瀏覽(22)
  • redis實戰(zhàn)-緩存數(shù)據&解決緩存與數(shù)據庫數(shù)據一致性

    redis實戰(zhàn)-緩存數(shù)據&解決緩存與數(shù)據庫數(shù)據一致性

    緩存( Cache),就是數(shù)據交換的 緩沖區(qū) ,俗稱的緩存就是 緩沖區(qū)內的數(shù)據 ,一般從數(shù)據庫中獲取,存儲于本地代碼。防止過高的數(shù)據訪問猛沖系統(tǒng),導致其操作線程無法及時處理信息而癱瘓,這在實際開發(fā)中對企業(yè)講,對產品口碑,用戶評價都是致命的;所以企業(yè)非常重視緩存技術,

    2024年02月12日
    瀏覽(36)
  • 怎樣保證數(shù)據庫和redis里的數(shù)據一致性

    使用緩存更新策略:在更新數(shù)據庫時,同時更新Redis中相應的數(shù)據。這可以通過編寫代碼來實現(xiàn),在數(shù)據庫更新操作完成后,同步更新Redis中對應的數(shù)據。這可以通過在代碼中使用事務來保證更新的原子性,確保數(shù)據庫和Redis中的數(shù)據保持一致。 使用消息隊列:可以將數(shù)據庫更

    2024年02月19日
    瀏覽(26)
  • Redis如何保證緩存和數(shù)據庫一致性?

    現(xiàn)在我們在面向增刪改查開發(fā)時,數(shù)據庫數(shù)據量大時或者對響應要求較快,我們就需要用到Redis來拿取數(shù)據。 Redis:是一種高性能的內存數(shù)據庫,它將數(shù)據以鍵值對的形式存儲在內存中,具有讀寫速度快、支持多種數(shù)據類型、原子性操作、豐富的特性等優(yōu)勢。 優(yōu)勢: 性能極高

    2024年01月16日
    瀏覽(41)
  • 怎么保證緩存與數(shù)據庫的最終一致性?

    怎么保證緩存與數(shù)據庫的最終一致性?

    目錄 零.讀數(shù)據的標準操作 一.Cache aside Patten--旁路模式 二.Read/Write Through Pattern--讀寫穿透 三.Write Back?Pattern--寫回 四.運用canal監(jiān)聽mysql的binlog實現(xiàn)緩存同步 這里想說的是不管哪種模式讀操作都是一樣的,這是一種統(tǒng)一的規(guī)范: 但寫操作和同步策略卻有不同。 這個是最常見的

    2024年04月08日
    瀏覽(26)
  • Redis---數(shù)據庫和緩存如何保證一致性?

    用「讀 + 寫」請求的并發(fā)的場景來分析: 假如某個用戶數(shù)據在緩存中不存在,請求 A 讀取數(shù)據時從數(shù)據庫中查詢到年齡為 20,在未寫入緩存中時另一個請求 B 更新數(shù)據。它更新數(shù)據庫中的年齡為 21,并且清空緩存。這時請求 A 把從數(shù)據庫中讀到的年齡為 20 的數(shù)據寫入到緩存

    2024年01月24日
    瀏覽(27)
  • Redis如何保障緩存與數(shù)據庫的數(shù)據一致性問題?

    Redis如何保障緩存與數(shù)據庫的數(shù)據一致性問題?

    目錄 一.最經典的數(shù)據庫加緩存的雙寫雙刪模式 二. 高并發(fā)場景下的緩存+數(shù)據庫雙寫不一致問題分析與解決方案設計 三、上面高并發(fā)的場景下,該解決方案要注意的問題 1.1 Cache Aside Pattern概念以及讀寫邏輯 (1)讀的時候,先讀緩存,緩存沒有的話,那么就讀數(shù)據庫,然后取

    2023年04月21日
    瀏覽(29)
  • 深入理解數(shù)據庫事務:確保數(shù)據完整性與一致性

    在現(xiàn)代信息系統(tǒng)中,數(shù)據是至關重要的資產之一。作為一名后端開發(fā)人員,與數(shù)據庫的交道必不可少,為了確保數(shù)據的完整性、一致性和可靠性,數(shù)據庫引入了事務的概念。本次將帶您深入了解數(shù)據庫事務的重要性、特性以及如何在應用程序中正確地使用事務來維護數(shù)據的穩(wěn)

    2024年02月12日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包