久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】分布式一致性算法:Raft 算法(Raft 论文翻译)

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】分布式一致性算法:Raft 算法(Raft 论文翻译) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編者按:這篇文章來自簡書的一個位博主Jeffbond,讀了好幾遍,翻譯的質量比較高,原文鏈接:分布式一致性算法:Raft 算法(Raft 論文翻譯),版權一切歸原譯者。

同時,第6部分的集群成員變更讀起來還不是很流暢,需要了解這一部分的童鞋可以找下其他的文章看一下。

另外,在轉載文章的結尾,我貼了一些Raft算法的相關博文,在以下是轉載原文:

?


?

Raft 算法是可以用來替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易實現。本文對 raft 論文進行翻譯,希望能有助于讀者更方便地理解 raft 的思想。如果對 Paxos 算法感興趣,可以看我的另一篇文章:分布式系列文章——Paxos算法原理與推導

摘要

Raft 是用來管理復制日志(replicated log)的一致性協議。它跟 multi-Paxos 作用相同,效率也相當,但是它的組織結構跟 Paxos 不同。這使得 Raft 比 Paxos 更容易理解并且更容易在工程實踐中實現。為了使 Raft 協議更易懂,Raft將一致性的關鍵元素分開,如 leader 選舉、日志復制和安全性,并且它實施更強的一致性以減少必須考慮的狀態的數量。用戶研究的結果表明,Raft 比 Paxos 更容易學習。 Raft 還包括一個用于變更集群成員的新機制,它使用重疊的大多數(overlapping majorities)來保證安全性。

1 介紹

一致性算法允許多臺機器作為一個集群協同工作,并且在其中的某幾臺機器出故障時集群仍然能正常工作。 正因為如此,一致性算法在建立可靠的大規模軟件系統方面發揮了關鍵作用。 在過去十年中,Paxos [15,16] 主導了關于一致性算法的討論:大多數一致性的實現都是基于 Paxos 或受其影響,Paxos 已成為用于教授學生一致性相關知識的主要工具。

不幸的是,Paxos 實在是太難以理解,盡管許多人一直在努力嘗試使其更易懂。 此外,其架構需要復雜的改變來支持實際系統。 結果是,系統開發者和學生都在與 Paxos 斗爭。

在我們自己與 Paxos 斗爭之后,我們開始著手尋找一個新的一致性算法,可以為系統開發和教學提供更好的基礎。 我們的方法是不尋常的,因為我們的主要目標是可理解性:我們可以為實際系統定義一個一致性算法,并以比 Paxos 更容易學習的方式描述它嗎?在該算法的設計過程中,重要的不僅是如何讓該算法起作用,還有清晰地知道該算法為什么會起作用。

這項工作的結果是一個稱為 Raft 的一致性算法。 在設計 Raft 時,我們使用了特定的技術來提高可理解性,包括分解(Raft 分離 leader 選舉,日志復制和安全)和狀態空間減少(相對于 Paxos ,Raft 減少了不確定性程度和服務器之間彼此不一致的方式 )。 一項針對兩個大學的 43 名學生的用戶研究表明,Raft 比 Paxos 更容易理解:在學習兩種算法后,其中 33 名學生能夠更好地回答關于 Raft 的問題。

Raft 在許多方面類似于現有的一致性算法(尤其是 Oki 和 Liskov 的 Viewstamped Replication [29,22]),但它有幾個新特性:

  • Strong leader:在 Raft 中,日志條目(log entries)只從 leader 流向其他服務器。 這簡化了復制日志的管理,使得 raft 更容易理解。
  • Leader 選舉:Raft 使用隨機計時器進行 leader 選舉。 這只需在任何一致性算法都需要的心跳(heartbeats)上增加少量機制,同時能夠簡單快速地解決沖突。
  • 成員變更:Raft 使用了一種新的聯合一致性方法,其中兩個不同配置的大多數在過渡期間重疊。 這允許集群在配置更改期間繼續正常運行。

我們認為,Raft 優于 Paxos 和其他一致性算法,不僅在教學方面,在工程實現方面也是。 它比其他算法更簡單且更易于理解; 它被描述得十分詳細足以滿足實際系統的需要; 它有多個開源實現,并被多家公司使用; 它的安全性已被正式規定和驗證; 它的效率與其他算法相當。

本文的剩余部分介紹了復制狀態機問題(第 2 節),討論了 Paxos 的優點和缺點(第3節),描述了我們實現易理解性的方法(第 4 節),提出了Raft一致性算法(第 5-8 節),評估Raft(第 9 節),并討論了相關工作(第 10 節)。

2 復制狀態機(Replicated state machines)

一致性算法是在復制狀態機[37]的背景下產生的。 在這種方法中,一組服務器上的狀態機計算相同狀態的相同副本,并且即使某些服務器宕機,也可以繼續運行。

復制狀態機用于解決分布式系統中的各種容錯問題。 例如,具有單個 leader 的大規模系統,如 GFS [8],HDFS [38] 和 RAMCloud [33] ,通常使用單獨的復制狀態機來進行 leader 選舉和存儲 leader 崩潰后重新選舉需要的配置信息。Chubby [2] 和 ZooKeeper [11] 都是復制狀態機。

復制狀態機通常使用復制日志實現,如圖1所示。每個服務器存儲一個包含一系列命令的日志,其狀態機按順序執行日志中的命令。 每個日志中命令都相同并且順序也一樣,因此每個狀態機處理相同的命令序列。 這樣就能得到相同的狀態和相同的輸出序列。

圖1

一致性算法的工作就是保證復制日志的一致性。 每臺服務器上的一致性模塊接收來自客戶端的命令,并將它們添加到其日志中。 它與其他服務器上的一致性模塊通信,以確保每個日志最終以相同的順序包含相同的命令,即使有一些服務器失敗。 一旦命令被正確復制,每個服務器上的狀態機按日志順序處理它們,并將輸出返回給客戶端。 這樣就形成了高可用的復制狀態機。

實際系統中的一致性算法通常具有以下屬性:

  • 它們確保在所有非拜占庭條件下(包括網絡延遲,分區和數據包丟失,重復和亂序)的安全性(不會返回不正確的結果)。

  • 只要任何大多數(過半)服務器都可以運行,并且可以相互通信和與客戶通信,一致性算法就可用。 因此,五臺服務器的典型集群可以容忍任何兩臺服務器的故障。 假設服務器突然宕機; 它們可以稍后從狀態恢復并重新加入群集。

  • 它們不依賴于時序來確保日志的一致性:錯誤的時鐘和極端消息延遲可能在最壞的情況下導致可用性問題。

  • 在通常情況下,只要集群的大部分(過半服務器)已經響應了單輪遠程過程調用,命令就可以完成; 少數(一半以下)慢服務器不需要影響整個系統性能。

3 Paxos 存在的問題

在過去十年里,Leslie Lamport 的 Paxos 協議[15]幾乎成為一致性的同義詞:它是課堂上教授最多的一致性協議,并且大多數一致性的實現也以它為起點。 Paxos 首先定義了能夠在單個決策(例如單個復制日志條目)上達成一致的協議。 我們將這個子集稱為 single-decree Paxos。 然后 Paxos 組合該協議的多個實例以促進一系列決策,例如日志(multi-Paxos)。 Paxos能夠確保安全性和活性,并且支持集群成員的變更。它的正確性已被證明,并且在正常情況下是高效的。

不幸的是,Paxos 有兩個顯著的缺點。 第一個缺點是 Paxos 非常難以理解。 Paxos 的描述晦澀難懂,臭名昭著(譯者注:《The Part-time Parliament》比較晦澀難懂,但是《Paxos Made Simple》就比較容易理解); 很少有人成功地理解它,即使能理解也必須付出巨大的努力。 因此,已有幾個嘗試以更簡單的方式來描述 Paxos [16,20,21] 。 這些描述集中在 single-degree Paxos ,但它們仍然具有挑戰性。 在對 NSDI 2012 參會者的非正式調查中,我們發現很少有人喜歡 Paxos ,即使是經驗豐富的研究人員。 我們自己也跟 Paxos 進行了艱苦的斗爭; 我們也無法完全理解整個協議,直到閱讀了幾個更簡單的描述和自己設計替代 Paxos 的協議,整個過程花了將近一年。

Paxos 晦澀難懂的原因是作者選擇了single-degree Paxos作為基礎。Single-decree Paxos 分成兩個階段,這兩個階段沒有簡單直觀的說明,并且不能被單獨理解。因此,很難理解為什么該算法能起作用。Multi-Paxos 的合成規則又增加了許多復雜性。我們相信,對多個決定(日志而不是單個日志條目)達成一致的總體問題可以用其他更直接和更明顯的方式進行分解。

Paxos的第二個問題是它不能為構建實際的實現提供良好的基礎。 一個原因是沒有針對 multi-Paxos 的廣泛同意的算法。 Lamport的描述主要是關于 single-decree Paxos; 他描述了 multi-Paxos 的可能方法,但缺少許多細節。 已經有幾個嘗試來具體化和優化 Paxos ,例如[26],[39]和[13],但這些彼此各不相同并且跟 Lamport 描述的也不同。 像Chubby [4] 這樣的系統已經實現了類 Paxos(Paxos-like)算法,但大多數情況下,它們的細節并沒有公布。

此外,Paxos 的架構對于構建實際系統來說是一個糟糕的設計,這是 single-decree 分解的另一個結果。 例如,獨立地選擇日志條目集合,然后再將它們合并到順序日志中幾乎沒有任何好處,這只會增加復雜性。 圍繞日志設計系統是更簡單和有效的方法,新日志條目按照約束順序地添加到日志中。 Paxos 的做法適用于只需要做一次決策的情況,如果需要做一系列決策,更簡單和快速的方法是先選擇一個 leader ,然后讓該 leader 協調這些決策。

因此,實際的系統跟 Paxos 相差很大。幾乎所有的實現都是從 Paxos 開始,然后發現很多實現上的難題,接著就開發了一種和 Paxos 完全不一樣的架構。這樣既費時又容易出錯,而且 Paxos 本身晦澀難懂使得該問題更加嚴重。Paxos 的公式可能可以很好地證明它的正確性,但是現實的系統和 Paxos 差別是如此之大,以至于這些證明并沒有什么太大的價值。下面來自 Chubby 作者的評論非常典型:

在Paxos算法描述和實現現實系統中間有著巨大的鴻溝。最終的系統往往建立在一個還未被證明的協議之上。

由于以上問題,我們得出的結論是 Paxos 算法沒有為系統實踐和教學提供一個良好的基礎。考慮到一致性問題在大規模軟件系統中的重要性,我們決定嘗試設計一個能夠替代 Paxos 并且具有更好特性的一致性算法。Raft算法就是這次實驗的結果。

4 為可理解性而設計

在設計 Raft 算法過程中我們有幾個目標:它必須提供一個完整的實際的系統實現基礎,這樣才能大大減少開發者的工作;它必須在任何情況下都是安全的并且在典型的應用條件下是可用的;并且在正常情況下是高效的。但是我們最重要的目標也是最大的挑戰是可理解性。它必須保證能夠被大多數人容易地理解。另外,它必須能夠讓人形成直觀的認識,這樣系統的構建者才能夠在現實中進行擴展。

在設計 Raft 算法的時候,很多情況下我們需要在多個備選方案中進行選擇。在這種情況下,我們基于可理解性來評估備選方案:解釋各個備選方案的難道有多大(例如,Raft 的狀態空間有多復雜,是否有微妙的含義)?對于一個讀者而言,完全理解這個方案和含義是否容易?

我們意識到這樣的分析具有高度的主觀性;但是我們使用了兩種通用的技術來解決這個問題。第一個技術就是眾所周知的問題分解:只要有可能,我們就將問題分解成幾個相對獨立的,可被解決的、可解釋的和可理解的子問題。例如,Raft 算法被我們分成 leader 選舉,日志復制,安全性和成員變更幾個部分。

我們使用的第二個方法是通過減少狀態的數量來簡化狀態空間,使得系統更加連貫并且盡可能消除不確定性。特別的,所有的日志是不允許有空洞的,并且 Raft 限制了使日志之間不一致的方式。盡管在大多數情況下我們都試圖去消除不確定性,但是在某些情況下不確定性可以提高可理解性。特別是,隨機化方法雖然引入了不確定性,但是他們往往能夠通過使用相近的方法處理可能的選擇來減少狀態空間。我們使用隨機化來簡化 Raft 中的 leader 選舉算法。

5 Raft 一致性算法

Raft 是一種用來管理第 2 節中描述的復制日志的算法。圖 2 是該算法的濃縮,可用作參考,圖 3 列舉了該算法的一些關鍵特性。圖中的這些內容將在剩下的章節中逐一介紹。

圖2 圖3

Raft 通過首先選舉一個 distinguished leader,然后讓它全權負責管理復制日志來實現一致性。Leader 從客戶端接收日志條目,把日志條目復制到其他服務器上,并且在保證安全性的時候通知其他服務器將日志條目應用到他們的狀態機中。擁有一個 leader 大大簡化了對復制日志的管理。例如,領導人可以決定新的日志條目需要放在日志中的什么位置而不需要和其他服務器商議,并且數據都是從 leader 流向其他服務器。leader 可能宕機,也可能和其他服務器斷開連接,這時一個新的 leader 會被選舉出來。

通過選舉一個 leader 的方式,Raft 將一致性問題分解成了三個相對獨立的子問題,這些問題將會在接下來的子章節中進行討論:

  • Leader 選舉:當前的 leader 宕機時,一個新的 leader 必須被選舉出來。(章節 5.2)
  • 日志復制:Leader 必須從客戶端接收日志條目然后復制到集群中的其他節點,并且強制要求其他節點的日志和自己的保持一致。
  • 安全性:Raft 中安全性的關鍵是圖 3 中狀態機的安全性:如果有任何的服務器節點已經應用了一個特定的日志條目到它的狀態機中,那么其他服務器節點不能在同一個日志索引位置應用一條不同的指令。章節 5.4 闡述了 Raft 算法是如何保證這個特性的;該解決方案在選舉機制(5.2 節)上增加了額外的限制。

在展示一致性算法之后,本章節將討論可用性的一些問題以及時序在系統中的作用。

5.1 Raft 基礎

一個 Raft 集群包含若干個服務器節點;通常是 5 個,這樣的系統可以容忍 2 個節點的失效。在任何時刻,每一個服務器節點都處于這三個狀態之一:leader、follower 或者 candidate 。在正常情況下,集群中只有一個 leader 并且其他的節點全部都是 follower 。Follower 都是被動的:他們不會發送任何請求,只是簡單的響應來自 leader 和 candidate 的請求。Leader 處理所有的客戶端請求(如果一個客戶端和 follower 通信,follower 會將請求重定向給 leader)。第三種狀態,candidate ,是用來選舉一個新的 leader(章節 5.2)。圖 4 展示了這些狀態和他們之間的轉換關系;這些轉換關系在接下來會進行討論。

圖4

