multi paxos協議

1. Redo Log 同步的核心目標

  • ?數據一致性:確保所有副本在事務提交后具有相同的數據視圖。
  • ?容錯性:在主副本故障時,從副本能快速接管并恢復數據。
  • ?高吞吐:通過批量同步和并行處理提升效率。

2. Multi Paxos 協議的同步流程

Multi Paxos 協議通過多輪投票機制協調副本間的日志同步。paxos協議用于保證同一個數據分片的多個副本之間的數據一致性。

(1)事務提交階段
  1. ?客戶端發起事務
    客戶端向主副本提交事務請求(包含讀寫操作和?redo log?記錄)。

    Client → Leader: {"type": "transaction", "redo_log": [...]}
  2. ?主副本處理事務

    • 主副本執行事務的讀寫操作,并將?redo log?記錄寫入本地日志。
    • ?關鍵動作:主副本作為 ?Proposer,生成包含?redo log?的提案(Proposal)。
(2)提案階段(Propose Phase)?
  • ?廣播提案
    主副本向所有從副本(包括自身)廣播提案,包含:
    • ?提案編號?(唯一標識,遞增)。
    • ?事務的?redo log
    Leader → Followers: {"proposal_id": 1, "redo_log": [...]}
(3)投票階段(Voting Phase)?
  • ?從副本投票
    每個從副本(Acceptor)根據以下規則決定是否接受提案:
    1. ?合法性檢查:提案的?proposal_id?必須大于已接受的提案。
    2. ?日志兼容性redo log?必須與本地已提交日志兼容(如順序一致)。
    Follower → Leader: {"vote": "accept", "proposal_id": 1}
  • ?多數派原則
    必須獲得 ?超過半數? 的投票(包括主副本自身)才能通過提案。
(4)確認階段(Commit Phase)?
  • ?提交通知
    主副本收到多數派確認后,廣播提交消息給所有副本:
    Leader → All: {"commit": "proposal_id": 1}
  • ?應用 Redo Log
    • 主副本立即應用?redo log?到本地數據。
    • 從副本在收到提交通知后,異步應用?redo log
??(5)同步完成
  • ?ACK確認
    從副本向主副本發送確認(ACK),表明?redo log?已應用。
    Follower → Leader: {"ack": "proposal_id": 1}
  • ?日志清理
    主副本刪除已提交的?redo log?節點,釋放存儲空間。

3. 故障恢復與同步

??(1)主副本失效
  • ?故障檢測
    從副本通過心跳機制(如每秒一次)檢測主副本活性。若連續丟失心跳,啟動 ?故障恢復
    Follower → Monitor: "Leader heartbeat timeout"
??(2)新領導者選舉
  • ?Multi Paxos 重新選舉
    所有存活節點參與新一輪 Multi Paxos 選舉:
    1. ?候選者提議:節點依次成為臨時領導者,廣播提案。
    2. ?投票表決:其他節點投票給最高優先級(如任期最長)的候選者。
    3. ?確認領導地位:獲得多數派投票的節點成為新主副本。
??(3)日志同步恢復
  • ?請求缺失日志
    新主副本向其他從副本查詢未提交的?redo log
    New Leader → Follower: "request_log_range(1, 100)"
  • ?同步未提交日志
    從副本返回缺失的?redo log,新主副本重新廣播提交。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74478.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

借壹起航東風,中國工廠出海開啟新征程

在經濟全球化不斷深入的當下,中國工廠正以積極的姿態投身海外市場,渴望在全球商業版圖中占據一席之地,綻放獨特的光彩。然而,出海之路充滿了挑戰與艱辛,品牌塑造困難重重、詢盤量不穩定、營銷成本居高不下等問題&#…

【MySQL】監控MySQL

目錄 使用狀態變量監控MySQL 使用性能模式(Performance Schema)監控MySQL 1.性能模式 2.性能模式設置表 3.sys模式 使用狀態變量監控MySQL 使用 show status 語句評估系統運行狀況。 可以添加范圍修飾符global或session來顯示全局或本地狀態信息。…

在linux系統上卸載并重新安裝Docker及配置國內鏡像源指

前言 Docker 作為容器化技術的核心工具,廣泛應用于開發、測試和部署環境。但在某些情況下(如版本沖突、配置錯誤等),可能需要徹底卸載并重新安裝 Docker。此外,國內用戶直接訪問 Docker 官方鏡像源可能速度較慢&#…

Mysql內置函數篇

🏝?專欄:Mysql_貓咪-9527的博客-CSDN博客 🌅主頁:貓咪-9527-CSDN博客 “欲窮千里目,更上一層樓。會當凌絕頂,一覽眾山小。” 目錄 7.函數 7.1 日期函數 函數總:?編輯 獲得當前日期 獲得…

小愛控制OK影視搜索視頻

在adb connect ip以后,可以這樣打開Ok影視,并且進行控制 pm list packages -3 #只顯示第三方 dumpsys package com.fongmi.android.tv |grep Activity #返回 com.fongmi.android.tv/.ui.activity.HomeActivity am start -n com.fongmi.android.tv/.u…

電機倍頻曲線的一些奇異特性-原因分析及應用