Raft 把時間分割成任意長度的任期(term),如圖 5 所示。任期用連續的整數標記。每一段任期從一次選舉開始,一個或者多個 candidate 嘗試成為 leader 。如果一個 candidate 贏得選舉,然后他就在該任期剩下的時間里充當 leader 。在某些情況下,一次選舉無法選出 leader 。在這種情況下,這一任期會以沒有 leader 結束;一個新的任期(包含一次新的選舉)會很快重新開始。Raft 保證了在任意一個任期內,最多只有一個 leader 。

?

圖5

不同的服務器節點觀察到的任期轉換的次數可能不同,在某些情況下,一個服務器節點可能沒有看到 leader 選舉過程或者甚至整個任期全程。任期在 Raft 算法中充當邏輯時鐘的作用,這使得服務器節點可以發現一些過期的信息比如過時的 leader 。每一個服務器節點存儲一個當前任期號,該編號隨著時間單調遞增。服務器之間通信的時候會交換當前任期號;如果一個服務器的當前任期號比其他的小,該服務器會將自己的任期號更新為較大的那個值。如果一個 candidate 或者 leader 發現自己的任期號過期了,它會立即回到 follower 狀態。如果一個節點接收到一個包含過期的任期號的請求,它會直接拒絕這個請求。

Raft 算法中服務器節點之間使用 RPC 進行通信,并且基本的一致性算法只需要兩種類型的 RPC。請求投票(RequestVote) RPC 由 candidate 在選舉期間發起(章節 5.2),追加條目(AppendEntries)RPC 由 leader 發起,用來復制日志和提供一種心跳機制(章節 5.3)。第 7 節為了在服務器之間傳輸快照增加了第三種 RPC。當服務器沒有及時的收到 RPC 的響應時,會進行重試, 并且他們能夠并行的發起 RPC 來獲得最佳的性能。

5.2 Leader 選舉

Raft 使用一種心跳機制來觸發 leader 選舉。當服務器程序啟動時,他們都是 follower 。一個服務器節點只要能從 leader 或 candidate 處接收到有效的 RPC 就一直保持 follower 狀態。Leader 周期性地向所有 follower 發送心跳(不包含日志條目的 AppendEntries RPC)來維持自己的地位。如果一個 follower 在一段選舉超時時間內沒有接收到任何消息,它就假設系統中沒有可用的 leader ,然后開始進行選舉以選出新的leader。

要開始一次選舉過程,follower 先增加自己的當前任期號并且轉換到 candidate 狀態。然后投票給自己并且并行地向集群中的其他服務器節點發送 RequestVote RPC(讓其他服務器節點投票給它)。Candidate 會一直保持當前狀態直到以下三件事情之一發生:(a) 它自己贏得了這次的選舉(收到過半的投票),(b) 其他的服務器節點成為 leader ,(c) 一段時間之后沒有任何獲勝者。這些結果會在下面的章節里分別討論。

當一個 candidate 獲得集群中過半服務器節點針對同一個任期的投票,它就贏得了這次選舉并成為 leader 。對于同一個任期,每個服務器節點只會投給一個 candidate ,按照先來先服務(first-come-first-served)的原則(注意:5.4 節在投票上增加了額外的限制)。要求獲得過半投票的規則確保了最多只有一個 candidate 贏得此次選舉(圖 3 中的選舉安全性)。一旦 candidate 贏得選舉,就立即成為 leader 。然后它會向其他的服務器節點發送心跳消息來確定自己的地位并阻止新的選舉。

在等待投票期間,candidate 可能會收到另一個聲稱自己是 leader 的服務器節點發來的 AppendEntries RPC 。如果這個 leader 的任期號(包含在RPC中)不小于 candidate 當前的任期號,那么 candidate 會承認該 leader 的合法地位并回到 follower 狀態。 如果 RPC 中的任期號比自己的小,那么 candidate 就會拒絕這次的 RPC 并且繼續保持 candidate 狀態。

第三種可能的結果是 candidate 既沒有贏得選舉也沒有輸:如果有多個 follower 同時成為 candidate ,那么選票可能會被瓜分以至于沒有 candidate 贏得過半的投票。當這種情況發生時,每一個候選人都會超時,然后通過增加當前任期號來開始一輪新的選舉。然而,如果沒有其他機制的話,該情況可能會無限重復。

Raft 算法使用隨機選舉超時時間的方法來確保很少發生選票瓜分的情況,就算發生也能很快地解決。為了阻止選票一開始就被瓜分,選舉超時時間是從一個固定的區間(例如 150-300 毫秒)隨機選擇。這樣可以把服務器都分散開以至于在大多數情況下只有一個服務器會選舉超時;然后該服務器贏得選舉并在其他服務器超時之前發送心跳。同樣的機制被用來解決選票被瓜分的情況。每個 candidate 在開始一次選舉的時候會重置一個隨機的選舉超時時間,然后一直等待直到選舉超時;這樣減小了在新的選舉中再次發生選票瓜分情況的可能性。9.3 節展示了該方案能夠快速地選出一個 leader 。

選舉的例子可以很好地展示可理解性是如何指導我們選擇設計方案的。起初我們打算使用一種等級系統(ranking system):每一個 candidate 都被賦予一個唯一的等級(rank),等級用來在競爭的 candidate 之間進行選擇。如果一個 candidate 發現另一個 candidate 擁有更高的等級,它就會回到 follower 狀態,這樣高等級的 candidate 能夠更加容易地贏得下一次選舉。但是我們發現這種方法在可用性方面會有一下小問題。我們對該算法進行了多次調整,但是每次調整之后都會有新的小問題。最終我們認為隨機重試的方法更加顯然且易于理解。

5.3 日志復制

Leader 一旦被選舉出來,就開始為客戶端請求提供服務。客戶端的每一個請求都包含一條將被復制狀態機執行的指令。Leader 把該指令作為一個新的條目追加到日志中去,然后并行的發起 AppendEntries RPC 給其他的服務器,讓它們復制該條目。當該條目被安全地復制(下面會介紹),leader 會應用該條目到它的狀態機中(狀態機執行該指令)然后把執行的結果返回給客戶端。如果 follower 崩潰或者運行緩慢,或者網絡丟包,領導人會不斷地重試 AppendEntries RPC(即使已經回復了客戶端)直到所有的 follower 最終都存儲了所有的日志條目。

日志以圖 6 展示的方式組織。每個日志條目存儲一條狀態機指令和 leader 收到該指令時的任期號。任期號用來檢測多個日志副本之間的不一致情況,同時也用來保證圖 3 中的某些性質。每個日志條目都有一個整數索引值來表明它在日志中的位置。

圖6

Leader 決定什么時候把日志條目應用到狀態機中是安全的;這種日志條目被稱為已提交的。Raft 算法保證所有已提交的日志條目都是持久化的并且最終會被所有可用的狀態機執行。一旦創建該日志條目的 leader 將它復制到過半的服務器上,該日志條目就會被提交(例如在圖 6 中的條目 7)。同時,leader 日志中該日志條目之前的所有日志條目也都會被提交,包括由其他 leader 創建的條目。5.4 節討論在 leader 變更之后應用該規則的一些細節,并且證明了這種提交的規則是安全的。Leader 追蹤將會被提交的日志條目的最大索引,未來的所有 AppendEntries RPC 都會包含該索引,這樣其他的服務器才能最終知道哪些日志條目需要被提交。Follower 一旦知道某個日志條目已經被提交就會將該日志條目應用到自己的本地狀態機中(按照日志的順序)。

我們設計了 Raft 的日志機制來維持不同服務器之間日志高層次的一致性。這么做不僅簡化了系統的行為也使得系統行為更加可預測,同時該機制也是保證安全性的重要組成部分。Raft 維護著以下特性,這些同時也構成了圖 3 中的日志匹配特性:

  • 如果不同日志中的兩個條目擁有相同的索引和任期號,那么他們存儲了相同的指令。
  • 如果不同日志中的兩個條目擁有相同的索引和任期號,那么他們之前的所有日志條目也都相同。

Leader 在特定的任期號內的一個日志索引處最多創建一個日志條目,同時日志條目在日志中的位置也從來不會改變。該點保證了上面的第一條特性。第二個特性是由 AppendEntries RPC 執行一個簡單的一致性檢查所保證的。在發送 AppendEntries RPC 的時候,leader 會將前一個日志條目的索引位置和任期號包含在里面。如果 follower 在它的日志中找不到包含相同索引位置和任期號的條目,那么他就會拒絕該新的日志條目。一致性檢查就像一個歸納步驟:一開始空的日志狀態肯定是滿足 Log Matching Property(日志匹配特性) 的,然后一致性檢查保證了日志擴展時的日志匹配特性。因此,每當 AppendEntries RPC 返回成功時,leader 就知道 follower 的日志一定和自己相同(從第一個日志條目到最新條目)。

正常操作期間,leader 和 follower 的日志保持一致,所以 AppendEntries RPC 的一致性檢查從來不會失敗。然而,leader 崩潰的情況會使日志處于不一致的狀態(老的 leader 可能還沒有完全復制它日志里的所有條目)。這種不一致會在一系列的 leader 和 follower 崩潰的情況下加劇。圖 7 展示了在什么情況下 follower 的日志可能和新的 leader 的日志不同。Follower 可能缺少一些在新 leader 中有的日志條目,也可能擁有一些新 leader 沒有的日志條目,或者同時發生。缺失或多出日志條目的情況可能會涉及到多個任期。

? ?????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????? 圖7

圖 7:當一個 leader 成功當選時(最上面那條日志),follower 可能是(a-f)中的任何情況。每一個盒子表示一個日志條目;里面的數字表示任期號。Follower 可能會缺少一些日志條目(a-b),可能會有一些未被提交的日志條目(c-d),或者兩種情況都存在(e-f)。例如,場景 f 可能這樣發生,f 對應的服務器在任期 2 的時候是 leader ,追加了一些日志條目到自己的日志中,一條都還沒提交(commit)就崩潰了;該服務器很快重啟,在任期 3 重新被選為 leader,又追加了一些日志條目到自己的日志中;在這些任期 2 和任期 3 中的日志都還沒被提交之前,該服務器又宕機了,并且在接下來的幾個任期里一直處于宕機狀態。

在 Raft 算法中,leader 通過強制 follower 復制它的日志來解決不一致的問題。這意味著 follower 中跟 leader 沖突的日志條目會被 leader 的日志條目覆蓋。5.4 節會證明通過增加一個限制可以保證安全性。

要使得 follower 的日志跟自己一致,leader 必須找到兩者達成一致的最大的日志條目(索引最大),刪除 follower 日志中從那個點之后的所有日志條目,并且將自己從那個點之后的所有日志條目發送給 follower 。所有的這些操作都發生在對 AppendEntries RPCs 中一致性檢查的回復中。Leader 針對每一個 follower 都維護了一個 nextIndex ,表示 leader 要發送給 follower 的下一個日志條目的索引。當選出一個新 leader 時,該 leader 將所有 nextIndex 的值都初始化為自己最后一個日志條目的 index 加1(圖 7 中的 11)。如果 follower 的日志和 leader 的不一致,那么下一次 AppendEntries RPC 中的一致性檢查就會失敗。在被 follower 拒絕之后,leaer 就會減小 nextIndex 值并重試 AppendEntries RPC 。最終 nextIndex 會在某個位置使得 leader 和 follower 的日志達成一致。此時,AppendEntries RPC 就會成功,將 follower 中跟 leader 沖突的日志條目全部刪除然后追加 leader 中的日志條目(如果有需要追加的日志條目的話)。一旦 AppendEntries RPC 成功,follower 的日志就和 leader 一致,并且在該任期接下來的時間里保持一致。

如果想要的話,該協議可以被優化來減少被拒絕的 AppendEntries RPC 的個數。例如,當拒絕一個 AppendEntries RPC 的請求的時候,follower 可以包含沖突條目的任期號和自己存儲的那個任期的第一個 index 。借助這些信息,leader 可以跳過那個任期內所有沖突的日志條目來減小 nextIndex;這樣就變成每個有沖突日志條目的任期需要一個 AppendEntries RPC 而不是每個條目一次。在實踐中,我們認為這種優化是沒有必要的,因為失敗不經常發生并且也不可能有很多不一致的日志條目。

通過這種機制,leader 在當權之后就不需要任何特殊的操作來使日志恢復到一致狀態。Leader 只需要進行正常的操作,然后日志就能在回復 AppendEntries 一致性檢查失敗的時候自動趨于一致。Leader 從來不會覆蓋或者刪除自己的日志條目(圖 3 的 Leader Append-Only 屬性)。

這樣的日志復制機制展示了第 2 節中描述的一致性特性:只要過半的服務器能正常運行,Raft 就能夠接受,復制并應用新的日志條目;在正常情況下,新的日志條目可以在一個 RPC 來回中被復制給集群中的過半機器;并且單個運行慢的 follower 不會影響整體的性能。

5.4 安全性

前面的章節里描述了 Raft 算法是如何進行 leader 選舉和日志復制的。然而,到目前為止描述的機制并不能充分地保證每一個狀態機會按照相同的順序執行相同的指令。例如,一個 follower 可能會進入不可用狀態,在此期間,leader 可能提交了若干的日志條目,然后這個 follower 可能會被選舉為 leader 并且用新的日志條目覆蓋這些日志條目;結果,不同的狀態機可能會執行不同的指令序列。

這節通過對 leader 選舉增加一個限制來完善 Raft 算法。這一限制保證了對于給定的任意任期號, leader 都包含了之前各個任期所有被提交的日志條目(圖 3 中的 Leader Completeness 性質)。有了這一 leader 選舉的限制,我們也使得提交規則更加清晰。最后,我們展示了對于 Leader Completeness 性質的簡要證明并且說明該性質是如何領導復制狀態機執行正確的行為的。

5.4.1 選舉限制

在任何基于 leader 的一致性算法中,leader 最終都必須存儲所有已經提交的日志條目。在某些一致性算法中,例如 Viewstamped Replication[22],一開始并沒有包含所有已經提交的日志條目的服務器也可能被選為 leader 。這種算法包含一些額外的機制來識別丟失的日志條目并將它們傳送給新的 leader ,要么是在選舉階段要么在之后很快進行。不幸的是,這種方法會導致相當大的額外的機制和復雜性。Raft 使用了一種更加簡單的方法,它可以保證新 leader 在當選時就包含了之前所有任期號中已經提交的日志條目,不需要再傳送這些日志條目給新 leader 。這意味著日志條目的傳送是單向的,只從 leader 到 follower,并且 leader 從不會覆蓋本地日志中已經存在的條目。

Raft 使用投票的方式來阻止 candidate 贏得選舉除非該 candidate 包含了所有已經提交的日志條目。候選人為了贏得選舉必須與集群中的過半節點通信,這意味著至少其中一個服務器節點包含了所有已提交的日志條目。如果 candidate 的日志至少和過半的服務器節點一樣新(接下來會精確地定義“新”),那么他一定包含了所有已經提交的日志條目。RequestVote RPC 執行了這樣的限制: RPC 中包含了 candidate 的日志信息,如果投票者自己的日志比 candidate 的還新,它會拒絕掉該投票請求。