這里對感應電機倍頻曲線的特征進行了說明,然后將其特性用于電機轉差率和工況的測量。先給出可以直接利用的結論: 電機的工況和轉差率譜線會體現為5x,7x譜線調制在基頻附近。兩條調制過攜帶s信息的譜線距離基頻譜線的距離。 與真實轉速相對同步轉速的頻差…

雙指針技巧在C++中的應用:從基礎到進階

目錄 1.簡介 2.同向雙指針 2.1.數組去重 2.2.最大子數組和 2.3.鏈表反轉 2.4.字符串匹配(簡單版) 3.對向雙指針 3.1.兩數之和(有序數組) 3.2.盛最多水的容器 4.快慢指針 4.1.判斷鏈表是否有環 4.2.尋找鏈表的中間節點…

語言解碼雙生花:人類經驗與AI算法的鏡像之旅

大家好,我是吾鳴。 今天吾鳴要給大家分享一份由浙江大學出品的DeepSeek報告,報告從語言的奧秘,人類是如何通過語言來解碼世界,AI又是如何理解人類的語言,同時介紹了當下爆火的DeepSeek-V3和DeepSeek-R1兩種大模型的進化…

如何避免測試數據準備不充分或不可復用

避免測試數據準備不充分或不可復用的關鍵方法包括明確數據需求、統一數據管理工具、建立數據復用機制、定期維護更新測試數據以及加強團隊溝通與協作。 其中,統一數據管理工具對確保數據質量和復用性尤為重要。例如,許多團隊采用專門的測試數據管理工具以…

HTTP 核心知識點整理

1. HTTP 基礎 ?定義:HTTP(HyperText Transfer Protocol)是應用層協議,基于 ?請求-響應模型,用于客戶端(瀏覽器)與服務器之間的通信。?特點: ?無狀態:每次請求獨立&a…

湯臣倍健業績倒車:2024年利潤下滑超六成,三大核心品牌銷量失守

撰稿|行星 來源|貝多財經 湯臣倍健的2024年,“隱痛”不少。 3月22日,國內膳食營養補充劑供應商湯臣倍健股份有限公司(SZ:300416,下稱“湯臣倍健”)公布了2024年年度報告。財報顯示,湯臣倍健過去一年出現了…

C#中的Lambda表達式?

在C#中,?Lambda表達式?是一種比匿名方法更簡潔、更靈活的語法形式,用于定義匿名函數(Anonymous Function)。它通過>運算符實現,能夠大幅簡化委托和表達式樹的編寫,是現代C#編程中廣泛使用的核心特性之…

通信系統的性能指標

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、通信系統的性能指標概述二、數字通信系統的有效性指標三、數字通信系統的可靠性指標總結 前言 一、通信系統的性能指標概述 其中一個提高,另一個…

Linux:(模擬HTTP協議,GET和POST方法,Http的狀態碼)

目錄 一、認識HTTP協議 1.上網的本質 2.應用層的運行邏輯 3.HTTP的概念 二、url 1.認識網址 三、HTTP協議的宏觀理解 1.HTTP請求 2.HTTP響應 3.實際的HTTP請求 (1)測試代碼 (2)接收HTTP請求 (3&#xff09…

動態規劃之完全背包

引言: 完全背包 隸屬于動態規劃中的背包問題。而 01背包 又是完全背包的基石,所以不懂01背包的,有必要了解一下。 什么是完全背包? 01背包問題:有一個背包承重為V,有N個物品,每個物品的價值(…

Codeforces Round 1003 (Div. 4)

ABCDE略 F 如果這個序列有兩個一樣的數挨著或者中間只隔一個其他的數&#xff0c;那么這個數就是多數。可以用反證法&#xff0c;構造一個多值序列無法不包含以上兩種結構。只需要在樹上找這兩種結構就可以了 #include <bits/stdc.h> #define int long long using nam…

金融數據分析(MATLAB)個人學習筆記(5):金融實證分析實例

一、國內外常用金融數據庫簡介 &#xff08;一&#xff09;國外數據庫 1. CRSP數據庫 CRSP&#xff08;Center for Research in Security Prices,證券價格研究中心&#xff09;是美國芝加哥大學商研所金融研究中心的產品。收集的美國股票和指數數據來源主要為紐約證券交易所…

硬件基礎(3):三極管(4):關于三極管的壓降

文章目錄 三極管的壓降使用與測量注意事項 三極管的壓降 三極管的“壓降”通常是指在一定工作狀態下&#xff0c;三極管不同電極之間產生的電壓差。對于常見的雙極性晶體管&#xff08;BJT&#xff09;而言&#xff0c;最常討論的壓降通常包括以下幾個部分&#xff1a; 基-發射…

[深度學習]圖像分類項目-食物分類

圖像分類項目-食物分類(監督學習和半監督學習) 文章目錄 圖像分類項目-食物分類(監督學習和半監督學習)項目介紹數據處理設定隨機種子讀取文件內容圖像增廣定義Dataset類 模型定義遷移學習 定義超參Adam和AdamW 訓練過程半監督學習定義Dataset類模型定義定義超參訓練過程 項目介…

5.go切片和map

切片的概念 數組和切片相比較切片的長度是不固定的&#xff0c;可以追加元素&#xff0c;在追加時可能會使切片的容量增大&#xff0c;所以可以將切片理解成 "動態數組"&#xff0c;但是&#xff0c;它不是數組&#xff0c;而是構建在數組基礎上的更高級的數據結構。…