Raft 通過比較兩份日志中最后一條日志條目的索引值和任期號來定義誰的日志比較新。如果兩份日志最后條目的任期號不同,那么任期號大的日志更新。如果兩份日志最后條目的任期號相同,那么日志較長的那個更新。

5.4.2 提交之前任期內的日志條目

如同 5.3 節描述的那樣,一旦當前任期內的某個日志條目已經存儲到過半的服務器節點上,leader 就知道該日志條目已經被提交了。如果某個 leader 在提交某個日志條目之前崩潰了,以后的 leader 會試圖完成該日志條目的復制。然而,如果是之前任期內的某個日志條目已經存儲到過半的服務器節點上,leader 也無法立即斷定該日志條目已經被提交了。圖 8 展示了一種情況,一個已經被存儲到過半節點上的老日志條目,仍然有可能會被未來的 leader 覆蓋掉。

? ? ????????????????????????????????????????????????????????????????? 圖8

圖 8:如圖的時間序列展示了為什么 leader 無法判斷老的任期號內的日志是否已經被提交。在 (a) 中,S1 是 leader ,部分地復制了索引位置 2 的日志條目。在 (b) 中,S1 崩潰了,然后 S5 在任期 3 中通過 S3、S4 和自己的選票贏得選舉,然后從客戶端接收了一條不一樣的日志條目放在了索引 2 處。然后到 (c),S5 又崩潰了;S1 重新啟動,選舉成功,繼續復制日志。此時,來自任期 2 的那條日志已經被復制到了集群中的大多數機器上,但是還沒有被提交。如果 S1 在 (d) 中又崩潰了,S5 可以重新被選舉成功(通過來自 S2,S3 和 S4 的選票),然后覆蓋了他們在索引 2 處的日志。但是,在崩潰之前,如果 S1 在自己的任期里復制了日志條目到大多數機器上,如 (e) 中,然后這個條目就會被提交(S5 就不可能選舉成功)。 在這種情況下,之前的所有日志也被提交了。

為了消除圖 8 中描述的問題,Raft 永遠不會通過計算副本數目的方式來提交之前任期內的日志條目。只有 leader 當前任期內的日志條目才通過計算副本數目的方式來提交;一旦當前任期的某個日志條目以這種方式被提交,那么由于日志匹配特性,之前的所有日志條目也都會被間接地提交。在某些情況下,領導人可以安全地斷定一個老的日志條目已經被提交(例如,如果該條目已經存儲到所有服務器上),但是 Raft 為了簡化問題使用了一種更加保守的方法。

Raft 會在提交規則上增加額外的復雜性是因為當 leader 復制之前任期內的日志條目時,這些日志條目都保留原來的任期號。在其他的一致性算法中,如果一個新的 leader 要重新復制之前的任期里的日志時,它必須使用當前新的任期號。Raft 的做法使得更加容易推導出(reason about)日志條目,因為他們自始至終都使用同一個任期號。另外,和其他的算法相比,Raft 中的新 leader 只需要發送更少的日志條目(其他算法中必須在它們被提交之前發送更多的冗余日志條目來給它們重新編號)。

5.4.3 安全性論證

在給出了完整的 Raft 算法之后,我們現在可以更加精確的討論領導人完整性特性(Leader Completeness Prop-erty)(這一討論基于 9.2 節的安全性證明)。我們假設領導人完全性特性是不滿足的,然后我們推出矛盾來。假設任期 T 的 leader(leader T)在任期內提交了一個日志條目,但是該日志條目沒有被存儲到未來某些任期的 leader 中。假設 U 是大于 T 的沒有存儲該日志條目的最小任期號。

圖9

圖 9:如果 S1 (任期 T 的 leader)在它的任期里提交了一個新的日志條目,然后 S5 在之后的任期 U 里被選舉為 leader ,那么肯定至少會有一個節點,如 S3,既接收了來自 S1 的日志條目,也給 S5 投票了。

  • U 一定在剛成為 leader 的時候就沒有那條被提交的日志條目了(leader 從不會刪除或者覆蓋任何條目)。

  • Leader T 復制該日志條目給集群中的過半節點,同時,leader U 從集群中的過半節點贏得了選票。因此,至少有一個節點(投票者)同時接受了來自 leader T 的日志條目和給 leader U 投票了,如圖 9。該投票者是產生矛盾的關鍵。

  • 該投票者必須在給 leader U 投票之前先接受了從 leader T 發來的已經被提交的日志條目;否則它就會拒絕來自 leader T 的 AppendEntries 請求(因為此時它的任期號會比 T 大)。

  • 該投票者在給 leader U 投票時依然保有這該日志條目,因為任何 U 、T 之間的 leader 都包含該日志條目(根據上述的假設),leader 從不會刪除條目,并且 follower 只有跟 leader 沖突的時候才會刪除條目。

  • 該投票者把自己選票投給 leader U 時,leader U 的日志必須至少和投票者的一樣新。這就導致了以下兩個矛盾之一。

  • 首先,如果該投票者和 leader U 的最后一個日志條目的任期號相同,那么 leader U 的日志至少和該投票者的一樣長,所以 leader U 的日志一定包含該投票者日志中的所有日志條目。這是一個矛盾,因為該投票者包含了該已被提交的日志條目,但是在上述的假設里,leader U 是不包含的。

  • 否則,leader U 的最后一個日志條目的任期號就必須比該投票者的大了。此外,該任期號也比 T 大,因為該投票者的最后一個日志條目的任期號至少和 T 一樣大(他包含了來自任期 T 的已提交的日志)。創建了 leader U 最后一個日志條目的之前的 leader 一定已經包含了該已被提交的日志條目(根據上述假設,leader U 是第一個不包含該日志條目的 leader)。所以,根據日志匹配特性,leader U 一定也包含該已被提交的日志條目,這里產生了矛盾。

  • 因此,所有比 T 大的任期的 leader 一定都包含了任期 T 中提交的所有日志條目。

  • 日志匹配特性保證了未來的 leader 也會包含被間接提交的日志條目,例如圖 8 (d) 中的索引 2。

  • 通過 Leader Completeness 特性,我們就能證明圖 3 中的狀態機安全特性,即如果某個服務器已經將某個給定的索引處的日志條目應用到自己的狀態機里了,那么其他的服務器就不會在相同的索引處應用一個不同的日志條目。在一個服務器應用一個日志條目到自己的狀態機中時,它的日志和 leader 的日志從開始到該日志條目都相同,并且該日志條目必須被提交。現在考慮如下最小任期號:某服務器在該任期號中某個特定的索引處應用了一個日志條目;日志完整性特性保證擁有更高任期號的 leader 會存儲相同的日志條目,所以之后任期里服務器應用該索引處的日志條目也會是相同的值。因此,狀態機安全特性是成立的。

    最后,Raft 要求服務器按照日志索引順序應用日志條目。再加上狀態機安全特性,這就意味著所有的服務器都會按照相同的順序應用相同的日志條目到自己的狀態機中。

    5.5 Follower 和 candidate 崩潰

    到目前為止,我們只關注了 leader 崩潰的情況。Follower 和 candidate 崩潰后的處理方式比 leader 崩潰要簡單的多,并且兩者的處理方式是相同的。如果 follower 或者 candidate 崩潰了,那么后續發送給他們的 RequestVote 和 AppendEntries RPCs 都會失敗。Raft 通過無限的重試來處理這種失敗;如果崩潰的機器重啟了,那么這些 RPC 就會成功地完成。如果一個服務器在完成了一個 RPC,但是還沒有響應的時候崩潰了,那么在它重啟之后就會再次收到同樣的請求。Raft 的 RPCs 都是冪等的,所以這樣的重試不會造成任何傷害。例如,一個 follower 如果收到 AppendEntries 請求但是它的日志中已經包含了這些日志條目,它就會直接忽略這個新的請求中的這些日志條目。

    5.6 定時(timing)和可用性

    Raft 的要求之一就是安全性不能依賴定時:整個系統不能因為某些事件運行得比預期快一點或者慢一點就產生錯誤的結果。但是,可用性(系統能夠及時響應客戶端)不可避免的要依賴于定時。例如,當有服務器崩潰時,消息交換的時間就會比正常情況下長,candidate 將不會等待太長的時間來贏得選舉;沒有一個穩定的 leader ,Raft 將無法工作。

    Leader 選舉是 Raft 中定時最為關鍵的方面。 只要整個系統滿足下面的時間要求,Raft 就可以選舉出并維持一個穩定的 leader:

    廣播時間(broadcastTime) << 選舉超時時間(electionTimeout) << 平均故障間隔時間(MTBF)

    在這個不等式中,廣播時間指的是一個服務器并行地發送 RPCs 給集群中所有的其他服務器并接收到響應的平均時間;選舉超時時間就是在 5.2 節中介紹的選舉超時時間;平均故障間隔時間就是對于一臺服務器而言,兩次故障間隔時間的平均值。廣播時間必須比選舉超時時間小一個量級,這樣 leader 才能夠可靠地發送心跳消息來阻止 follower 開始進入選舉狀態;再加上隨機化選舉超時時間的方法,這個不等式也使得選票瓜分的情況變得不可能。選舉超時時間需要比平均故障間隔時間小上幾個數量級,這樣整個系統才能穩定地運行。當 leader 崩潰后,整個系統會有大約選舉超時時間不可用;我們希望該情況在整個時間里只占一小部分。

    廣播時間和平均故障間隔時間是由系統決定的,但是選舉超時時間是我們自己選擇的。Raft 的 RPCs 需要接收方將信息持久化地保存到穩定存儲中去,所以廣播時間大約是 0.5 毫秒到 20 毫秒之間,取決于存儲的技術。因此,選舉超時時間可能需要在 10 毫秒到 500 毫秒之間。大多數的服務器的平均故障間隔時間都在幾個月甚至更長,很容易滿足時間的要求。

    6 集群成員變更

    到目前為止,我們都假設集群的配置(參與一致性算法的服務器集合)是固定不變的。但是在實踐中,偶爾會改變集群的配置的,例如替換那些宕機的機器或者改變復制程度。盡管可以通過使整個集群下線,更新所有配置,然后重啟整個集群的方式來實現,但是在更改期間集群會不可用。另外,如果存在手工操作步驟,那么就會有操作失誤的風險。為了避免這樣的問題,我們決定將配置變更自動化并將其納入到 Raft 一致性算法中來。

    為了使配置變更機制能夠安全,在轉換的過程中不能夠存在任何時間點使得同一個任期里可能選出兩個 leader 。不幸的是,任何服務器直接從舊的配置轉換到新的配置的方案都是不安全的。一次性自動地轉換所有服務器是不可能的,所以在轉換期間整個集群可能劃分成兩個獨立的大多數(見圖 10)。

    圖10

    圖 10:直接從一種配置轉到另一種配置是不安全的,因為各個機器會在不同的時候進行轉換。在這個例子中,集群從 3 臺機器變成了 5 臺。不幸的是,存在這樣的一個時間點,同一個任期里兩個不同的 leader 會被選出。一個獲得舊配置里過半機器的投票,一個獲得新配置里過半機器的投票。

    為了保證安全性,配置變更必須采用一種兩階段方法。目前有很多種兩階段的實現。例如,有些系統(比如,[22])在第一階段停掉舊的配置所以不能處理客戶端請求;然后在第二階段在啟用新的配置。在 Raft 中,集群先切換到一個過渡的配置,我們稱之為聯合一致(joint consensus);一旦聯合一致已經被提交了,那么系統就切換到新的配置上。聯合一致結合了老配置和新配置:

    • 日志條目被復制給集群中新、老配置的所有服務器。
    • 新、舊配置的服務器都可以成為 leader 。
    • 達成一致(針對選舉和提交)需要分別在兩種配置上獲得過半的支持。

    聯合一致允許獨立的服務器在不妥協安全性的前提下,在不同的時刻進行配置轉換過程。此外,聯合一致允許集群在配置變更期間依然響應客戶端請求。

    ? ? ???????????????????????????????????????????????????????????????????????????????????? 圖11

    集群配置在復制日志中以特殊的日志條目來存儲和通信;圖 11 展示了配置變更過程。當一個 leader 接收到一個改變配置從 C-old 到 C-new 的請求,它就為聯合一致將該配置(圖中的 C-old,new)存儲為一個日志條目,并以前面描述的方式復制該條目。一旦某個服務器將該新配置日志條目增加到自己的日志中,它就會用該配置來做出未來所有的決策(服務器總是使用它日志中最新的配置,無論該配置日志是否已經被提交)。這就意味著 leader 會使用 C-old,new 的規則來決定 C-old,new 的日志條目是什么時候被提交的。如果 leader 崩潰了,新 leader 可能是在 C-old 配置也可能是在 C-old,new 配置下選出來的,這取決于贏得選舉的 candidate 是否已經接收到了 C-old,new 配置。在任何情況下, C-new 在這一時期都不能做出單方面決定。

    一旦 C-old,new 被提交,那么 C-old 和 C-new 都不能在沒有得到對方認可的情況下做出決定,并且 leader 完整性特性保證了只有擁有 C-old,new 日志條目的服務器才能被選舉為 leader 。現在 leader 創建一個描述 C-new 配置的日志條目并復制到集群其他節點就是安全的了。此外,新的配置被服務器收到后就會立即生效。當新的配置在 C-new 的規則下被提交,舊的配置就變得無關緊要,同時不使用新配置的服務器就可以被關閉了。如圖 11 所示,任何時刻 C-old 和 C-new 都不能單方面做出決定;這保證了安全性。

    在關于配置變更還有三個問題需要解決。第一個問題是,新的服務器開始時可能沒有存儲任何的日志條目。當這些服務器以這種狀態加入到集群中,它們需要一段時間來更新來趕上其他服務器,這段它們無法提交新的日志條目。為了避免因此而造成的系統短時間的不可用,Raft 在配置變更前引入了一個額外的階段,在該階段,新的服務器以沒有投票權身份加入到集群中來(leader 也復制日志給它們,但是考慮過半的時候不用考慮它們)。一旦該新的服務器追趕上了集群中的其他機器,配置變更就可以按上面描述的方式進行。

    第二個問題是,集群的 leader 可能不是新配置中的一員。在這種情況下,leader 一旦提交了 C-new 日志條目就會退位(回到 follower 狀態)。這意味著有這樣的一段時間(leader 提交 C-new 期間),leader 管理著一個不包括自己的集群;它復制著日志但不把自己算在過半里面。Leader 轉換發生在 C-new 被提交的時候,因為這是新配置可以獨立運轉的最早時刻(將總是能夠在 C-new 配置下選出新的領導人)。在此之前,可能只能從 C-old 中選出領導人。

    第三個問題是,那些被移除的服務器(不在 C-new 中)可能會擾亂集群。這些服務器將不會再接收到心跳,所以當選舉超時,它們就會進行新的選舉過程。它們會發送帶有新任期號的 RequestVote RPCs ,這樣會導致當前的 leader 回到 follower 狀態。新的 leader 最終會被選出來,但是被移除的服務器將會再次超時,然后這個過程會再次重復,導致系統可用性很差。

    為了防止這種問題,當服務器認為當前 leader 存在時,服務器會忽略RequestVote RPCs 。特別的,當服務器在最小選舉超時時間內收到一個 RequestVote RPC,它不會更新任期號或者投票。這不會影響正常的選舉,每個服務器在開始一次選舉之前,至少等待最小選舉超時時間。相反,這有利于避免被移除的服務器的擾亂:如果 leader 能夠發送心跳給集群,那它就不會被更大的任期號廢黜。

    7 日志壓縮

    Raft 的日志在正常操作中隨著包含更多的客戶端請求不斷地增長,但是在實際的系統中,日志不能無限制地增長。隨著日志越來越長,它會占用越來越多的空間,并且需要花更多的時間來回放。如果沒有一定的機制來清除日志中積累的過期的信息,最終就會帶來可用性問題。

    快照技術是日志壓縮最簡單的方法。在快照技術中,整個當前系統的狀態都以快照的形式持久化到穩定的存儲中,該時間點之前的日志全部丟棄。快照技術被使用在 Chubby 和 ZooKeeper 中,接下來的章節會介紹 Raft 中的快照技術。

    增量壓縮方法,例如日志清理或者日志結構合并樹(log-structured merge trees,LSM 樹),都是可行的。這些方法每次只對一小部分數據進行操作,這樣就分散了壓縮的負載壓力。首先,它們先選擇一個積累了大量已經被刪除或者被覆蓋的對象的數據區域,然后重寫該區域還活著的對象,之后釋放該區域。和快照技術相比,它們需要大量額外的機制和復雜性,快照技術通過操作整個數據集來簡化該問題。狀態機可以用和快照技術相同的接口來實現 LSM 樹,但是日志清除方法就需要修改 Raft 了。

    ? ? ? ????????????????????????????????????????????????? 圖12

    一臺服務器用一個新快照替代了它日志中已經提交了的條目(索引 1 到 5),該快照只存儲了當前的狀態(變量 x 和 y 的值)。快照的 last included index 和 last included term 被保存來定位日志中條目 6 之前的快照

    圖 12 展示了 Raft 中快照的基本思想。每個服務器獨立地創建快照,快照只包括自己日志中已經被提交的條目。主要的工作是狀態機將自己的狀態寫入快照中。Raft 快照中也包含了少量的元數據:the last included index 指的是最后一個被快照取代的日志條目的索引值(狀態機最后應用的日志條目),the last included term 是該條目的任期號。保留這些元數據是為了支持快照后第一個條目的 AppendEntries 一致性檢查,因為該條目需要之前的索引值和任期號。為了支持集群成員變更(第 6 節),快照中也包括日志中最新的配置作為 last included index 。一旦服務器完成寫快照,他就可以刪除 last included index 之前的所有日志條目,包括之前的快照。

    盡管通常服務器都是獨立地創建快照,但是 leader 必須偶爾發送快照給一些落后的跟隨者。這通常發生在 leader 已經丟棄了需要發送給 follower 的下一條日志條目的時候。幸運的是這種情況在常規操作中是不可能的:一個與 leader 保持同步的 follower 通常都會有該日志條目。然而一個例外的運行緩慢的 follower 或者新加入集群的服務器(第 6 節)將不會有這個條目。這時讓該 follower 更新到最新的狀態的方式就是通過網絡把快照發送給它。

    Leader 使用 InstallSnapshot RPC 來發送快照給太落后的 follower ;見圖 13。當 follower 收到帶有這種 RPC 的快照時,它必須決定如何處理已經存在的日志條目。通常該快照會包含接收者日志中沒有的信息。在這種情況下,follower 丟棄它所有的日志;這些會被該快照所取代,并且可能一些沒有提交的條目會和該快照產生沖突。如果接收到的快照是自己日志的前面部分(由于網絡重傳或者錯誤),那么被快照包含的條目將會被全部刪除,但是快照之后的條目仍然有用并保留。

    圖13

    這種快照的方式違反了 Raft 的 strong leader 原則,因為 follower 可以在不知道 leader 狀態的情況下創建快照。但是我們認為這種違背是合乎情理的。Leader 的存在,是為了防止在達成一致性的時候的沖突,但是在創建快照的時候,一致性已經達成,因此沒有決策會沖突。數據依然只能從 leader 流到 follower ,只是 follower 可以重新組織它們的數據了。

    我們考慮過一種可替代的基于 leader 的快照方案,在該方案中,只有leader 會創建快照,然后 leader 會發送它的快照給所有的 follower 。但是這樣做有兩個缺點。第一,發送快照會浪費網絡帶寬并且延緩了快照過程。每個 follower 都已經擁有了創建自己的快照所需要的信息,而且很顯然,follower 從本地的狀態中創建快照遠比通過網絡接收別人發來的要來得經濟。第二,leader 的實現會更加復雜。例如,leader 發送快照給 follower 的同時也要并行地將新的日志條目發送給它們,這樣才不會阻塞新的客戶端請求。

    還有兩個問題會影響快照的性能。首先,服務器必須決定什么時候創建快照。如果快照創建過于頻繁,那么就會浪費大量的磁盤帶寬和其他資源;如果創建快照頻率太低,就要承擔耗盡存儲容量的風險,同時也增加了重啟時日志回放的時間。一個簡單的策略就是當日志大小達到一個固定大小的時候就創建一次快照。如果這個閾值設置得顯著大于期望的快照的大小,那么快照的磁盤帶寬負載就會很小。

    第二個性能問題就是寫入快照需要花費一段時間,并且我們不希望它影響到正常的操作。解決方案是通過寫時復制的技術,這樣新的更新就可以在不影響正在寫的快照的情況下被接收。例如,具有泛函數據結構的狀態機天然支持這樣的功能。另外,操作系統對寫時復制技術的支持(如 Linux 上的 fork)可以被用來創建整個狀態機的內存快照(我們的實現用的就是這種方法)。

    8 客戶端交互

    本節介紹客戶端如何和 Raft 進行交互,包括客戶端如何找到 leader 和 Raft 是如何支持線性化語義的。這些問題對于所有基于一致性的系統都存在,并且 Raft 的解決方案和其他的也差不多。

    Raft 的客戶端發送所有的請求給 leader 。當客戶端第一次啟動的時候,它會隨機挑選一個服務器進行通信。如果客戶端第一次挑選的服務器不是 leader ,那么該服務器會拒絕客戶端的請求并且提供關于它最近接收到的領導人的信息(AppendEntries 請求包含了 leader 的網絡地址)。如果 leader 已經崩潰了,客戶端請求就會超時;客戶端之后會再次隨機挑選服務器進行重試。

    我們 Raft 的目標是要實現線性化語義(每一次操作立即執行,只執行一次,在它的調用和回復之間)。但是,如上述,Raft 可能執行同一條命令多次:例如,如果 leader 在提交了該日志條目之后,響應客戶端之前崩潰了,那么客戶端會和新的 leader 重試這條指令,導致這條命令被再次執行。解決方案就是客戶端對于每一條指令都賦予一個唯一的序列號。然后,狀態機跟蹤每個客戶端已經處理的最新的序列號以及相關聯的回復。如果接收到一條指令,該指令的序列號已經被執行過了,就立即返回結果,而不重新執行該請求。

    只讀的操作可以直接處理而不需要記錄日志。但是,如果不采取任何其他措施,這么做可能會有返回過時數據(stale data)的風險,因為 leader 響應客戶端請求時可能已經被新的 leader 替代了,但是它還不知道自己已經不是最新的 leader 了。線性化的讀操作肯定不會返回過時數據,Raft 需要使用兩個額外的預防措施來在不使用日志的情況下保證這一點。首先,leader 必須有關于哪些日志條目被提交了的最新信息。Leader 完整性特性保證了 leader 一定擁有所有已經被提交的日志條目,但是在它任期開始的時候,它可能不知道哪些是已經被提交的。為了知道這些信息,它需要在它的任期里提交一個日志條目。Raft 通過讓 leader 在任期開始的時候提交一個空的沒有任何操作的日志條目到日志中來處理該問題。第二,leader 在處理只讀請求之前必須檢查自己是否已經被替代了(如果一個更新的 leader 被選舉出來了,它的信息就是過時的了)。Raft 通過讓 leader 在響應只讀請求之前,先和集群中的過半節點交換一次心跳信息來處理該問題。另一種可選的方案,leader 可以依賴心跳機制來實現一種租約的形式,但是這種方法依賴 timing 來保證安全性(假設時間誤差是有界的)。

    ?


    ?

    Raft相關文章:

    http://www.jdon.com/artichect/raft.html

    https://raft.github.io/
    https://www.zhihu.com/question/36648084

    https://www.cnblogs.com/cchust/p/5634782.html

    http://thesecretlivesofdata.com/raft/ (這個動態演示很給力)

    https://www.cnblogs.com/katsura/p/6549344.html

    https://www.jianshu.com/p/4711c4c32aab

    https://www.jianshu.com/p/096ae57d1fe0

    ?

    轉載于:https://www.cnblogs.com/gudi/p/8168235.html

    總結

    以上是生活随笔為你收集整理的【转】分布式一致性算法:Raft 算法(Raft 论文翻译)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    在线播放无码字幕亚洲 | 成人综合网亚洲伊人 | 色欲久久久天天天综合网精品 | 色爱情人网站 | 无套内射视频囯产 | 亚洲 a v无 码免 费 成 人 a v | 久久久婷婷五月亚洲97号色 | 成人亚洲精品久久久久软件 | 国产口爆吞精在线视频 | 97精品国产97久久久久久免费 | 日本乱偷人妻中文字幕 | 东京热无码av男人的天堂 | 亚洲精品欧美二区三区中文字幕 | 欧美性猛交内射兽交老熟妇 | 欧美日本精品一区二区三区 | 色婷婷av一区二区三区之红樱桃 | 日日橹狠狠爱欧美视频 | 国产精品va在线观看无码 | 久久精品中文闷骚内射 | 成人免费视频一区二区 | 久久久精品456亚洲影院 | 亚洲一区二区三区四区 | 欧美色就是色 | 熟女俱乐部五十路六十路av | 亚洲色欲色欲天天天www | 国产成人精品视频ⅴa片软件竹菊 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 2020久久香蕉国产线看观看 | 久久99精品国产麻豆蜜芽 | 欧美成人高清在线播放 | 熟妇人妻无码xxx视频 | 国产美女极度色诱视频www | 中文精品无码中文字幕无码专区 | 久久午夜无码鲁丝片秋霞 | 色婷婷香蕉在线一区二区 | 国产肉丝袜在线观看 | 国产电影无码午夜在线播放 | 中国女人内谢69xxxxxa片 | 中文字幕色婷婷在线视频 | 国产农村乱对白刺激视频 | 纯爱无遮挡h肉动漫在线播放 | 精品aⅴ一区二区三区 | 国产成人午夜福利在线播放 | 人人澡人人妻人人爽人人蜜桃 | 久久伊人色av天堂九九小黄鸭 | 中国女人内谢69xxxxxa片 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产精品高潮呻吟av久久 | 欧美成人免费全部网站 | 久久99精品久久久久婷婷 | 国产激情综合五月久久 | 自拍偷自拍亚洲精品10p | 国产性生交xxxxx无码 | 99国产欧美久久久精品 | aⅴ在线视频男人的天堂 | 国产乱人伦av在线无码 | 又色又爽又黄的美女裸体网站 | 亚洲精品无码人妻无码 | 精品日本一区二区三区在线观看 | 无码国产乱人伦偷精品视频 | 国精品人妻无码一区二区三区蜜柚 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲综合无码久久精品综合 | 精品乱码久久久久久久 | 伊人色综合久久天天小片 | 麻豆人妻少妇精品无码专区 | 无码成人精品区在线观看 | 天下第一社区视频www日本 | 久久午夜无码鲁丝片秋霞 | 亚洲爆乳大丰满无码专区 | 亚洲欧洲日本综合aⅴ在线 | 国语精品一区二区三区 | 国产精品igao视频网 | 久久精品国产大片免费观看 | 亚洲精品无码人妻无码 | 成 人 免费观看网站 | 亚洲色欲色欲欲www在线 | 日本精品久久久久中文字幕 | 一个人看的视频www在线 | 国产无套内射久久久国产 | 国产超级va在线观看视频 | 蜜臀av在线播放 久久综合激激的五月天 | 久久久成人毛片无码 | 国产国产精品人在线视 | 一二三四社区在线中文视频 | 在线欧美精品一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 日日干夜夜干 | 国产又粗又硬又大爽黄老大爷视 | 久久人人爽人人人人片 | 天堂а√在线地址中文在线 | 丰满护士巨好爽好大乳 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲精品国偷拍自产在线麻豆 | 欧美日韩亚洲国产精品 | 国产性生大片免费观看性 | 天天爽夜夜爽夜夜爽 | 国产一精品一av一免费 | 一本无码人妻在中文字幕免费 | 香蕉久久久久久av成人 | 亚洲の无码国产の无码影院 | 国产午夜视频在线观看 | 亚洲精品中文字幕乱码 | 国产疯狂伦交大片 | 国产亚洲精品久久久久久 | 极品嫩模高潮叫床 | 国产成人精品久久亚洲高清不卡 | 狠狠噜狠狠狠狠丁香五月 | 少妇久久久久久人妻无码 | 无码av最新清无码专区吞精 | 精品成在人线av无码免费看 | 国产精品爱久久久久久久 | av香港经典三级级 在线 | 老头边吃奶边弄进去呻吟 | 伊人色综合久久天天小片 | 久久午夜无码鲁丝片 | 国产精品怡红院永久免费 | 香蕉久久久久久av成人 | 九月婷婷人人澡人人添人人爽 | 黑森林福利视频导航 | 久久久久久九九精品久 | 女人被爽到呻吟gif动态图视看 | 精品无码一区二区三区的天堂 | 粉嫩少妇内射浓精videos | 国产精品99爱免费视频 | 综合人妻久久一区二区精品 | 人妻体内射精一区二区三四 | 黑人粗大猛烈进出高潮视频 | 国产精品久久久av久久久 | 日本熟妇人妻xxxxx人hd | 小鲜肉自慰网站xnxx | 四虎永久在线精品免费网址 | 久久久久久久久蜜桃 | 奇米影视888欧美在线观看 | 欧美日韩精品 | 天海翼激烈高潮到腰振不止 | 精品偷拍一区二区三区在线看 | 三上悠亚人妻中文字幕在线 | 图片小说视频一区二区 | 日日碰狠狠躁久久躁蜜桃 | 性欧美大战久久久久久久 | 伊人久久大香线焦av综合影院 | 少妇被粗大的猛进出69影院 | 久久成人a毛片免费观看网站 | 婷婷丁香五月天综合东京热 | 亚洲 a v无 码免 费 成 人 a v | 国产后入清纯学生妹 | 免费播放一区二区三区 | 精品亚洲韩国一区二区三区 | 色五月丁香五月综合五月 | 亚欧洲精品在线视频免费观看 | 国产精品久久久久久久影院 | 日韩精品一区二区av在线 | 国产亚洲日韩欧美另类第八页 | 牛和人交xxxx欧美 | 国产精品亚洲五月天高清 | 亚洲国产综合无码一区 | 亚洲人成人无码网www国产 | 国产免费观看黄av片 | 久久久久av无码免费网 | 久久久久久久女国产乱让韩 | 无套内谢的新婚少妇国语播放 | 久久久久久国产精品无码下载 | 国产性生交xxxxx无码 | 色情久久久av熟女人妻网站 | 久久综合激激的五月天 | 国产精品美女久久久网av | 亚洲综合久久一区二区 | 成熟妇人a片免费看网站 | 成人三级无码视频在线观看 | 久久精品国产日本波多野结衣 | √天堂资源地址中文在线 | 亚洲热妇无码av在线播放 | 国产成人一区二区三区在线观看 | 一区二区传媒有限公司 | 亚洲成熟女人毛毛耸耸多 | 牲欲强的熟妇农村老妇女 | 亚洲日韩一区二区三区 | 色一情一乱一伦一区二区三欧美 | 日韩精品无码一区二区中文字幕 | 在线精品国产一区二区三区 | 内射后入在线观看一区 | 亚洲欧美精品aaaaaa片 | 久久国产精品二国产精品 | 天堂无码人妻精品一区二区三区 | 国产精品99久久精品爆乳 | 无码人妻丰满熟妇区毛片18 | 中文精品久久久久人妻不卡 | 牲欲强的熟妇农村老妇女 | 大地资源中文第3页 | 亚洲 日韩 欧美 成人 在线观看 | 久久亚洲日韩精品一区二区三区 | 一个人看的视频www在线 | 九九久久精品国产免费看小说 | 免费无码肉片在线观看 | 97久久超碰中文字幕 | ass日本丰满熟妇pics | 少妇被粗大的猛进出69影院 | 亚洲の无码国产の无码影院 | 国产另类ts人妖一区二区 | 欧美一区二区三区视频在线观看 | 日日干夜夜干 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲日韩中文字幕在线播放 | 国产精品亚洲а∨无码播放麻豆 | 精品 日韩 国产 欧美 视频 | 亚洲の无码国产の无码步美 | 无码帝国www无码专区色综合 | 一个人看的视频www在线 | 欧美日韩一区二区三区自拍 | 国内丰满熟女出轨videos | 久久亚洲精品中文字幕无男同 | 人人爽人人爽人人片av亚洲 | 东北女人啪啪对白 | 在线天堂新版最新版在线8 | 国产在线aaa片一区二区99 | 国产午夜福利100集发布 | 日本乱人伦片中文三区 | 国产性生大片免费观看性 | 欧美午夜特黄aaaaaa片 | 国产精品资源一区二区 | 人妻少妇精品无码专区动漫 | 欧美亚洲国产一区二区三区 | 久久国产精品精品国产色婷婷 | 任你躁在线精品免费 | 日韩精品乱码av一区二区 | 无码播放一区二区三区 | 国产精品爱久久久久久久 | 玩弄少妇高潮ⅹxxxyw | 久久精品女人的天堂av | 国产成人无码午夜视频在线观看 | 东京一本一道一二三区 | 狂野欧美性猛交免费视频 | 97无码免费人妻超级碰碰夜夜 | а√天堂www在线天堂小说 | 偷窥日本少妇撒尿chinese | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 久久午夜无码鲁丝片秋霞 | 精品一区二区三区波多野结衣 | 妺妺窝人体色www在线小说 | 乱码av麻豆丝袜熟女系列 | 国产莉萝无码av在线播放 | 国产极品美女高潮无套在线观看 | 亚洲乱亚洲乱妇50p | 俺去俺来也www色官网 | 久9re热视频这里只有精品 | 日韩精品成人一区二区三区 | 国产两女互慰高潮视频在线观看 | 成人一区二区免费视频 | 99国产精品白浆在线观看免费 | 18无码粉嫩小泬无套在线观看 | 亚洲午夜无码久久 | 18禁黄网站男男禁片免费观看 | 亚洲日韩av一区二区三区四区 | 成人性做爰aaa片免费看不忠 | 亚洲成av人片在线观看无码不卡 | 成人无码精品1区2区3区免费看 | 国产成人综合在线女婷五月99播放 | 一个人看的www免费视频在线观看 | 国产精品人人妻人人爽 | 亚洲娇小与黑人巨大交 | 国产亚洲tv在线观看 | 日本熟妇乱子伦xxxx | 67194成是人免费无码 | 成熟妇人a片免费看网站 | 国产综合久久久久鬼色 | 日日摸夜夜摸狠狠摸婷婷 | 无套内谢的新婚少妇国语播放 | 欧洲欧美人成视频在线 | 好爽又高潮了毛片免费下载 | 成年美女黄网站色大免费全看 | 欧美激情内射喷水高潮 | 国产亚洲tv在线观看 | 久青草影院在线观看国产 | 国产成人亚洲综合无码 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲欧洲中文日韩av乱码 | 欧美日韩在线亚洲综合国产人 | 国产97色在线 | 免 | 欧美精品一区二区精品久久 | 波多野结衣一区二区三区av免费 | 久久精品国产大片免费观看 | 亚洲精品午夜国产va久久成人 | 国产精品丝袜黑色高跟鞋 | 亚洲精品综合一区二区三区在线 | 午夜熟女插插xx免费视频 | 久久精品99久久香蕉国产色戒 | 无码任你躁久久久久久久 | 欧美大屁股xxxxhd黑色 | 内射巨臀欧美在线视频 | 欧美肥老太牲交大战 | 欧洲欧美人成视频在线 | 秋霞成人午夜鲁丝一区二区三区 | 水蜜桃亚洲一二三四在线 | 熟妇人妻无码xxx视频 | 国产无套粉嫩白浆在线 | 性色av无码免费一区二区三区 | 人妻少妇被猛烈进入中文字幕 | 欧美三级a做爰在线观看 | 300部国产真实乱 | 婷婷六月久久综合丁香 | 老子影院午夜精品无码 | 久久亚洲a片com人成 | 国产av一区二区三区最新精品 | aa片在线观看视频在线播放 | 麻豆蜜桃av蜜臀av色欲av | 97se亚洲精品一区 | 无人区乱码一区二区三区 | 俺去俺来也在线www色官网 | 曰韩无码二三区中文字幕 | 老头边吃奶边弄进去呻吟 | 初尝人妻少妇中文字幕 | 国产人妻人伦精品1国产丝袜 | 亚洲熟妇色xxxxx欧美老妇 | 中文字幕日韩精品一区二区三区 | 国产精品人人爽人人做我的可爱 | 日韩av激情在线观看 | 亚洲国精产品一二二线 | 国产三级久久久精品麻豆三级 | 免费视频欧美无人区码 | 日本一卡二卡不卡视频查询 | 久久综合激激的五月天 | 美女黄网站人色视频免费国产 | 国产激情一区二区三区 | 波多野结衣一区二区三区av免费 | 亚洲人成影院在线无码按摩店 | 亚洲人成人无码网www国产 | 国产成人无码av片在线观看不卡 | 东京无码熟妇人妻av在线网址 | 又粗又大又硬又长又爽 | 377p欧洲日本亚洲大胆 | 中文字幕 亚洲精品 第1页 | 国产人妻久久精品二区三区老狼 | 色婷婷av一区二区三区之红樱桃 | 亚洲精品无码国产 | 纯爱无遮挡h肉动漫在线播放 | 久久99精品久久久久婷婷 | 国产精品视频免费播放 | 一本色道婷婷久久欧美 | 最近免费中文字幕中文高清百度 | 亚洲区小说区激情区图片区 | 一本久久a久久精品vr综合 | 精品成在人线av无码免费看 | 九九综合va免费看 | 亚洲熟妇色xxxxx亚洲 | 日本成熟视频免费视频 | 人妻少妇精品无码专区动漫 | 88国产精品欧美一区二区三区 | 少妇被黑人到高潮喷出白浆 | 亚洲成a人片在线观看日本 | 性生交大片免费看女人按摩摩 | 精品国产精品久久一区免费式 | 熟妇人妻无码xxx视频 | 99re在线播放 | 扒开双腿吃奶呻吟做受视频 | 高潮喷水的毛片 | 老熟女重囗味hdxx69 | 国产乱人无码伦av在线a | ass日本丰满熟妇pics | 成人无码影片精品久久久 | 亚洲国产精品毛片av不卡在线 | 亚洲成av人片天堂网无码】 | 欧美乱妇无乱码大黄a片 | 精品久久久久香蕉网 | www成人国产高清内射 | 中文字幕+乱码+中文字幕一区 | 亚洲精品午夜无码电影网 | 国产精品视频免费播放 | 久久久久se色偷偷亚洲精品av | 99久久人妻精品免费一区 | 蜜桃臀无码内射一区二区三区 | 国产在线精品一区二区高清不卡 | 中文字幕av无码一区二区三区电影 | 大地资源网第二页免费观看 | 精品厕所偷拍各类美女tp嘘嘘 | 国产精品永久免费视频 | 秋霞特色aa大片 | 99久久精品午夜一区二区 | yw尤物av无码国产在线观看 | 国产情侣作爱视频免费观看 | 国产精华av午夜在线观看 | 四虎影视成人永久免费观看视频 | 玩弄少妇高潮ⅹxxxyw | 国产精品久久国产三级国 | 国产性生交xxxxx无码 | 牲欲强的熟妇农村老妇女 | 久久97精品久久久久久久不卡 | 99精品久久毛片a片 | 国产又粗又硬又大爽黄老大爷视 | 97夜夜澡人人双人人人喊 | 乱人伦中文视频在线观看 | 在线播放无码字幕亚洲 | 久久亚洲中文字幕精品一区 | 67194成是人免费无码 | 亚洲国产一区二区三区在线观看 | 欧美国产日韩亚洲中文 | 国产av一区二区三区最新精品 | 中文亚洲成a人片在线观看 | 永久黄网站色视频免费直播 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲码国产精品高潮在线 | 免费看男女做好爽好硬视频 | 久久久精品456亚洲影院 | 红桃av一区二区三区在线无码av | 人人妻人人澡人人爽欧美一区九九 | 中文字幕日产无线码一区 | 亚洲欧洲无卡二区视頻 | 亚洲欧洲日本无在线码 | 亚洲精品久久久久久一区二区 | 久久午夜无码鲁丝片秋霞 | 熟女少妇在线视频播放 | 最新国产乱人伦偷精品免费网站 | 成人无码视频在线观看网站 | 免费无码的av片在线观看 | 影音先锋中文字幕无码 | 男人的天堂2018无码 | 亚洲 a v无 码免 费 成 人 a v | 精品人人妻人人澡人人爽人人 | 野外少妇愉情中文字幕 | 亚洲国产综合无码一区 | 青青草原综合久久大伊人精品 | 国产综合久久久久鬼色 | 久久97精品久久久久久久不卡 | 国产午夜精品一区二区三区嫩草 | www国产亚洲精品久久久日本 | a片在线免费观看 | 99精品无人区乱码1区2区3区 | 国产精品无码成人午夜电影 | 中文字幕av日韩精品一区二区 | 少妇太爽了在线观看 | 又大又硬又爽免费视频 | 中文字幕日产无线码一区 | 男女作爱免费网站 | 亚洲高清偷拍一区二区三区 | 亚洲欧洲日本综合aⅴ在线 | 成在人线av无码免费 | 中文久久乱码一区二区 | 日韩成人一区二区三区在线观看 | 天海翼激烈高潮到腰振不止 | 日本欧美一区二区三区乱码 | 久久久无码中文字幕久... | 亚洲一区二区三区香蕉 | 午夜男女很黄的视频 | √8天堂资源地址中文在线 | 嫩b人妻精品一区二区三区 | 未满成年国产在线观看 | 色狠狠av一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 久久精品视频在线看15 | 国产亚洲视频中文字幕97精品 | 麻豆精产国品 | 青春草在线视频免费观看 | 性做久久久久久久久 | 亚洲一区二区三区香蕉 | 国产精品久久久久久久9999 | 日韩av无码中文无码电影 | 国产午夜福利100集发布 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 蜜臀av无码人妻精品 | 日韩精品乱码av一区二区 | 成人无码精品一区二区三区 | 欧美成人免费全部网站 | 无码av免费一区二区三区试看 | 午夜精品一区二区三区的区别 | 亚洲精品鲁一鲁一区二区三区 | 亚洲午夜福利在线观看 | 久久人人爽人人爽人人片av高清 | 久久精品国产99久久6动漫 | 波多野结衣av在线观看 | 亚洲热妇无码av在线播放 | 纯爱无遮挡h肉动漫在线播放 | 欧美亚洲国产一区二区三区 | 激情内射亚州一区二区三区爱妻 | 亚洲欧美日韩综合久久久 | 窝窝午夜理论片影院 | 97夜夜澡人人爽人人喊中国片 | 人人爽人人澡人人高潮 | 国产成人精品优优av | 99久久亚洲精品无码毛片 | 精品国产av色一区二区深夜久久 | 国产精品亚洲五月天高清 | 国内精品人妻无码久久久影院蜜桃 | 蜜桃臀无码内射一区二区三区 | 久久久久久亚洲精品a片成人 | 国产一区二区三区日韩精品 | 人妻人人添人妻人人爱 | 色综合久久久无码网中文 | 国产办公室秘书无码精品99 | 午夜精品久久久久久久 | 欧美老妇与禽交 | 成人aaa片一区国产精品 | 成人一在线视频日韩国产 | 精品一区二区三区无码免费视频 | 香蕉久久久久久av成人 | 最近的中文字幕在线看视频 | 学生妹亚洲一区二区 | 日韩成人一区二区三区在线观看 | 日日躁夜夜躁狠狠躁 | 欧美三级a做爰在线观看 | 亚洲一区二区观看播放 | 亚洲爆乳无码专区 | 蜜桃无码一区二区三区 | 国产精品无码一区二区三区不卡 | 青青草原综合久久大伊人精品 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲午夜久久久影院 | 亚洲国产欧美日韩精品一区二区三区 | 色一情一乱一伦 | 无码av中文字幕免费放 | 国产一区二区三区日韩精品 | 国产精品99久久精品爆乳 | 亚洲精品一区二区三区在线观看 | 给我免费的视频在线观看 | 亚洲精品一区二区三区婷婷月 | 激情国产av做激情国产爱 | 久精品国产欧美亚洲色aⅴ大片 | 成人无码视频在线观看网站 | 无码人妻黑人中文字幕 | 亚洲国产精品一区二区美利坚 | 成人试看120秒体验区 | 国产成人精品无码播放 | 99久久人妻精品免费一区 | 亚洲精品一区二区三区四区五区 | 色爱情人网站 | 76少妇精品导航 | 国产成人无码a区在线观看视频app | 欧美肥老太牲交大战 | 性色欲网站人妻丰满中文久久不卡 | 成人精品一区二区三区中文字幕 | 亚洲码国产精品高潮在线 | 欧洲vodafone精品性 | 国产麻豆精品一区二区三区v视界 | 熟妇女人妻丰满少妇中文字幕 | 露脸叫床粗话东北少妇 | 久久 国产 尿 小便 嘘嘘 | 亚洲最大成人网站 | 亚洲人亚洲人成电影网站色 | 欧美猛少妇色xxxxx | 中文字幕乱码人妻无码久久 | 久久aⅴ免费观看 | 麻豆蜜桃av蜜臀av色欲av | 狠狠色欧美亚洲狠狠色www | 国产尤物精品视频 | 精品国产一区二区三区av 性色 | 亚洲中文字幕无码一久久区 | 欧美熟妇另类久久久久久多毛 | 超碰97人人做人人爱少妇 | 国产小呦泬泬99精品 | 日本va欧美va欧美va精品 | 伊人色综合久久天天小片 | 国产性生交xxxxx无码 | 亚洲人成网站在线播放942 | 国产两女互慰高潮视频在线观看 | 亚洲精品一区二区三区四区五区 | 国产凸凹视频一区二区 | 婷婷五月综合缴情在线视频 | 亚洲日本va午夜在线电影 | 丰满少妇熟乱xxxxx视频 | 乱码午夜-极国产极内射 | 亚洲精品久久久久中文第一幕 | www国产亚洲精品久久久日本 | 熟女俱乐部五十路六十路av | 鲁一鲁av2019在线 | 国产精品久久福利网站 | 国产女主播喷水视频在线观看 | 精品日本一区二区三区在线观看 | 国产av无码专区亚洲a∨毛片 | 鲁鲁鲁爽爽爽在线视频观看 | 久久精品人人做人人综合 | 久久午夜无码鲁丝片秋霞 | 成人三级无码视频在线观看 | 亚洲 高清 成人 动漫 | 成人免费视频一区二区 | 色妞www精品免费视频 | 兔费看少妇性l交大片免费 | 久久精品99久久香蕉国产色戒 | 国产精品内射视频免费 | 欧美老熟妇乱xxxxx | 日韩少妇白浆无码系列 | 人人妻人人澡人人爽精品欧美 | 亚洲区小说区激情区图片区 | 一区二区三区高清视频一 | 18无码粉嫩小泬无套在线观看 | √天堂中文官网8在线 | 国产无套粉嫩白浆在线 | yw尤物av无码国产在线观看 | 国产极品美女高潮无套在线观看 | 无码一区二区三区在线 | 少妇的肉体aa片免费 | 久久五月精品中文字幕 | 99久久亚洲精品无码毛片 | 亚洲成av人片在线观看无码不卡 | 色妞www精品免费视频 | 一个人看的视频www在线 | 理论片87福利理论电影 | 精品国产乱码久久久久乱码 | 亚洲 a v无 码免 费 成 人 a v | 欧美性生交xxxxx久久久 | 日本乱偷人妻中文字幕 | 最新版天堂资源中文官网 | 亚洲国产精品毛片av不卡在线 | 精品厕所偷拍各类美女tp嘘嘘 | 国产口爆吞精在线视频 | 黑人巨大精品欧美一区二区 | 亚洲大尺度无码无码专区 | 少妇性荡欲午夜性开放视频剧场 | 在线看片无码永久免费视频 | 亚洲中文字幕久久无码 | 亲嘴扒胸摸屁股激烈网站 | 麻豆果冻传媒2021精品传媒一区下载 | 久久综合给合久久狠狠狠97色 | 中文字幕无码免费久久9一区9 | 久久久久免费精品国产 | 久久久久久亚洲精品a片成人 | 国产乱人伦偷精品视频 | 国产乱人伦偷精品视频 | 亚洲天堂2017无码 | 成人欧美一区二区三区 | 九月婷婷人人澡人人添人人爽 | 国产高清av在线播放 | 日韩无码专区 | 成年美女黄网站色大免费全看 | 国产成人精品三级麻豆 | 99久久久无码国产精品免费 | 欧美性生交xxxxx久久久 | 日韩无套无码精品 | 国产成人亚洲综合无码 | 欧美激情一区二区三区成人 | 亚洲国产av精品一区二区蜜芽 | 国产特级毛片aaaaaa高潮流水 | 色综合久久久无码中文字幕 | 国产色在线 | 国产 | 99麻豆久久久国产精品免费 | 一二三四社区在线中文视频 | 在线精品国产一区二区三区 | 成人免费视频一区二区 | 免费国产成人高清在线观看网站 | 成人亚洲精品久久久久软件 | 欧美熟妇另类久久久久久多毛 | 天天燥日日燥 | 性色欲网站人妻丰满中文久久不卡 | 日日碰狠狠躁久久躁蜜桃 | 日本肉体xxxx裸交 | 精品国产精品久久一区免费式 | 精品厕所偷拍各类美女tp嘘嘘 | 曰韩少妇内射免费播放 | 午夜精品一区二区三区在线观看 | 又黄又爽又色的视频 | 狠狠色色综合网站 | 国产人妻人伦精品 | 精品人人妻人人澡人人爽人人 | 国产网红无码精品视频 | 国产肉丝袜在线观看 | 无人区乱码一区二区三区 | 无码人妻出轨黑人中文字幕 | 色综合久久久久综合一本到桃花网 | 色婷婷香蕉在线一区二区 | 亚洲人亚洲人成电影网站色 | 国产热a欧美热a在线视频 | 波多野结衣av一区二区全免费观看 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 老熟女乱子伦 | 日本丰满熟妇videos | 色婷婷av一区二区三区之红樱桃 | 亚洲国产成人av在线观看 | 中文字幕乱码人妻无码久久 | 免费播放一区二区三区 | 狂野欧美性猛xxxx乱大交 | 成人精品一区二区三区中文字幕 | 色综合久久久无码网中文 | 性史性农村dvd毛片 | 人人妻人人澡人人爽欧美一区九九 | 天天做天天爱天天爽综合网 | 鲁一鲁av2019在线 | 秋霞成人午夜鲁丝一区二区三区 | 欧美大屁股xxxxhd黑色 | 丰满人妻被黑人猛烈进入 | 六十路熟妇乱子伦 | 免费人成网站视频在线观看 | 搡女人真爽免费视频大全 | 久久精品人妻少妇一区二区三区 | 亚洲阿v天堂在线 | 国产精品va在线观看无码 | 午夜福利一区二区三区在线观看 | 少妇性l交大片欧洲热妇乱xxx | 色综合天天综合狠狠爱 | 亚洲色欲色欲欲www在线 | 日本精品少妇一区二区三区 | 欧美人与牲动交xxxx | 5858s亚洲色大成网站www | 老熟女重囗味hdxx69 | 国产精品久久久久7777 | 好爽又高潮了毛片免费下载 | 国产精品久久久久影院嫩草 | 日本丰满护士爆乳xxxx | 无遮挡国产高潮视频免费观看 | 性欧美牲交在线视频 | 亚洲人亚洲人成电影网站色 | 性史性农村dvd毛片 | 国产精品久久久一区二区三区 | 国产av无码专区亚洲awww | 国产性生交xxxxx无码 | 狠狠色丁香久久婷婷综合五月 | 曰本女人与公拘交酡免费视频 | 久久久精品人妻久久影视 | 一本大道伊人av久久综合 | 300部国产真实乱 | 亚洲综合色区中文字幕 | 色欲久久久天天天综合网精品 | 精品人妻人人做人人爽 | 成人精品视频一区二区三区尤物 | 特黄特色大片免费播放器图片 | 狂野欧美性猛xxxx乱大交 | 丰满妇女强制高潮18xxxx | 亚洲中文无码av永久不收费 | 亚洲综合另类小说色区 | 人人爽人人爽人人片av亚洲 | 亚洲色偷偷偷综合网 | 国产精品久久久久久亚洲毛片 | 亚洲中文字幕乱码av波多ji | av香港经典三级级 在线 | 天天摸天天碰天天添 | 国产乱人伦偷精品视频 | 日本饥渴人妻欲求不满 | 熟妇人妻中文av无码 | 日韩精品乱码av一区二区 | 国产麻豆精品精东影业av网站 | 国产艳妇av在线观看果冻传媒 | 99久久久无码国产精品免费 | 亚洲精品欧美二区三区中文字幕 | 波多野结衣乳巨码无在线观看 | 亚洲国产日韩a在线播放 | 国产精品美女久久久网av | 乱人伦中文视频在线观看 | 亚洲中文字幕在线无码一区二区 | 精品久久久久久亚洲精品 | 亚洲欧美综合区丁香五月小说 | 亚洲日韩一区二区 | 男人扒开女人内裤强吻桶进去 | 露脸叫床粗话东北少妇 | 亚洲人成网站在线播放942 | 欧美自拍另类欧美综合图片区 | 欧美日韩色另类综合 | 久久无码中文字幕免费影院蜜桃 | 成人免费视频一区二区 | 国产成人精品久久亚洲高清不卡 | 久久国语露脸国产精品电影 | 色婷婷av一区二区三区之红樱桃 | 狠狠色色综合网站 | 2019午夜福利不卡片在线 | 国产av无码专区亚洲awww | 久久视频在线观看精品 | 精品久久久无码中文字幕 | 久久zyz资源站无码中文动漫 | 午夜福利一区二区三区在线观看 | 少妇无码av无码专区在线观看 | 熟女体下毛毛黑森林 | 亚洲日韩精品欧美一区二区 | 日本熟妇人妻xxxxx人hd | 日韩精品一区二区av在线 | 亚洲人亚洲人成电影网站色 | 国产婷婷色一区二区三区在线 | 国产精品va在线观看无码 | 67194成是人免费无码 | 熟妇人妻中文av无码 | 欧美阿v高清资源不卡在线播放 | 中文字幕+乱码+中文字幕一区 | 少妇性l交大片欧洲热妇乱xxx | 中文字幕av无码一区二区三区电影 | 日韩亚洲欧美精品综合 | 亚洲精品无码国产 | 波多野42部无码喷潮在线 | 日本大乳高潮视频在线观看 | 色婷婷av一区二区三区之红樱桃 | 国产亚洲精品精品国产亚洲综合 | 性色av无码免费一区二区三区 | 少妇性荡欲午夜性开放视频剧场 | 蜜臀av无码人妻精品 | 永久免费观看美女裸体的网站 | 无遮无挡爽爽免费视频 | 波多野结衣aⅴ在线 | 国产精品自产拍在线观看 | 亚洲日本va午夜在线电影 | 18禁止看的免费污网站 | 在线播放免费人成毛片乱码 | 成人无码精品1区2区3区免费看 | 双乳奶水饱满少妇呻吟 | 一个人看的视频www在线 | 亚洲第一无码av无码专区 | 成人欧美一区二区三区黑人 | 国产疯狂伦交大片 | 国产色在线 | 国产 | 欧美三级a做爰在线观看 | 国产亚洲欧美日韩亚洲中文色 | 台湾无码一区二区 | 无码成人精品区在线观看 | 中文字幕av无码一区二区三区电影 | 中文字幕乱码人妻二区三区 | 国产精品毛多多水多 | 日本丰满熟妇videos | 亚洲中文字幕成人无码 | 国产手机在线αⅴ片无码观看 | 午夜理论片yy44880影院 | 亚洲精品www久久久 | 日日天日日夜日日摸 | 大肉大捧一进一出好爽视频 | 日产精品高潮呻吟av久久 | 天天摸天天碰天天添 | 一本精品99久久精品77 | 国产舌乚八伦偷品w中 | 精品久久久无码中文字幕 | 一个人看的视频www在线 | √天堂资源地址中文在线 | 亚洲日本在线电影 | 人妻尝试又大又粗久久 | 无码乱肉视频免费大全合集 | 国产性生大片免费观看性 | 午夜精品久久久久久久 | 国产精品久久久久久久影院 | 国产精品久久福利网站 | 内射欧美老妇wbb | 日本免费一区二区三区最新 | 亚洲精品国偷拍自产在线麻豆 | 九九久久精品国产免费看小说 | 日本乱偷人妻中文字幕 | 国产网红无码精品视频 | 中文字幕无码av波多野吉衣 | 亚洲精品国产品国语在线观看 | 老司机亚洲精品影院无码 | 又粗又大又硬毛片免费看 | 正在播放老肥熟妇露脸 | 天堂无码人妻精品一区二区三区 | 国产av人人夜夜澡人人爽麻豆 | 丰腴饱满的极品熟妇 | 久久国内精品自在自线 | 小sao货水好多真紧h无码视频 | 青草视频在线播放 | 欧美性猛交xxxx富婆 | 午夜熟女插插xx免费视频 | 久久久久久久久蜜桃 | aa片在线观看视频在线播放 | 日本免费一区二区三区最新 | 76少妇精品导航 | 国产精品美女久久久久av爽李琼 | 日本一卡2卡3卡四卡精品网站 | 日韩精品成人一区二区三区 | 夜精品a片一区二区三区无码白浆 | 欧洲精品码一区二区三区免费看 | 亚洲国产精品成人久久蜜臀 | 精品久久综合1区2区3区激情 | 久久久久久久人妻无码中文字幕爆 | 成人亚洲精品久久久久 | 国产女主播喷水视频在线观看 | √天堂中文官网8在线 | 亚洲va欧美va天堂v国产综合 | 无人区乱码一区二区三区 | 蜜桃视频韩日免费播放 | 熟妇人妻无乱码中文字幕 | 欧美变态另类xxxx | 天堂а√在线中文在线 | 波多野结衣一区二区三区av免费 | 亚洲精品欧美二区三区中文字幕 | 久久熟妇人妻午夜寂寞影院 | 欧美丰满熟妇xxxx性ppx人交 | 人妻体内射精一区二区三四 | 国产精品欧美成人 | 西西人体www44rt大胆高清 | 亚洲日韩精品欧美一区二区 | 国产熟妇高潮叫床视频播放 | 1000部啪啪未满十八勿入下载 | 成 人 网 站国产免费观看 | 日韩欧美成人免费观看 | 狂野欧美激情性xxxx | 国产综合久久久久鬼色 | 对白脏话肉麻粗话av | 色一情一乱一伦一区二区三欧美 | 国产明星裸体无码xxxx视频 | 亚洲国产精品美女久久久久 | 久久久久久久女国产乱让韩 | 波多野结衣av一区二区全免费观看 | 欧美猛少妇色xxxxx | 久久婷婷五月综合色国产香蕉 | 男人和女人高潮免费网站 | 又大又黄又粗又爽的免费视频 | 老熟女重囗味hdxx69 | 人妻人人添人妻人人爱 | 亚洲色成人中文字幕网站 | 丰满肥臀大屁股熟妇激情视频 | 黑人巨大精品欧美黑寡妇 | 亚洲成a人片在线观看无码 | 久久人人爽人人爽人人片ⅴ | 国产情侣作爱视频免费观看 | 国产成人综合在线女婷五月99播放 | 大地资源网第二页免费观看 | 人妻夜夜爽天天爽三区 | 一二三四在线观看免费视频 | 国产成人无码av在线影院 | 亚洲色偷偷偷综合网 | 中文字幕无码热在线视频 | 亚洲欧美精品aaaaaa片 | 国产suv精品一区二区五 | 乱码午夜-极国产极内射 | 国产乱人偷精品人妻a片 | 亚洲一区二区三区无码久久 | 国产一区二区三区日韩精品 | 亚洲 日韩 欧美 成人 在线观看 | 一本久道久久综合婷婷五月 | 中文字幕无码人妻少妇免费 | v一区无码内射国产 | 狠狠色丁香久久婷婷综合五月 | 欧美一区二区三区视频在线观看 | 又黄又爽又色的视频 | 欧美怡红院免费全部视频 | 成人欧美一区二区三区 | 色窝窝无码一区二区三区色欲 | 国产手机在线αⅴ片无码观看 | 我要看www免费看插插视频 | 欧美高清在线精品一区 | 欧美35页视频在线观看 | 亚洲欧美中文字幕5发布 | 欧美精品一区二区精品久久 | 老太婆性杂交欧美肥老太 | 奇米影视7777久久精品人人爽 | 蜜桃臀无码内射一区二区三区 | 少妇无码av无码专区在线观看 | 色婷婷香蕉在线一区二区 | 精品 日韩 国产 欧美 视频 | 麻豆国产97在线 | 欧洲 | 久久久久人妻一区精品色欧美 | 国产精品久久精品三级 | 熟妇人妻激情偷爽文 | 奇米影视7777久久精品人人爽 | 人妻中文无码久热丝袜 | 欧美刺激性大交 | 一本久道高清无码视频 | 国内揄拍国内精品少妇国语 | 成人毛片一区二区 | 日本精品少妇一区二区三区 | 少妇被黑人到高潮喷出白浆 | 香蕉久久久久久av成人 | 日韩av无码一区二区三区不卡 | 蜜桃无码一区二区三区 | av人摸人人人澡人人超碰下载 | 十八禁真人啪啪免费网站 | 国产一区二区三区精品视频 | 亚洲熟熟妇xxxx | 精品偷拍一区二区三区在线看 | 国产69精品久久久久app下载 | 四虎4hu永久免费 | 亚洲の无码国产の无码步美 | 亚洲国产欧美国产综合一区 | 成人精品视频一区二区 | 日韩精品久久久肉伦网站 | 无码毛片视频一区二区本码 | 18禁止看的免费污网站 | 欧美国产日韩久久mv | 久久国语露脸国产精品电影 | 国产又粗又硬又大爽黄老大爷视 | 亚洲s色大片在线观看 | 国产精品无码成人午夜电影 | 高潮毛片无遮挡高清免费视频 | 乱码午夜-极国产极内射 | 久久精品女人的天堂av | 久久亚洲日韩精品一区二区三区 | 成人动漫在线观看 | 国产成人无码午夜视频在线观看 | aⅴ在线视频男人的天堂 | 久久www免费人成人片 | 中文亚洲成a人片在线观看 | 国产精品18久久久久久麻辣 | 欧美性猛交内射兽交老熟妇 | 性生交大片免费看女人按摩摩 | 又大又硬又爽免费视频 | 人妻互换免费中文字幕 | 无码人妻精品一区二区三区不卡 | 麻豆蜜桃av蜜臀av色欲av | 久久久久亚洲精品男人的天堂 | 成人毛片一区二区 | 久久婷婷五月综合色国产香蕉 | 少妇性l交大片欧洲热妇乱xxx | 美女扒开屁股让男人桶 | 国产超碰人人爽人人做人人添 | 天天躁夜夜躁狠狠是什么心态 | 人人妻人人澡人人爽欧美精品 | 亚洲最大成人网站 | 女高中生第一次破苞av | 成人综合网亚洲伊人 | 永久免费观看美女裸体的网站 | 香港三级日本三级妇三级 | 久久精品国产99精品亚洲 | 日本乱人伦片中文三区 | 亚洲色无码一区二区三区 | 99久久99久久免费精品蜜桃 | 无码国产色欲xxxxx视频 | 亚洲精品成人福利网站 | 免费人成在线视频无码 | 色综合久久久无码中文字幕 | 骚片av蜜桃精品一区 | 国产手机在线αⅴ片无码观看 | 久久久国产一区二区三区 | 国产尤物精品视频 | 男人扒开女人内裤强吻桶进去 | 特黄特色大片免费播放器图片 | 国产香蕉尹人综合在线观看 | 亚洲国产午夜精品理论片 | 2019nv天堂香蕉在线观看 | 欧美zoozzooz性欧美 | 人妻少妇被猛烈进入中文字幕 | 欧美自拍另类欧美综合图片区 | 风流少妇按摩来高潮 | 黑人巨大精品欧美一区二区 | 好屌草这里只有精品 | 亚洲国产精品久久久久久 | 久久精品国产大片免费观看 | 免费人成在线视频无码 | 理论片87福利理论电影 | 国产精品久久久久久无码 | 欧美日韩精品 | 小鲜肉自慰网站xnxx | 久久99热只有频精品8 | 国产午夜福利100集发布 | 国产精品欧美成人 | 无码精品国产va在线观看dvd | 秋霞成人午夜鲁丝一区二区三区 | 欧美zoozzooz性欧美 | 东京热一精品无码av | 亚洲精品国偷拍自产在线观看蜜桃 | 内射爽无广熟女亚洲 | 久久午夜夜伦鲁鲁片无码免费 | 国产人成高清在线视频99最全资源 | 国产成人综合美国十次 | 蜜桃视频韩日免费播放 | 欧美三级不卡在线观看 | 未满小14洗澡无码视频网站 | 日本在线高清不卡免费播放 | 中文字幕 人妻熟女 | 女人高潮内射99精品 | 国产午夜福利100集发布 | 国产麻豆精品一区二区三区v视界 | 精品无码av一区二区三区 | 免费视频欧美无人区码 | 在线看片无码永久免费视频 | 永久免费精品精品永久-夜色 | 色综合天天综合狠狠爱 | 久久久久免费精品国产 | 大胆欧美熟妇xx | 免费播放一区二区三区 | 乱码午夜-极国产极内射 | 成 人 网 站国产免费观看 | 天海翼激烈高潮到腰振不止 | 丰满岳乱妇在线观看中字无码 | 少妇人妻偷人精品无码视频 | 久久精品国产大片免费观看 | 国产热a欧美热a在线视频 | 99re在线播放 | 97久久超碰中文字幕 | 伊人久久大香线蕉av一区二区 | 亚洲色www成人永久网址 | 国产精品毛片一区二区 | 99久久人妻精品免费二区 | 麻豆av传媒蜜桃天美传媒 | 国产av人人夜夜澡人人爽麻豆 | 中文字幕人妻无码一夲道 | 精品一区二区三区波多野结衣 | 无码免费一区二区三区 | 自拍偷自拍亚洲精品10p | 99国产欧美久久久精品 | 内射巨臀欧美在线视频 | 搡女人真爽免费视频大全 | 超碰97人人做人人爱少妇 | 亚洲精品午夜无码电影网 | 国精产品一区二区三区 | 亚洲精品一区国产 | 国产精品久久国产精品99 | 国产精品无码久久av | 精品无人国产偷自产在线 | 日韩视频 中文字幕 视频一区 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产成人精品无码播放 | 四虎影视成人永久免费观看视频 | 无码精品人妻一区二区三区av | 国产精品第一国产精品 | 国产高清不卡无码视频 | 蜜桃视频插满18在线观看 | 国产无套内射久久久国产 | 综合激情五月综合激情五月激情1 | 久热国产vs视频在线观看 | 国产精品亚洲五月天高清 | 无码任你躁久久久久久久 | 国产精品自产拍在线观看 | 国产办公室秘书无码精品99 | 日韩在线不卡免费视频一区 | 亚洲成色www久久网站 | 久激情内射婷内射蜜桃人妖 | 亚洲最大成人网站 | 亚洲色偷偷男人的天堂 | 亚洲欧美日韩综合久久久 | 久久99精品久久久久婷婷 | 亚洲色欲久久久综合网东京热 | 一本色道久久综合亚洲精品不卡 | 久久精品中文闷骚内射 | 免费无码一区二区三区蜜桃大 | 国产精品理论片在线观看 | 亚洲国精产品一二二线 | 国产精品无码永久免费888 | 少妇无套内谢久久久久 | 内射老妇bbwx0c0ck | 国产精品成人av在线观看 | 十八禁视频网站在线观看 | 亚洲熟熟妇xxxx | 色综合久久久无码中文字幕 | 久久www免费人成人片 | 精品午夜福利在线观看 | 国产精品自产拍在线观看 | 亚洲精品午夜无码电影网 | 无码毛片视频一区二区本码 | 大肉大捧一进一出视频出来呀 | 中文精品无码中文字幕无码专区 | 久久精品国产99久久6动漫 | 中文字幕乱码中文乱码51精品 | 亚洲一区二区三区无码久久 | 人人妻人人澡人人爽人人精品浪潮 | 骚片av蜜桃精品一区 | www一区二区www免费 | 国产成人人人97超碰超爽8 | 呦交小u女精品视频 | 欧美日韩久久久精品a片 | 日本在线高清不卡免费播放 | 久久99热只有频精品8 | 日本大香伊一区二区三区 | 国产在线aaa片一区二区99 | 精品水蜜桃久久久久久久 | 狂野欧美性猛交免费视频 | 国产成人无码av片在线观看不卡 | 国产内射老熟女aaaa | 波多野结衣av在线观看 | 性色欲情网站iwww九文堂 | 2020久久超碰国产精品最新 | 999久久久国产精品消防器材 | 久久久精品国产sm最大网站 | 中国女人内谢69xxxxxa片 | 装睡被陌生人摸出水好爽 | 日日麻批免费40分钟无码 | 日本护士毛茸茸高潮 | 久久午夜夜伦鲁鲁片无码免费 | 国产精品美女久久久网av | 久久久久免费看成人影片 | 性生交大片免费看l | 国产精品亚洲综合色区韩国 | 中文字幕人妻无码一区二区三区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 蜜臀av无码人妻精品 | 强开小婷嫩苞又嫩又紧视频 | 亚洲综合色区中文字幕 | 亚洲日本va午夜在线电影 | 老司机亚洲精品影院无码 | 国产成人综合在线女婷五月99播放 | av香港经典三级级 在线 | 狠狠色欧美亚洲狠狠色www | 中文字幕亚洲情99在线 | 精品一区二区不卡无码av | 乱码av麻豆丝袜熟女系列 | 麻豆成人精品国产免费 | 99久久无码一区人妻 | 国产va免费精品观看 | 又紧又大又爽精品一区二区 | 女人和拘做爰正片视频 | 宝宝好涨水快流出来免费视频 | 窝窝午夜理论片影院 | 久久久亚洲欧洲日产国码αv | 国产极品视觉盛宴 | 内射后入在线观看一区 | 日本熟妇乱子伦xxxx | 午夜精品久久久久久久 | 波多野结衣av在线观看 | 动漫av网站免费观看 | 日日橹狠狠爱欧美视频 | 国产无遮挡吃胸膜奶免费看 | 成人试看120秒体验区 | 久久久久亚洲精品男人的天堂 | 亚洲一区二区三区偷拍女厕 | 7777奇米四色成人眼影 | 国产成人无码a区在线观看视频app | 亚洲一区av无码专区在线观看 | 欧美猛少妇色xxxxx | 麻花豆传媒剧国产免费mv在线 | 国产超碰人人爽人人做人人添 | 久久视频在线观看精品 | 无码播放一区二区三区 | 久久亚洲国产成人精品性色 | 久久综合网欧美色妞网 | 国产午夜手机精彩视频 | 亚洲 a v无 码免 费 成 人 a v | 亚洲人成无码网www | 亚洲国产高清在线观看视频 | 亚洲男人av天堂午夜在 | 国产内射爽爽大片视频社区在线 | 88国产精品欧美一区二区三区 | 伊人久久大香线焦av综合影院 | 欧美人与牲动交xxxx | 精品无码av一区二区三区 | 国产猛烈高潮尖叫视频免费 | 成熟女人特级毛片www免费 | 亚洲色欲色欲欲www在线 | 亚洲国产成人av在线观看 | 国产69精品久久久久app下载 | 成熟女人特级毛片www免费 | 免费无码的av片在线观看 | 一个人看的www免费视频在线观看 | 久久精品人人做人人综合试看 | 综合人妻久久一区二区精品 | 在线 国产 欧美 亚洲 天堂 | 性色欲网站人妻丰满中文久久不卡 | 欧洲极品少妇 | 欧美乱妇无乱码大黄a片 | 亚洲色在线无码国产精品不卡 | 久久久精品国产sm最大网站 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产女主播喷水视频在线观看 | 亚洲aⅴ无码成人网站国产app | 伊人久久大香线焦av综合影院 | 一本大道久久东京热无码av | 伊人久久大香线蕉av一区二区 | 76少妇精品导航 | 国产精品久久久久7777 | 牲欲强的熟妇农村老妇女视频 | 亚洲七七久久桃花影院 | 又黄又爽又色的视频 | 国产口爆吞精在线视频 | 蜜桃视频韩日免费播放 | 久久人人爽人人人人片 | 少妇性l交大片 | 亚洲午夜无码久久 | 小sao货水好多真紧h无码视频 | 欧美黑人乱大交 | 日韩av激情在线观看 | 亚洲aⅴ无码成人网站国产app | 亚洲中文字幕无码中字 | 日本肉体xxxx裸交 | 亚洲精品一区二区三区在线 | 成人亚洲精品久久久久软件 | 久久久久亚洲精品中文字幕 | 欧美性生交xxxxx久久久 | 人妻少妇被猛烈进入中文字幕 | 国内少妇偷人精品视频 | 国产sm调教视频在线观看 | 亚洲大尺度无码无码专区 | 久9re热视频这里只有精品 | 国产精品二区一区二区aⅴ污介绍 | 国产精品对白交换视频 | 麻豆成人精品国产免费 | 日日摸日日碰夜夜爽av | 精品久久久久久人妻无码中文字幕 | 免费无码一区二区三区蜜桃大 | 国产 浪潮av性色四虎 | 成人精品视频一区二区 | 成人无码精品一区二区三区 | 亚洲精品一区二区三区婷婷月 | 久久人人爽人人爽人人片av高清 | 97精品人妻一区二区三区香蕉 | 噜噜噜亚洲色成人网站 | 日本一本二本三区免费 | 色狠狠av一区二区三区 | 日韩亚洲欧美精品综合 | 伊人久久大香线蕉av一区二区 | 国产精品久久福利网站 | 国产超碰人人爽人人做人人添 | 人妻与老人中文字幕 | 亚洲熟妇色xxxxx欧美老妇 | 日日躁夜夜躁狠狠躁 | 日本丰满熟妇videos | 日日干夜夜干 | √天堂中文官网8在线 | 乱码av麻豆丝袜熟女系列 | 给我免费的视频在线观看 | 欧美日韩色另类综合 | 免费网站看v片在线18禁无码 | av在线亚洲欧洲日产一区二区 | 高清无码午夜福利视频 | 搡女人真爽免费视频大全 | 日欧一片内射va在线影院 | 亚洲色www成人永久网址 | 亚洲日韩一区二区 | 99久久无码一区人妻 | 领导边摸边吃奶边做爽在线观看 | 人人爽人人澡人人人妻 | 欧美三级a做爰在线观看 | 我要看www免费看插插视频 | 国产精品无码一区二区三区不卡 | 日韩精品a片一区二区三区妖精 | 无码免费一区二区三区 | 色综合久久网 | 人妻中文无码久热丝袜 | 国产疯狂伦交大片 | 亚洲熟妇自偷自拍另类 | 一二三四在线观看免费视频 | 欧美第一黄网免费网站 | 精品少妇爆乳无码av无码专区 | 欧美 日韩 人妻 高清 中文 | 99久久99久久免费精品蜜桃 | 亚洲第一网站男人都懂 | 人人妻人人澡人人爽欧美一区 | 一个人免费观看的www视频 | 中文字幕精品av一区二区五区 | 国产精品资源一区二区 | 国产精品99爱免费视频 | www国产精品内射老师 | 成人无码影片精品久久久 | ass日本丰满熟妇pics | 欧美freesex黑人又粗又大 | 性欧美牲交在线视频 | 亚洲精品中文字幕久久久久 | 无码精品国产va在线观看dvd | 亚洲热妇无码av在线播放 | 无码人妻精品一区二区三区下载 | 377p欧洲日本亚洲大胆 | 婷婷丁香六月激情综合啪 | 牲欲强的熟妇农村老妇女 | 男女超爽视频免费播放 | 亚洲理论电影在线观看 | 亚洲乱码日产精品bd | 精品国精品国产自在久国产87 | 日韩精品久久久肉伦网站 | 色老头在线一区二区三区 | 色婷婷香蕉在线一区二区 | 日韩人妻无码一区二区三区久久99 | 无码国产激情在线观看 | 全球成人中文在线 | 亚洲自偷精品视频自拍 | 在线看片无码永久免费视频 | 国产在热线精品视频 | 亚洲欧美中文字幕5发布 | 中文无码成人免费视频在线观看 | 樱花草在线社区www | 日韩精品成人一区二区三区 | 精品久久综合1区2区3区激情 | 欧洲熟妇色 欧美 | 国内精品久久久久久中文字幕 | 强开小婷嫩苞又嫩又紧视频 | 国产情侣作爱视频免费观看 | 国产精品无码成人午夜电影 | 中文字幕亚洲情99在线 | 无码成人精品区在线观看 | 亚洲 激情 小说 另类 欧美 | 国产av人人夜夜澡人人爽麻豆 | 1000部啪啪未满十八勿入下载 | 欧美freesex黑人又粗又大 | 黑人巨大精品欧美一区二区 | 国产精品久久久久久无码 | 国产亚洲精品久久久久久久久动漫 | 自拍偷自拍亚洲精品10p | 精品国产一区av天美传媒 | www国产亚洲精品久久久日本 | 日韩精品无码一本二本三本色 | 狠狠色噜噜狠狠狠狠7777米奇 | 成人无码视频免费播放 | 久久人人97超碰a片精品 | 亚洲人成人无码网www国产 | 日日摸夜夜摸狠狠摸婷婷 | 国产成人精品必看 | 国产一区二区三区四区五区加勒比 | 久久午夜无码鲁丝片秋霞 | 久久99精品国产麻豆蜜芽 | 国产精品无码久久av | 国产精品久久久久7777 | 欧洲熟妇色 欧美 | 55夜色66夜色国产精品视频 | 国产午夜精品一区二区三区嫩草 | 综合人妻久久一区二区精品 | 精品国产精品久久一区免费式 | 欧美人与禽猛交狂配 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲中文字幕无码中文字在线 | 中文字幕亚洲情99在线 | 国产乱子伦视频在线播放 | 久久精品国产一区二区三区肥胖 | 噜噜噜亚洲色成人网站 | 国产舌乚八伦偷品w中 | 人妻天天爽夜夜爽一区二区 | 正在播放老肥熟妇露脸 | 欧美喷潮久久久xxxxx | 美女毛片一区二区三区四区 | 一个人看的视频www在线 | 宝宝好涨水快流出来免费视频 | 精品 日韩 国产 欧美 视频 | 欧美日韩综合一区二区三区 | 美女黄网站人色视频免费国产 | 少妇久久久久久人妻无码 | 天海翼激烈高潮到腰振不止 | 成人试看120秒体验区 | 国产成人无码av片在线观看不卡 | 国产va免费精品观看 | 国产精品视频免费播放 | 性生交片免费无码看人 | 久久精品国产99精品亚洲 | 国产成人无码av片在线观看不卡 | 日本一卡2卡3卡四卡精品网站 | 国内综合精品午夜久久资源 | 任你躁国产自任一区二区三区 | 午夜熟女插插xx免费视频 | 一二三四在线观看免费视频 | 丰满人妻翻云覆雨呻吟视频 | 久久伊人色av天堂九九小黄鸭 | 亚洲日韩一区二区三区 | 香蕉久久久久久av成人 | 亚洲呦女专区 | 无码人妻丰满熟妇区五十路百度 | 成人影院yy111111在线观看 | 亚洲精品无码人妻无码 | 国产av一区二区三区最新精品 | 精品人妻人人做人人爽夜夜爽 | 久久 国产 尿 小便 嘘嘘 | 无码人妻黑人中文字幕 | 无码纯肉视频在线观看 | 国产电影无码午夜在线播放 | 日本www一道久久久免费榴莲 | 粗大的内捧猛烈进出视频 | 男女爱爱好爽视频免费看 | 欧美激情内射喷水高潮 | 日韩精品无码一区二区中文字幕 | 无码任你躁久久久久久久 | 国产特级毛片aaaaaa高潮流水 | 少妇性l交大片 | 最近中文2019字幕第二页 | 少妇邻居内射在线 | 蜜桃视频插满18在线观看 | 成人精品视频一区二区 | 精品成在人线av无码免费看 | 老太婆性杂交欧美肥老太 | 99国产欧美久久久精品 | 天天做天天爱天天爽综合网 | 中文字幕色婷婷在线视频 | 国产成人精品三级麻豆 | 亚洲狠狠婷婷综合久久 | 亚洲人成网站在线播放942 | 国产精品第一区揄拍无码 | 无码人妻精品一区二区三区下载 | 久久久久久久人妻无码中文字幕爆 | 国产人妖乱国产精品人妖 | 欧美精品免费观看二区 | 丰满岳乱妇在线观看中字无码 | 国产特级毛片aaaaaa高潮流水 | 国产亚洲精品久久久久久久 | 性生交大片免费看女人按摩摩 | 成人试看120秒体验区 | 97资源共享在线视频 | 久久精品一区二区三区四区 | 无码av岛国片在线播放 | 又大又硬又黄的免费视频 | 欧美xxxx黑人又粗又长 | 扒开双腿疯狂进出爽爽爽视频 | 日韩精品无码一本二本三本色 | 国产卡一卡二卡三 | 国产精品毛片一区二区 | 未满成年国产在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 无套内谢的新婚少妇国语播放 | 亚洲精品中文字幕久久久久 | 无遮挡啪啪摇乳动态图 | 天天拍夜夜添久久精品大 | 成人无码精品一区二区三区 | 欧美 日韩 人妻 高清 中文 | 在线 国产 欧美 亚洲 天堂 | 亚洲欧美色中文字幕在线 | 久久久久成人精品免费播放动漫 | 妺妺窝人体色www在线小说 | 国产精品亚洲专区无码不卡 | 最近免费中文字幕中文高清百度 | 国产麻豆精品一区二区三区v视界 | 精品人妻人人做人人爽 | 99视频精品全部免费免费观看 | 夜夜高潮次次欢爽av女 | 激情亚洲一区国产精品 | 永久免费精品精品永久-夜色 | 亚洲第一网站男人都懂 | 少妇性俱乐部纵欲狂欢电影 | 在线精品亚洲一区二区 | 99国产欧美久久久精品 | 一本无码人妻在中文字幕免费 | 天堂а√在线地址中文在线 | www国产亚洲精品久久久日本 | 国产av无码专区亚洲awww | a国产一区二区免费入口 | а√天堂www在线天堂小说 | 夜夜躁日日躁狠狠久久av | 免费人成网站视频在线观看 | 国产精品久久久久9999小说 | 男人的天堂2018无码 | 久久久国产一区二区三区 | 国产亚洲日韩欧美另类第八页 | 久久久久se色偷偷亚洲精品av | 理论片87福利理论电影 | 国产亚洲精品久久久久久大师 | 国产精品资源一区二区 | 国产av一区二区精品久久凹凸 | 88国产精品欧美一区二区三区 | 国内精品九九久久久精品 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲欧美国产精品专区久久 | 天堂а√在线地址中文在线 | 国产亚洲日韩欧美另类第八页 | 国产免费无码一区二区视频 | 无遮挡国产高潮视频免费观看 | 久久精品视频在线看15 | 丰满少妇弄高潮了www | 日本一卡2卡3卡四卡精品网站 | 5858s亚洲色大成网站www | 精品国产一区二区三区av 性色 | 亚洲爆乳无码专区 | 国产av一区二区三区最新精品 | 99久久精品午夜一区二区 | 少妇高潮一区二区三区99 | 毛片内射-百度 | 精品日本一区二区三区在线观看 | 免费观看的无遮挡av | 亚洲一区二区三区播放 | 亚洲精品无码国产 | 日韩精品a片一区二区三区妖精 | 国产热a欧美热a在线视频 | 狠狠色噜噜狠狠狠狠7777米奇 | 成 人 免费观看网站 | 在线精品国产一区二区三区 | ass日本丰满熟妇pics | 国产va免费精品观看 | 亚洲色偷偷偷综合网 | 夜精品a片一区二区三区无码白浆 | 99久久精品午夜一区二区 | 偷窥村妇洗澡毛毛多 | av无码不卡在线观看免费 | 中文亚洲成a人片在线观看 | 无码精品人妻一区二区三区av | 国产尤物精品视频 | 国产免费久久精品国产传媒 | 无码人中文字幕 | 2020久久香蕉国产线看观看 | 欧美老人巨大xxxx做受 | 亚洲熟妇色xxxxx欧美老妇y | 曰本女人与公拘交酡免费视频 | 激情综合激情五月俺也去 | 日日天日日夜日日摸 | 老子影院午夜精品无码 | 荡女精品导航 | 日产精品高潮呻吟av久久 | 乱人伦人妻中文字幕无码久久网 | 亚洲精品国产品国语在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 欧美黑人乱大交 | 国产精品久久久久7777 | 久久久久99精品国产片 | 欧美激情一区二区三区成人 | 日本大乳高潮视频在线观看 | 中文字幕无码免费久久9一区9 | 天海翼激烈高潮到腰振不止 | 欧美变态另类xxxx | 天天躁夜夜躁狠狠是什么心态 | 久久www免费人成人片 | 国产区女主播在线观看 | 色老头在线一区二区三区 | 2020久久香蕉国产线看观看 | 男人的天堂2018无码 | 国产精品久久久av久久久 | 日韩少妇白浆无码系列 | 成人性做爰aaa片免费看不忠 | 亚洲精品久久久久avwww潮水 | 鲁一鲁av2019在线 | 国产精华av午夜在线观看 | 性史性农村dvd毛片 | 亚洲欧洲日本无在线码 | 精品欧洲av无码一区二区三区 | 欧美人与动性行为视频 | 久久久久av无码免费网 | 麻豆精产国品 | 成人无码精品一区二区三区 | 日韩人妻无码中文字幕视频 | 男女爱爱好爽视频免费看 | 女人和拘做爰正片视频 | 午夜精品一区二区三区在线观看 | 狂野欧美激情性xxxx | 无码人妻av免费一区二区三区 | 午夜时刻免费入口 | 98国产精品综合一区二区三区 | 色妞www精品免费视频 | 欧美日韩亚洲国产精品 | 亚洲男人av天堂午夜在 | 搡女人真爽免费视频大全 | 一区二区三区高清视频一 | 丁香啪啪综合成人亚洲 | 国产精品亚洲lv粉色 | 无码福利日韩神码福利片 | 乱码午夜-极国产极内射 | 两性色午夜免费视频 | 55夜色66夜色国产精品视频 | 国产va免费精品观看 | 国产av一区二区三区最新精品 | 亚洲а∨天堂久久精品2021 | 成人欧美一区二区三区黑人免费 | 国产欧美亚洲精品a | 日韩精品无码免费一区二区三区 | 亚洲人成人无码网www国产 | 色偷偷人人澡人人爽人人模 | 精品少妇爆乳无码av无码专区 | 亚洲国产成人a精品不卡在线 | 久青草影院在线观看国产 | 成熟女人特级毛片www免费 | 女人被男人躁得好爽免费视频 | 国产成人综合美国十次 | 精品少妇爆乳无码av无码专区 | 婷婷色婷婷开心五月四房播播 | 亚洲va欧美va天堂v国产综合 | 欧美freesex黑人又粗又大 | 亚洲爆乳精品无码一区二区三区 | 一本大道伊人av久久综合 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 欧美 亚洲 国产 另类 | 亚洲精品久久久久久久久久久 | 欧美人与动性行为视频 | 桃花色综合影院 | 国产亚洲精品久久久久久 | 亚洲色欲色欲欲www在线 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 亚洲の无码国产の无码步美 | 国产精品资源一区二区 | 色情久久久av熟女人妻网站 | 久9re热视频这里只有精品 | 国产小呦泬泬99精品 | 国产精品久久久久久久9999 | 乱中年女人伦av三区 | 少妇邻居内射在线 | 国产成人久久精品流白浆 | 无码国模国产在线观看 | 精品国精品国产自在久国产87 | 丝袜人妻一区二区三区 | 天天av天天av天天透 | 性色av无码免费一区二区三区 | 亚洲欧美国产精品久久 | 波多野结衣aⅴ在线 | 色婷婷综合激情综在线播放 | 激情内射亚州一区二区三区爱妻 | 亚洲综合在线一区二区三区 | 欧美喷潮久久久xxxxx | 图片小说视频一区二区 | 丰满肥臀大屁股熟妇激情视频 | 丰腴饱满的极品熟妇 | 无码午夜成人1000部免费视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 色情久久久av熟女人妻网站 | 一本一道久久综合久久 | 四虎国产精品一区二区 | 4hu四虎永久在线观看 | 377p欧洲日本亚洲大胆 | 男女爱爱好爽视频免费看 | 亚洲欧美日韩综合久久久 | 天堂久久天堂av色综合 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产成人综合在线女婷五月99播放 | 国产精品无码一区二区三区不卡 | 成在人线av无码免费 | 成人无码精品一区二区三区 | 男女超爽视频免费播放 | 午夜丰满少妇性开放视频 | www国产亚洲精品久久网站 | 国产免费久久精品国产传媒 | 国产成人av免费观看 | 无码帝国www无码专区色综合 | 久久精品无码一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 中文字幕中文有码在线 | 俄罗斯老熟妇色xxxx | 免费无码av一区二区 | 国产免费久久久久久无码 | 97久久精品无码一区二区 | 欧美野外疯狂做受xxxx高潮 | 熟女体下毛毛黑森林 | 亚洲日本va午夜在线电影 | 精品无码av一区二区三区 | 国产va免费精品观看 |