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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

分布式之系统底层原理

發布時間:2024/2/28 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式之系统底层原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:allanpan,騰訊 IEG 高級后臺工程師

導言

分布式事務是分布式系統必不可少的組成部分,基本上只要實現一個分布式系統就逃不開對分布式事務的支持。本文從分布式事務這個概念切入,嘗試對分布式事務以及分布式系統最核心的底層原理逐一進行剖析,內容包括但不限于 BASE 原則兩階段原子提交協議三階段原子提交協議Paxos/Multi-Paxos 分布式共識算法的原理與證明Raft 分布式共識算法分布式事務的并發控制等內容。

事務

事務是訪問并可能更新各種數據項的一個程序執行單元(unit)。事務由一個或多個步驟組成,一般使用形如 begin transaction 和 end transaction 語句或者函數調用作為事務界限,事務內的所有步驟必須作為一個單一的、不可分割的單元去執行,因此事務的結果只有兩種:1. 全部步驟都執行完成,2. 任一步驟執行失敗則整個事務回滾。

事務最早由數據庫管理系統(database management systemDBMS)引入并實現,數據庫事務是數據庫管理系統執行過程中的一個邏輯單位,由一個有限的數據庫操作序列構成。數據庫事務嚴格遵循 ACID 原則,屬于剛性事務,一開始數據庫事務僅限于對單一數據庫資源對象的訪問控制,這一類事務稱之為本地事務 (Local Transaction),后來隨著分布式系統的出現,數據的存儲也不可避免地走向了分布式,分布式事務(Distributed Transaction)便應運而生。

剛性事務

剛性事務(如單一數據庫事務)完全遵循 ACID 規范,即數據庫事務的四大基本特性:

  • Atomicity(原子性):一個事務(transaction)中的所有操作,或者全部完成,或者全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。即,事務不可分割、不可約簡。

  • Consistency(一致性):在事務開始之前和事務結束以后,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設約束、觸發器、級聯回滾等。

  • Isolation(隔離性):數據庫允許多個并發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務并發執行時由于交叉執行而導致數據的不一致。事務隔離分為不同級別,包括未提交讀(Read uncommitted)、提交讀(read committed)、可重復讀(repeatable read)和串行化(Serializable)。

  • Durability(持久性):事務處理結束后,對數據的修改就是永久的,即便系統故障也不會丟失。

剛性事務也能夠以分布式 CAP 理論中的 CP 事務來作為定義

柔性事務

在電商領域等互聯網場景下,傳統的事務在數據庫性能和處理能力上都遇到了瓶頸。因此,柔性事務被提了出來,柔性事務基于分布式 CAP 理論以及延伸出來的 BASE 理論,相較于數據庫事務這一類完全遵循 ACID 的剛性事務來說,柔性事務保證的是 “基本可用,最終一致”,CAP 原理相信大家都很熟悉了,這里我們講一下 BASE 原則:

  • 基本可用(Basically Available):系統能夠基本運行、一直提供服務。

  • 軟狀態(Soft-state):系統不要求一直保持強一致狀態。

  • 最終一致性(Eventual consistency):系統需要在某一時刻后達到一致性要求。

柔性事務(如分布式事務)為了滿足可用性、性能與降級服務的需要,降低一致性(Consistency)與隔離性(Isolation)的要求,遵循 BASE 理論,傳統的 ACID 事務對隔離性的要求非常高,在事務執行過程中,必須將所有的資源對象鎖定,因此對并發事務的執行極度不友好,柔性事務(比如分布式事務)的理念則是將鎖資源對象操作從本地資源對象層面上移至業務邏輯層面,再通過放寬對強一致性要求,以換取系統吞吐量的提升。

此外,雖然柔性事務遵循的是 BASE 理論,但是還需要遵循部分 ACID 規范:

  • 原子性:嚴格遵循。

  • 一致性:事務完成后的一致性嚴格遵循;事務中的一致性可適當放寬。

  • 隔離性:并行事務間不可影響;事務中間結果可見性允許安全放寬。

  • 持久性:嚴格遵循。

本地事務

本地事務(Local Transaction)指的是僅僅對單一節點/數據庫資源對象進行訪問/更新的事務,在這種事務模式下,BASE 理論派不上用場,事務完全遵循 ACID 規范,確保事務為剛性事務。

分布式事務

在分布式架構成為主流的當下,系統對資源對象的訪問不能還局限于單節點,多服務器、多節點的資源對象訪問成為剛需,因此,本地事務無法滿足分布式架構的系統的要求,分布式事務應運而生。

訪問/更新由多個服務器管理的資源對象的平面事務或者嵌套事務稱之為分布式事務(Distributed Transaction),分布式事務是相對于本地事務來說的。

平面事務:單一事務,訪問多個服務器節點的資源對象,一個平面事務完成一次請求之后才能發起下一個請求。

嵌套事務:多事務組成,頂層事務可以不斷創建子事務,子事務又可以進一步地以任意深度嵌套子事務。

對于分布式事務來說,有兩個最核心的問題:

  • 如何管理分布式事務的提交/放棄決定?如果事務中的一個節點在執行自己的本地事務過程中遇到錯誤,希望放棄整個分布式事務,與此同時其他節點則在事務執行過程中一切順利,希望提交這個分布式事務,此時我們應該如何做決策?

  • 如何保證并發事務在涉及多個節點上資源對象訪問的可串行性(規避分布式死鎖)?如果事務 T 對某一個服務器節點上的資源對象 S 的并發訪問在事務 U 之前,那么我們需要保證在所有服務器節點上對 S 和其他資源對象的沖突訪問,T 始終在 U 之前。

  • 問題 1 的解決需要引入一類分布式原子提交協議的算法如兩階段提交協議等,來對分布式事務過程中的提交或放棄決策進行管理,并確保分布式提交的原子性。而問題 2 則由分布式事務的并發控制機制來處理。

    原子提交協議

    原子性是分布式事務的前置性約束,沒有原子性則分布式事務毫無意義。

    原子性約束要求在分布式事務結束之時,它的所有操作要么全部執行,要么全部不執行。以分布式事務的原子性來分析,客戶端請求訪問/更新多個服務器節點上的資源對象,在客戶端提交或放棄該事務從而結束事務之后,多個服務器節點的最終狀態要么是該事務里的所有步驟都執行成功之后的狀態,要么恢復到事務開始前的狀態,不存在中間狀態。滿足這種約束的分布式事務協議則稱之為原子提交協議。

    當一個分布式事務結束時,事務的原子特性要求所有參與該事務的服務器節點必須全部提交或者全部放棄該事務,為了實現這一點,必須引入一個協調者(Coordinator)的角色,從參與事務的所有服務器節點中挑選一個作為協調者,由它來保證在所有服務器節點上最終獲得同樣的結果。協調者的工作原理取決于分布式事務選用的協議。

    一般來說,分布式事務中包含的兩個最基礎的角色就是:

    • Coordinator -- 協調者

    • Participants -- 參與者

    單階段原子提交協議

    單階段原子提交協議(one-phase atomic commit protocol, 1APC)是最簡單的一種原子提交協議,它通過設置一個協調者并讓它不斷地向所有參與者發送提交(commit)或放棄(abort)事務的請求,直到所有參與者確認已執行完相應的操作。

    1APC 協議的優點是簡單易用,對一些事務不復雜的場景比較合適,但在復雜事務場景則顯得捉襟見肘,因為該協議不允許任何服務器節點單方面放棄事務,事務的放棄必須由協調者來發起,這個設計會導致很多問題:首先因為只有一次通信,協調者并不會收集所有參與者的本地事務執行的情況,所以協調者決定提交還是放棄事務只基于自己的判斷,在參與者執行事務期間可能會遇到錯誤從而導致最終事務未能真正提交,錯誤一般與事務的并發控制有關,比如事務執行期間對資源對象加鎖,遇到死鎖,需要放棄事務從而解開死鎖,而協調者并不知道,因此在發起下一個請求之前,客戶端完全不知道事務已被放棄。另一種情況就是利用樂觀并發控制機制訪問資源對象,某一個服務器節點的驗證失敗將導致事務被放棄,而協調者完全不知情。

    兩階段提交協議

    定義

    兩階段提交協議(two-phase commit protocol, 2PC)的設計初衷是為了解決 1APC 不允許任意一個服務器節點自行放棄它自己的那部分本地事務的痛點,2PC 允許任何一個參與者自行決定要不要放棄它的本地事務,而由于原子提交協議的約束,任意一個本地事務被放棄將導致整個分布式事務也必須放棄掉。

    兩階段提交協議基于以下幾個假設:

    • 存在一個節點作為協調者(Coordinator),分布式事務通常由協調者發起(當然也可以由參與者發起),其余節點作為參與者(Participants),且節點之間可以自由地進行網絡通信,協調者負責啟動兩階段提交流程以及決定事務最終是被提交還是放棄。

    • 每個節點會記錄該節點上的本地操作日志(op logs),日志必須持久化在可靠的存儲設備上(比如磁盤),以便在節點重啟之后需要恢復操作日志。另外,不記錄全局操作日志。

    • 所有節點不能發生永久性損壞,也就是說節點就算是損壞了也必須能通過可靠性存儲恢復如初,不允許出現數據永久丟失的情況。

    • 參與者對協調者的回復必須要去除掉那些受損和重復的消息。

    • 整個集群不會出現拜占庭故障(Byzantine Fault)-- 服務器要么崩潰,要么服從其發送的消息。

    原理

    兩階段提交協議,顧名思義整個過程需要分為兩個階段:

  • 準備階段(Prepare Phase)

  • 提交階段(Commit Phase)

  • 在進行兩階段提交的過程中,協調者會在以下四種狀態間流轉:

  • init

  • preparing

  • committed

  • aborted

  • 而參與者則會在以下三種狀態間流轉:

  • working

  • prepared

  • committed

  • 階段 I(投票表決階段)

  • 任意一個參與者發起分布式事務 T 并執行本地事務成功,接著將一條 <ready T> 記錄追加到本地日志 buffer 中并 flush 到可靠性存儲設備如磁盤上,從 working 狀態進入 prepared 狀態,然后向協調者發送 prepare T 消息;

  • 收到參與者發來的 prepare T 消息后,協調者將一條 <prepare T> 記錄追加到日志中,然后從 init 狀態進入 preparing 狀態,緊接著向分布式事務的其他參與者發出 canCommit? 消息,發起事務表決過程;

  • 當參與者收到 canCommit? 請求后,除了發起事務的那一個之外,其他還在 working 狀態的參與者會先嘗試執行本地事務,如果本地事務執行成功,則會往本地日志 buffer 寫入一條 <ready T> 記錄并 flush 到可靠性存儲中,但不提交事務,進入 prepared 狀態,然后回復一條 ready T 消息對此事務投 YES 票;如果本地事務執行失敗,則參與者會往本地日志 buffer 寫入一條 <don't commit T> 記錄并 flush 到可靠性存儲中,然后回復一條 don't commit T 消息投 NO 票。

  • 階段 II(收集投票結果完成事務)

  • 協調者收集所有的投票(包括它自己的投票);

    (a) 如果所有的投票都是 ready T,則表示沒有故障發生,那么協調者決定提交該事務,首先它會在其本地日志中追加一條 <commit T> 記錄,從 preparing 狀態進入 committed 狀態,然后向所有的參與者發送 doCommit 請求消息,要求參與者提交它們的本地事務;

    (b) 如果有任一個投票是 No,則協調者決定放棄掉該事務,首先它會往本地日志中追加一條記錄,從 preparing 狀態進入 aborted 狀態,然后發送 doAbort 請求消息給所有的參與者,通知它們回滾各自的本地事務。

  • 投了 YES 票的參與者阻塞等待協調者給它發來 doCommit 或 doAbort 消息,如果接收到的是 doCommit 消息則提交本地事務并在此過程中記錄日志 <commit T>,然后進入 committed 狀態,最后回復一個 haveCommitted 的消息通知協調者本地事務已經成功提交;反之,如果收到的是 doAbort 消息則回滾本地事務并寫入日志 <abort T>,然后進入 aborted狀態。

  • 上面的過程是一種更通用的流程,即由任意的參與者發起一個分布式事務,而在實踐中一般把分布式事務的發起交給協調者來做,減少事務發起者確認該事務已被提交所需等待的網絡消息延遲:

    性能
    網絡 I/O 開銷

    假設兩階段提交過程一切運行正常,即協調者和參與者都不出現崩潰和重啟,網絡通信也都正常。那么假設有一個協調者和 N 個參與者,兩階段提交過程中將會發送如下的消息:

    • 任意一個參與者從 working 狀態進入 prepared 狀態并發送 Prepared 消息給協調者,1 條消息。

    • 協調者收到消息后,向其他參與者發送 canCommit? 請求消息,N - 1 條消息。

    • 收到 canCommit? 消息的參與者各自回復協調者投票消息,N - 1 條消息。

    • 協調者統計投票情況之后,發送 doCommit 消息給其他參與者,N 條消息。

    所以,事務發起者在經過 4 條網絡消息延遲之后確認該分布式事務已被提交,而整個過程共計發送 3N - 1 條網絡消息(因為 haveCommitted 在 2PC 僅僅是用于最后通知協調者而已,屬于可有可無的一次網絡消息,2PC 在該消息缺省的情況下也能正常運行,因此 haveCommitted 一般不計入網絡延遲成本中)。

    前面我們提到,在實踐中一般是由協調者來發起事務,如果考慮這種情況的話,事務發起者 -- 協調者在經過 3 條網絡消息延遲之后確認該分布式事務已經被提交,而整個過程實際發送的網絡消息則變成 3N 條。

    總而言之,兩階段提交協議的網絡通信開銷和集群節點的數量成 3 倍正比。

    本地存儲設備 I/O 開銷

    基于前文中敘述的兩階段提交協議的基本假設之一:每個節點會通過日志來記錄在本地執行的操作,以便在節點發生故障并重啟節點之后能利用日志恢復到故障前的狀態,因此兩階段提交過程中除了網絡 I/O 的開銷之外,還有本地存儲設備 I/O 的開銷:

    • 發起事務的參與者執行本地事務,1 次寫操作。

    • 其余參與者執行各自的本地事務,N - 1 次寫操作。

    • 協調者統計投票結果并決定提交事務,1 次寫操作。

    所以事務發起者在經過 3 次本地存儲設備 I/O 延遲之后確認該事務已被提交,整個過程總計有 N + 1 次本地存儲設備 I/O,而如果由協調者來發起事務的話,則還是需要 N + 1 次本地存儲設備 I/O,但是只需要經過 2 次本地存儲設備 I/O 延遲即可確認事務已被提交。

    恢復

    在分布式事務中,所有的參與者節點都可能發生故障,所以我們需要保證在該故障節點恢復時發生的一切都和分布式事務 T 的全局決策保持一致。節點在恢復的時候會讀取 T 的最后一個本地日志記錄并作出相應的操作:

  • 如果 T 的最后一條日志記錄是 <commit T>,那么說明協調者在節點發生故障時的全局決策是提交 T,根據本地事務所使用的日志方式,在該節點上可能需要執行 redo T。

  • 如果 T 的最后一條日志記錄是 <abort T>,那么說明協調者在節點發生故障時的全局決策是中止 T,根據本地事務所使用的日志方式,在該節點上可能需要執行 undo T。

  • 如果 T 的最后一條日志記錄是 <don't commit T>,則和第 2 中情況類似,執行 undo T。

  • 如果 T 的最后一條日志記錄是 <ready T>,這種情況比較麻煩,因為恢復節點無法確認在它故障之后協調者發出的最終全局決策是什么,因此它必須要和集群中其余至少一個節點取得聯系,詢問 T 的最終結果是什么:恢復節點先嘗試詢問協調者,如果此時協調者正在工作,則告知恢復節點 T 的最終結果,如果是提交就執行 redo T,中止就執行 undo T;如果協調者因故不在工作,則恢復節點可以要求其他某一個參與者節點去查看本地日志以找出 T 的最終結果并告知恢復節點。在最壞的情況下,恢復節點無法和集群中其他所有節點取得聯系,這時恢復節點只能阻塞等待,直至得知 T 的最終結果是提交還是中止。

  • 如果本地日志中沒有記錄任何關于 T 在兩階段提交過程中的操作,那么根據前面的兩階段提交流程可知恢復節點還沒來得及回復協調者的 canCommit? 請求消息就發生了故障,因此根據兩階段算法,恢復節點只能執行 undo T。

  • 缺陷
  • 同步阻塞:兩階段提交協議是一個阻塞的協議,在第二階段期間,參與者在事務未提交之前會一直鎖定其占有的本地資源對象,直到接收到來自協調者的 doCommit 或 doAbort 消息。

  • 單點故障:兩階段提交協議中只有一個協調者,而由于在第二階段中參與者在收到協調者的進一步指示之前會一直鎖住本地資源對象,如果唯一的協調者此時出現故障而崩潰掉之后,那么所有參與者都將無限期地阻塞下去,也就是一直鎖住本地資源對象而導致其他進程無法使用。

  • 數據不一致:如果在兩階段提交協議的第二階段中,協調者向所有參與者發送 doCommit 消息之后,發生了局部網絡抖動或者異常,抑或是協調者在只發送了部分消息之后就崩潰了,那么就只會有部分參與者接收到了 doCommit 消息并提交了本地事務;其他未收到 doCommit 消息的參與者則不會提交本地事務,因而導致了數據不一致問題。

  • XA 標準接口

    2PC 兩階段提交協議本身只是一個通用協議,不提供具體的工程實現的規范和標準,在工程實踐中為了統一標準,減少行業內不必要的對接成本,需要制定標準化的處理模型及接口標準,國際開放標準組織 Open Group 定義了分布式事務處理模型 DTP(Distributed Transaction Processing)Model,現在 XA 已經成為 2PC 分布式事務提交的事實標準,很多主流數據庫如 Oracle、MySQL 等都已經實現 XA。

    兩階段事務提交采用的是 X/OPEN 組織所定義的 DTP Model 所抽象的 AP(應用程序), TM(事務管理器)和 RM(資源管理器) 概念來保證分布式事務的強一致性。 其中 TM 與 RM 間采用 XA 的協議進行雙向通信。 與傳統的本地事務相比,XA 事務增加了準備階段,數據庫除了被動接受提交指令外,還可以反向通知調用方事務是否可以被提交。 TM 可以收集所有分支事務的準備結果,并于最后進行原子提交,以保證事務的強一致性。

    Java 通過定義 JTA 接口實現了 XA 模型,JTA 接口中的 ResourceManager 需要數據庫廠商提供 XA 驅動實現, TransactionManager 則需要事務管理器的廠商實現,傳統的事務管理器需要同應用服務器綁定,因此使用的成本很高。 而嵌入式的事務管器可以以 jar 包的形式提供服務,同 Apache ShardingSphere 集成后,可保證分片后跨庫事務強一致性。

    通常,只有使用了事務管理器廠商所提供的 XA 事務連接池,才能支持 XA 的事務。Apache ShardingSphere 在整合 XA 事務時,采用分離 XA 事務管理和連接池管理的方式,做到對應用程序的零侵入。

    三階段提交協議

    由于前文提到的兩階段提交協議的種種弊端,研究者們后來又提出了一種新的分布式原子提交協議:三階段提交協議(three-phase commit protocol, 3PC)。

    三階段提交協議是對兩階段提交協議的擴展,它在特定假設下避免了同步阻塞的問題。該協議基于以下兩個假設:

  • 集群不發生網絡分區;

  • 故障節點數不超過 K 個(K 是預先設定的一個數值)。

  • 基于這兩個假設,三階段提交協議通過引入超時機制和一個額外的階段來解決阻塞問題,三階段提交協議把兩階段提交協議的第一個階段拆分成了兩步:1) 評估,2) 資源對象加鎖,最后才真正提交:

  • CanCommit 階段:協調者發送 CanCommit 請求消息,詢問各個參與者節點,參與者節點各自評估本地事務是否可以執行并回復消息(可以執行則回復 YES,否則回復 NO),此階段不執行事務,只做判斷;

  • PreCommit 階段:協調者根據上一階段收集的反饋決定通知各個參與者節點執行(但不提交)或中止本地事務;有兩種可能:1) 所有回復都是 YES,則發送 PreCommit 請求消息,要求所有參與者執行事務并追加記錄到 undo 和 redo 日志,如果事務執行成功則參與者回復 ACK 響應消息,并等待下一階段的指令;2) 反饋消息中只要有一個 NO,或者等待超時之后協調者都沒有收到參與者的回復,那么協調者會中止事務,發送 Abort 請求消息給所有參與者,參與者收到該請求后中止本地事務,或者參與者超時等待仍未收到協調者的消息,同樣也中止當前本地事務。

  • DoCommit 階段:協調者根據上一階段收集到的反饋決定通知各個參與者節點提交或回滾本地事務,分三種情況:1) 協調者收到全部參與者回復的 ACK,則向所有參與者節點廣播 DoCommit 請求消息,各個參與者節點收到協調者的消息之后決定提交事務,然后釋放資源對象上的鎖,成功之后向協調者回復 ACK,協調者接收到所有參與者的 ACK 之后,將該分布式事務標記為 committed;2) 協調者沒有收到全部參與者回復的 ACK(可能參與者回復的不是 ACK,也可能是消息丟失導致超時),那么協調者就會中止事務,首先向所有參與者節點廣播 Abort 請求消息,各個參與者收到該消息后利用上一階段的 undo 日志進行事務的回滾,釋放占用的資源對象,然后回復協調者 ACK 消息,協調者收到參與者的 ACK 消息后將該分布式事務標記為 aborted;3) 參與者一直沒有收到協調者的消息,等待超時之后會直接提交事務。

  • 事實上,在最后階段,協調者不是通過追加本地日志的方式記錄提交決定的,而是首先保證讓至少 K 個參與者節點知道它決定提交該分布式事務。如果協調者發生故障了,那么剩下的參與者節點會重新選舉一個新的協調者,這個新的協調者就可以在集群中不超過 K 個參與者節點故障的情況下學習到舊協調者之前是否已經決定要提交分布式事務,若是,則重新開始協議的第三階段,否則就中止該事務,重新發起分布式事務。

    在最后的 DoCommit 階段,如果參與者一直沒有收到協調者的 DoCommit 或者 Abort 請求消息時,會在等待超時之后,直接提交事務。這個決策機制是基于概率學的:當已經進入第三階段之后,說明參與者在第二階段已經收到了 PreCommit 請求消息,而協調者發出 PreCommit 請求的前提條件是它在第二階段開頭收集到的第一階段向所有參與者發出的 CanCommit 請求消息的反饋消息都是 YES。所以參與者可以根據自己收到了 PreCommit 請求消息這一既定事實得出這樣的一個結論:其他所有參與者都同意了進行這次的事務執行,因此當前的參與者節點有理由相信,進入第三階段后,其他參與者節點的本地事務最后成功提交的概率很大,而自己遲遲沒有收到 DoCommit 或 Abort 消息可能僅僅是因為網絡抖動或異常,因此直接提交自己的本地事務是一個比較合理的選擇

    三階段提交協議主要著重于解決兩階段提交協議中因為協調者單點故障而引發的同步阻塞問題,雖然相較于兩階段提交協議有所優化,但還是沒解決可能發生的數據不一致問題,比如由于網絡異常導致部分參與者節點沒有收到協調者的 Abort 請求消息,超時之后這部分參與者會直接提交事務,從而導致集群中的數據不一致,另外三階段提交協議也無法解決腦裂問題,同時也因為這個協議的網絡開銷問題,導致它并沒有被廣泛地使用,有關該協議的具體細節可以參閱本文最后的延伸閱讀一節中的文獻進一步了解,這里不再深入。

    共識算法

    共識(Consensus),很多時候會見到與一致性(Consistency)術語放在一起討論。嚴謹地講,兩者的含義并不完全相同。

    一致性的含義比共識寬泛,在不同場景(基于事務的數據庫、分布式系統等)下意義不同。具體到分布式系統場景下,一致性指的是多個副本對外呈現的狀態。如前面提到的順序一致性、線性一致性,描述了多節點對數據狀態的共同維護能力。而共識,則特指在分布式系統中多個節點之間對某個事情(例如多個事務請求,先執行誰?)達成一致意見的過程。因此,達成某種共識并不意味著就保障了一致性。

    實踐中,要保證系統滿足不同程度的一致性,往往需要通過共識算法來達成。

    共識算法解決的是分布式系統對某個提案(Proposal),大部分節點達成一致意見的過程。提案的含義在分布式系統中十分寬泛,如多個事件發生的順序、某個鍵對應的值、誰是主節點……等等。可以認為任何可以達成一致的信息都是一個提案。

    對于分布式系統來講,各個節點通常都是相同的確定性狀態機模型(又稱為狀態機復制問題,State-Machine Replication),從相同初始狀態開始接收相同順序的指令,則可以保證相同的結果狀態。因此,系統中多個節點最關鍵的是對多個事件的順序進行共識,即排序。

    算法共識/一致性算法有兩個最核心的約束:1) 安全性(Safety),2) 存活性(Liveness):

    • Safety:保證決議(Value)結果是對的,無歧義的,不會出現錯誤情況。

      • 只有是被提案者提出的提案才可能被最終批準;

      • 在一次執行中,只批準(chosen)一個最終決議。被多數接受(accept)的結果成為決議;

    • Liveness:保證決議過程能在有限時間內完成。

      • 決議總會產生,并且學習者最終能獲得被批準的決議。

    Paxos

    Google Chubby 的作者 Mike Burrows 說過, there is only one consensus protocol, and that’s Paxos” – all other approaches are just broken versions of Paxos.

    意即世上只有一種共識算法,那就是 Paxos,其他所有的共識算法都只是 Paxos 算法的殘缺版本。雖然有點武斷,但是自從 Paxos 問世以來,它便幾乎成為了分布式共識算法的代名詞,后來的許多應用廣泛的分布式共識算法如 Raft、Zab 等的原理和思想都可以溯源至 Paxos 算法。

    Paxos 是由 Leslie Lamport (LaTeX 發明者,圖靈獎得主,分布式領域的世界級大師) 在 1990 年的論文《The PartTime Parliament》里提出的,Lamport 在論文中以一個古希臘的 Paxos 小島上的議會制訂法律的故事切入,引出了 Paxos 分布式共識算法。

    Basic Paxos

    業界一般將 Lamport 論文里最初提出分布式算法稱之為 Basic Paxos,這是 Paxos 最基礎的算法思想。

    Basic Paxos 算法的最終目標是通過嚴謹和可靠的流程來使得集群基于某個提案(Proposal)達到最終的共識

    基礎概念
    • Value:提案值,是一個抽象的概念,在工程實踐中可以是任何操作,如『更新數據庫某一行的某一列』、『選擇 xxx 服務器節點作為集群中的主節點』。

    • Number:提案編號,全局唯一,單調遞增。

    • Proposal:集群需要達成共識的提案,提案 = 編號 + 值。

    Proposal 中的 Value 就是在 Paxos 算法完成之后需要達成共識的值。

    Paxos 算法中有三個核心角色:

    • Proposer:生成提案編號 n 和值 v,然后向 Acceptors 廣播該提案,接收 Acceptors 的回復,如果有超過半數的 Acceptors 同意該提案,則選定該提案,否則放棄此次提案并生成更新的提案重新發起流程,提案被選定之后則通知所有 Learners 學習該最終選定的提案值(也可以由 Acceptor 來通知,看具體實現)。Basic Paxos 中允許有多個 Proposers。

    • Acceptor:接收 Proposer 的提案并參與提案決策過程,把各自的決定回復給 Proposer 進行統計。Acceptor 可以接受來自多個 proposers 的多個提案。

    • Learner:不參與決策過程,只學習最終選定的提案值。

    在具體的工程實踐中,一個節點往往會充當多種角色,比如一個節點可以既是 Proposer 又是 Acceptor,甚至還是 Learner。

    算法流程

    相較于直接給出 Paxos 算法的流程,我想沿襲 Lamport 大師的經典 Paxos 論文《Paxos Made Simple》中的思路:通過循序漸進的方式推導出 Paxos 算法。

    首先需要了解 Paxos 算法中的兩個重要的約束:

    C1. 一個 Acceptor 必須接受它收到的第一個提案。

    C2. 只有當超過半數的 Acceptors 接受某一個提案,才能最終選定該提案。

    C2 其實有一個隱含的推論:一個 Acceptor 可以接受多個提案,這也是為什么我們需要給每一個提案生成一個編號的原因,用來給提案排序。

    我們前面提到過 Paxos 的最終目標是通過嚴謹和可靠的流程來使得集群基于某個提案(Proposal)達到最終的共識,也就是說基于某一個提案發起的一次 Paxos 流程,最終目的是希望集群對該提案達成一致的意見,而為了實現并維持集群中的這種一致性,前提是 Paxos 算法必須具有冪等性:一旦提案(Proposal)中的值(Value)被選定(Chosen),那么只要還在此次 Paxos 流程中,就算不斷按照 Paxos 的規則重復步驟,未來被 Chosen 的 Value 都會是同一個。如果不滿足這種冪等性,將可能導致不一致的問題。

    因此,我們可以把 Paxos 的基本命題提煉出來:

    P1. 在一次 Paxos 流程中,如果一個值(Value)為 v 的提案(Proposal)被選定(Chosen)了,那么后續任何被最終選定的帶有更大編號(Number)的提案中的 Value 也必須是 v。

    提案在被最終選定之前必須先被 Acceptor 接受,于是我們可以再進一步總結一個具有更強約束的命題:

    P2. 在一次 Paxos 流程中,如果一個值(Value)為 v 的提案(Proposal)被選定(Chosen)了,那么后續任何被 Acceptor 接受的帶有更大編號(Number)的提案中的 Value 也必須是 v。

    這還不是具備最強約束的命題,因為提案在被 Acceptor 接受之前必須先由 Proposer 提出,因此還可以繼續強化命題:

    P3. 在一次 Paxos 流程中,如果一個值(Value)為 v 的提案(Proposal)被選定(Chosen)了,那么后續任何 Proposer 提議的帶有更大編號(Number)的提案中的 Value 也必須是 v。

    從上述的三個命題,我們可以很容易地看出來,P3 可以推導出 P2,進而推導出 P1,也就是說這是一個歸約的過程,因此只要 P3 成立則 P1 成立,也就是 Paxos 算法的正確性得到保證。

    那么要如何實現呢 P3 呢?只需滿足如下約束:

    C3. 對于一個被 Proposer 提議的提案中任意的 v 和 n,存在一個數量超過半數 Acceptors 的集合 S,滿足以下兩個條件中的任意一個:

    • S 中的任何一個 Acceptor 都沒有接受過編號小于 n 的提案。

    • S 中所有的 Acceptors 接受過的最大編號的提案的 Value 為 v。

    為了滿足 C3 從而實現 P3,需要引入一條約束:Proposer 每次生成自己的 n 之后,發起提案之前,必須要先去『學習』那個已經被選定或者將要被選定的小于 n 的提案,如果有這個提案的話則把那個提案的 v 作為自己的此次提案的 Value,沒有的話才可以自己指定一個 Value,這樣的話 Proposer 側就可以保證更高編號的提案的值只會是已選定的 v 了,但是 Acceptor 側還無法保證,因為 Acceptor 有可能還會接受其他的 Proposers 的提案值,于是我們需要對 Acceptor 也加一條約束,讓它承諾在收到編號為 n 的 v 之后,不會再接受新的編號小于 n 的提案值。

    所以我們可以得到一個 Paxos 在 Proposer 側的算法流程:

  • Proposer 生成一個新的提案編號 n 然后發送一個 prepare 請求給超過半數的 Acceptors 集合,要求集合中的每一個 Acceptor 做出如下響應:

    (a) 向 Proposer 承諾在收到該消息之后就不再接受編號小于 n 的提案。

    (b) 如果 Acceptor 在收到該消息之前已經接受過其他提案,則把當前接受的編號最大的提案回復給 Proposer。

  • 如果 Proposer 收到了超過半數的 Acceptors 的回復,那么就可以生成 (n, v) 的提案,這里 v 是所有 Acceptors 回復中編號最大的那個提案里的值,如果所有 Acceptors 回復中都沒有附帶上提案的話,則可以由 Proposer 自己選擇一個 v。

  • Proposer 將上面生成的提案通過一個 accept 請求發送給一個超過半數的 Acceptors 集合。(需要注意的是這個集合不一定和第二步中的那個集合是同一個。)

  • Paxos 在 Proposer 側的算法流程已經確定了,接下來我們需要從 Acceptor 的視角來完成剩下的算法推導。前面我們提到過,Acceptor 是可以接受多個 Proposers 的多個提案的,但是在收到一個 Proposer 的 prepare 消息后會承諾不再接受編號小于 n 的新提案,也就是說 Acceptor 也是可以忽略掉其他 Proposers 消息(包括 prepareaccept)而不會破壞算法的安全性,當然了,在工程實踐中也可以直接回復一個錯誤,讓 Proposer 更早知道提案被拒絕然后生成提案重新開始流程。這里我們應該重點思考的場景是一個 Acceptor 接受一個提案請求的時候,根據前面 Proposer 要求 Acceptor 的承諾,我們可以給 Acceptor 設置一個這樣的約束:

    C4. 如果一個 Proposer 發出了帶 n 的 prepare 請求,只要 Acceptor 還沒有回復過任何其他編號大于 n 的prepare?請求,則該 Acceptor 可以接受這個提案。

    因為 Acceptor 需要對 Proposer 做出不接受編號小于 n 的提案的承諾,因此它需要做持久化記錄,那么它就必須是有狀態的,也因此每個 Acceptor 都需要利用可靠性存儲(日志)來保存兩個對象:

  • Acceptor 接受過的編號最大的提案;

  • Acceptor 回復過的最大的 prepare 請求提案編號。

  • 以上這就是 Acceptor 側的約束。接下來我們就可以得到 Paxos 的整個算法流程了。

    Paxos 算法可以歸納為兩大基本過程:

  • 選擇過程;

  • 學習過程。

  • 選擇過程

    選擇過程分為兩個階段:

    • 階段一(Phase 1):

      (a) Proposer 生成一個全局唯一且單調遞增的提案編號 n,然后發送編號為 n 的 prepare 請求(P1a msg)給超過半數的 Acceptors 集合。

      (b) 當一個 Acceptor 收到一個編號為 n 的 prepare 請求,如果 n 比它此前接受過其他的提案編號(如果有)都要大的話,那么將這個提案編號 n 寫入本地日志,這里記為 max_n,然后作出『兩個承諾,一個回復』:

      否則就忽略該 prepare 消息或者回復一個錯誤。

      • 在不違背以前作出的承諾下,回復消息(P1b msg),附帶上自己已經接受過的提案中編號最大的那個提案的 v 和 n,沒有則返回空值。

      • 不再接受編號小于等于 n 的 prepare 請求

      • 不再接受編號小于等于 n 的 accept 請求

      • 兩個承諾:

      • 一個回復:

    • 階段二(Phase 2):

      (a) 當 Proposer 收到超過半數的 Acceptors 回復它的編號為 n 的 prepare 請求的響應,此時有兩種可能:

      (b) 當 Acceptor 收到一個編號為 n 的提案的 accept 請求消息,需要分兩種情況處理:

      • 如果 n >= max_n(通常情況下這兩個值是相等的),則接受該提案并回復消息(P2b msg)。

      • 如果 n < max_n,則忽略該 accept 消息或者回復一個錯誤(P2b error)。

      • Free:沒有任何一個 Acceptor 的回復消息中附帶已被接受的提案,意味著當前流程中還沒有提案值被最終接受,此時 Proposer 可以自由地選擇提案值 Value,最后發送一個包含 (n, v) 提案的 accept 請求消息(P2a msg)給 Acceptors 集合。

      • Forced:某些 Acceptors 的回復消息中附帶已被接受的提案,那么 Proposer 必須強制使用這些回復消息中編號最大的提案 Value 作為自己的提案值,最后發送一個包含 (n, v) 提案的 accept 請求消息(P2a msg)給 Acceptors 集合。

    學習過程

    選擇過程結束之后,我們得到了一個提案值,接下來就是要讓集群中的所有 Learner 『學習』到這個值了,以求達到集群的共識。

    Learner 學習提案值的方式可以分成三種:

  • 任意一個 Acceptor 接受了一個提案后就立刻將該提案發送給所有 Learner。優點:Learner 能實時學習到被 Paxos 流程選定的 Value;缺點:網絡通信次數太多,如果有 N 個 Acceptors 和 M 個 Learner,則需要的網絡通信是 N*M 次。

  • 設置一個主 Learner,Acceptor 接受了一個提案后只將該提案發送給主 Learner,主 Learner 再轉發給剩下的 Learners。優點:網絡通信次數只需 N+M-1 次;缺點:主 Learner 有單點故障的風險。

  • Acceptor 接受了一個提案后將該提案發送給一個 Learner 集合,由這個集合去通知剩下的 Learners。優點:用集合替代單點,可靠性更高;缺點:增加系統復雜度,需要維護一個 Learner 小集群。

  • 至此,我們就推導出了整個 Paxos 算法的流程:

    算法證明

    這一節我們來證明 Paxos 算法的正確性。

    上一節我們已經提煉出來了 Paxos 的基本命題 P1,并通過歸約 P1 得到了約束性更強的另外兩個命題 P2 和 P3,根據歸約的原理,我們知道 P3 可以最終推導出 P1,也就是說如果要證明 Paxos 的基本命題 P1,只需要證明 P3 即可。為什么之前我們要不斷強化 Paxos 的命題呢?因為從數學的層面來講,一個具有更強約束(更多假設)的命題一般會更容易證明。

    現在我們把 P1, P2 和 P3 用更嚴格的數學語言來描述:

    P1. 在一次 Paxos 流程中,如果一個包含 (n, v) 的提案被選定(Chosen),那么存在未來被選定的提案 (k, v1),必然滿足 k > n,v1 = v。

    P2. 在一次 Paxos 流程中,如果一個包含 (n, v) 的提案被選定(Chosen),那么存在未來被超過半數的 Acceptors 接受的提案 (k, v1),必然滿足 k > n,v1 = v。

    P3. 在一次 Paxos 流程中,如果一個包含 (n, v) 的提案被選定(Chosen),那么存在未來由 Proposer 提議的提案 (k, v1),必然滿足 k > n,v1 = v。

    現在我們利用數學歸納法來證明 P3:

    假設 k = m 時 P3 成立,由于 (n, v) 已經是被選定的提案,因此 Proposer 發起的從 n 到 k 的提案中的 Value 都會是 v,其中 m >= n,那么根據歸約的原理可證 k = m 時 P1 也成立

    現在令 k = m+1,Proposer 發送帶編號 k 的 prepare 請求消息到 Acceptors 集合。

    由于此前已經有了選定的提案,那么根據 Paxos 的約束 C2 可知參與這一個提案投票的 Acceptors 集合必定和上一個集合有重合。

    根據 Acceptors 集合重疊和 Paxos 的 P1b 階段可知,回復的消息中必定附帶有已被大多數 Acceptors 接受的提案 (i, v0)。

    然后根據 P2a 階段,Proposer 提案 (k, v1),其中 v1 = v0。

    還是根據 P1b,可知 i 是所有回復消息里編號最大的,可得 i >= m,又根據 P1a 可知 i < k,因此可以得出提案 (i, v0) 中有 v0 = v。

    可知當 k = m+1 時,提案 (k, v1) 中的 v1 = v。

    根據數學歸納法的原理,我們還需要找到一個特例來使得命題成立,然后由特例推廣到普遍,我們這里選擇 k = 1 作為特例,證明 k = 1 時 P3 成立:根據 Paxos 的約束 C1 易知在 n = 0,k = 1 的場景下,P3 成立。

    因此可根據數學歸納法基于 k = 1 進行推廣至 k = m(m 代表任意自然數),最后 P3 命題得證。

    再由歸約的原理可知,P3 可推導出 P2,最后 P2 推導出 P1。至此, Paxos 算法原理正確性的證明完成。

    上述的證明只是一種比較簡單且粗淺的證明方法,但是對于工程師理解 Paxos 原理來說已經足夠了,如果希望進一步學習 Paxos 原理的嚴格數學證明,可以參閱 Leslie Lamport 的原始論文《The PartTime Parliament》,里面給出了 Paxos 算法的嚴格數學證明。

    Multi-Paxos

    自 Lamport 于 1990 年在論文《The PartTime Parliament》中提出 Paxos 算法之后,這個算法一直被評價為難以理解和實現,這篇論文中運用了大量的數學對 Paxos 的原理進行證明,而又由于 Lamport 在論文里用講故事的形式解釋 Paxos,進一步增大了人們徹底理解 Paxos 的難度,事實上 Lamport 的這篇論文也因此在發表過程中一波三折,這里不展開,有興趣的讀者可以自行去了解這段這段背景故事。

    因為業界在理解 Paxos 算法上持續的怨聲載道,Lamport 在 2001 年發表了論文《Paxos Made Simple》,對原論文進行精簡,以更通俗易懂的語言和形式闡述 Paxos 算法,并在其中提出了更加具備工程實踐性的 Multi-Paxos 的思想。

    關于 Paxos 難以理解的問題上,我個人的一點愚見是:Paxos 算法的思想其實并不難理解,真正難的地方是:

  • Paxos 背后那一套完整的數學原理和證明

  • 在復雜分布式環境將 Paxos 進行工程落地

  • 我個人建議的 Paxos 學習資料是:《Paxos Made Simple》,《Paxos Made Live - An Engineering Perspective》以及 Paxos lecture (Raft user study)。第一篇論文可以說是 Lamport ?1990 年那篇最初的論文的精簡版,可讀性提高了很多,論文里也沒有使用任何數學公式,只需一點英文基礎就可以通讀,第二篇論文講的則是 Google 內部基于 Multi-Paxos 實現的分布式鎖機制和小文件存儲系統,這是業界較早的實現了 Multi-Paxos 的大規模線上系統,十分具有參考性,最后的 Youtube 視頻則是 Raft 的作者 Diego Ongaro 為了對比 Raft 和 Multi-Paxos 的學習的難易程度而做的,非常適合作為學習 Paxos 和 Raft 的入門資料。

    從上一節可知 Basic Paxos 算法有幾個天然缺陷:

    • 只能就單個值(Value)達成共識,不支持多值共識。在實際的工程實踐中往往是需要對一系列的操作達成共識,比如分布式事務,由很多執行命令組成。

    • 至少需要 2 輪往返 4 次 prepareaccept 網絡通信才能基于一項提案達成共識。對于一個分布式系統來說,網絡通信是最影響性能的因素之一,過多的網絡通信往往會導致系統的性能瓶頸。

    • 不限制 Proposer 數量導致非常容易發生提案沖突。極端情況下,多 Proposer 會導致系統出現『活鎖』,破壞分布式共識算法的兩大約束之一的活性(liveness)。

    關于第三點,前文提到分布式共識算法必須滿足兩個最核心的約束:安全性(safety)和活性(liveness),從上一節我們可以看出 Basic Paxos 主要著重于 safety,而對 liveness 并沒有進行強約束,讓我們設想一種場景:兩個 Proposers (記為 P1 和 P2) 輪替著發起提案,導致兩個 Paxos 流程重疊了:

  • 首先,P1 發送編號 N1 的 prepare 請求到 Acceptors 集合,收到了過半的回復,完成階段一。

  • 緊接著 P2 也進入階段一,發送編號 N2 的 prepare 請求到過半的 Acceptors 集合,也收到了過半的回復,Acceptors 集合承諾不再接受編號小于 N2 的提案。

  • 然后 P1 進入階段二,發送編號 N1 的 accept 請求被 Acceptors 忽略,于是 P1 重新進入階段一發送編號 N3 的 prepare 請求到 Acceptors 集合,Acceptors 又承諾不再接受編號小于 N3 的提案。

  • 緊接著 P2 進入階段二,發送編號 N2 的 accept 請求,又被 Acceptors 忽略。

  • 不斷重復上面的過程......

  • 在極端情況下,這個過程會永遠持續,導致所謂的『活鎖』,永遠無法選定一個提案,也就是 liveness 約束無法滿足。

    為了解決這些問題,Lamport 在《Paxos Made Simple》論文中提出了一種基于 Basic Paxos 的 Multi-Paxos 算法思想,并基于該算法引出了一個分布式銀行系統狀態機的實現方案,感興趣的讀者不妨看一下。

    Multi-Paxos 算法在 Basic Paxos 的基礎上做了兩點改進:

  • 多 Paxos 實例:針對每一個需要達成共識的單值都運行一次 Basic Paxos 算法的實例,并使用 Instance ID 做標識,最后匯總完成多值共識。

  • 選舉單一的 Leader Proposer:選舉出一個 Leader Proposer,所有提案只能由 Leader Proposer 來發起并決策,Leader Proposer 作為 Paxos 算法流程中唯一的提案發起者,『活鎖』將不復存在。此外,由于單一 Proposer 不存在提案競爭的問題,Paxos 算法流程中的階段一中的 prepare 步驟也可以省略掉,從而將兩階段流程變成一階段,大大減少網絡通信次數。

  • 關于多值共識的優化,如果每一個 Basic Paxos 算法實例都設置一個 Leader Proposer 來工作,還是會產生大量的網絡通信開銷,因此,多個 Paxos 實例可以共享同一個 Leader Proposer,這要求該 Leader Proposer 必須是穩定的,也即 Leader 不應該在 Paxos 流程中崩潰或改變。

    由于 Lamport 在論文中提出的 Multi-Paxos 只是一種思想而非一個具體算法,因此關于 Multi-Paxos 的很多細節他并沒有給出具體的實現方案,有些即便給出了方案也描述得不是很清楚,比如他在論文中最后一節提出的基于銀行系統的狀態機中的多 Paxos 實例處理,雖然給了具體的論述,但是在很多關鍵地方還是沒有指明,這也導致了后續業界里的 Multi-Paxos 實現各不相同。kd

    我們這里用 Google Chubby 的 Multi-Paxos 實現來分析這個算法。

    首先,Chubby 通過引入 Master 節點,實現了 Lamport 在論文中提到的 single distinguished proposer,也就是 Leader Proposer,Leader Proposer 作為 Paxos 算法流程中唯一的提案發起者,規避了多 Proposers 同時發起提案的場景,也就不存在提案沖突的情況了,從而解決了『活鎖』的問題,保證了算法的活性(liveness)。

    Lamport 在論文中指出,選擇 Leader Proposer 的過程必須是可靠的,那么具體如何選擇一個 Leader Proposer 呢?在 Chubby 中,集群利用 Basic Paxos 算法的共識功能來完成對 Leader Proposer 的選舉,這個實現是具有天然合理性的,因為 Basic Paxos 本身就是一個非常可靠而且經過嚴格數學證明的共識算法,用來作為選舉算法再合適不過了,在 Multi-Paxos 流程期間,Master 會通過不斷續租的方式來延長租期(Lease)。比如在實際場景中,一般在長達幾天的時期內都是同一個服務器節點作為 Master。萬一 Master 故障了,那么剩下的 Slaves 節點會重新發起 Paxos 流程票選出新的 Master,也就是說主節點是一直存在的,而且是唯一的。

    此外,Lamport 在論文中提到的過一種優化網絡通信的方法:“當 Leader Proposer 處于穩定狀態時,可以跳過階段一,直接進入階段二”,在 Chubby 中也實現了這個優化機制,Leader ?Proposer 在為多個 Paxos 算法實例服務的時候直接跳過階段一進入階段二,只發送 accept 請求消息給 Acceptors 集合,將算法從兩階段優化成了一階段,大大節省網絡帶寬和提升系統性能。

    最后,Multi-Paxos 是一個"腦裂"容錯的算法思想,就是說當 Multi-Paxos 流程中因為網絡問題而出現多 Leaders 的情況下,該算法的安全性(safety )約束依然能得到保證,因為在這種情況下,Multi-Paxos 實際上是退化成了 Basic Paxos,而 Basic Paxos 天然就支持多 Proposers。

    在分布式事務中,Paxos 算法能夠提供比兩階段提交協議更加可靠的一致性提交:通過將提交/放棄事務的決定從原來兩階段協議中單一的協調者轉移到一個由 Proposer + Acceptors 組成的集群中。Lamport 曾經發表過一篇《Consensus on Transaction Commit》的論文,通過將兩階段提交協議和基于 Paxos 實現的分布式提交協議做對比,對基于 Paxos 實現的提交協議有非常精彩的論述,感興趣的讀者不妨一讀

    Raft

    Raft 算法實際上是 Multi-Paxos 的一個變種,通過新增兩個約束:

  • 追加日志約束:Raft 中追加節點的日志必須是串行連續的,而 Multi-Paxos 中則可以并發追加日志(實際上 Multi-Paxos 的并發也只是針對日志追加,最后應用到內部 State Machine 的時候還是必須保證順序)。

  • 選主限制:Raft 中只有那些擁有最新、最全日志的節點才能當選 Leader 節點,而 Multi-Paxos 由于允許并發寫日志,因此無法確定一個擁有最新、最全日志的節點,因此可以選擇任意一個節點作為 Leader,但是選主之后必須要把 Leader 節點的日志補全。

  • 基于這兩個限制,Raft 算法的實現比 Multi-Paxos 更加簡單易懂,不過由于 Multi-Paxos 的并發度更高,因此從理論上來說 Multi-Paxos 的性能會更好一些,但是到現在為止業界也沒有一份權威的測試報告來支撐這一觀點。

    對比一下 Multi-Paxos 和 Raft 下集群中可能存在的日志順序:

    可以看出,Raft 中永遠滿足這樣一個約束:follower log 一定會是 leader log 的子集并且順序一定是連續的,而 Multi-Paxos 則不一定滿足這個約束,日志記錄通常是亂序的。

    由于 Raft 的核心思想源自 Multi-Paxos,在實現過程中做了很多改進優化,然而萬變不離其宗,我相信理解了 Multi-Paxos 之后再去學習 Raft 會事半功倍(Raft 在誕生之初也是打著"容易理解"的旗號來對標 Paxos 的),由于前面已經深度剖析過 Paxos 算法的流程和原理了,礙于本文的篇幅所限,這里就不再對 Raft 算法的細節進行深入探討了,如果有意深入學習 Raft,可以從 The Raft Consensus Algorithm 處找到相關的論文、源碼等資料進行全面的學習。

    最后有一些概念要澄清一下,Basic Paxos 是一個經過了嚴格數學證明的分布式共識算法,但是由于前文提到的 Basic Paxos 算法應用在實際工程落地中的種種問題,現實中幾乎沒有直接基于 Basic Paxos 算法實現的分布式系統,絕大多數都是基于 Multi-Paxos,然而 Multi-Basic 僅僅是一種對 Basic Paxos 的延伸思想而非一個具體算法,問題在于目前業界并沒有一個統一的 Multi-Paxos 實現標準,因此 Multi-Paxos 的工程實現是建立在一個未經嚴格證明的前提之上的,工程實現最終的正確性只能靠實現方自己去驗證,而 Raft 則是一個具有統一標準實現的、正確性已經過嚴格證明的具體算法,因此在分布式系統的工程實踐中大多數人往往還是會選擇 Raft 作為底層的共識算法。

    算法類型

    需要特別指出的一點是,根據解決的場景是否允許拜占庭(Byzantine)錯誤,共識算法可以分為 Crash Fault Tolerance (CFT) 和 Byzantine Fault Tolerance(BFT)兩類。

    對于非拜占庭錯誤的情況,已經存在不少經典的算法,包括 Paxos(1990 年)、Raft(2014 年)及其變種等。這類容錯算法往往性能比較好,處理較快,容忍不超過一半的故障節點。

    對于要能容忍拜占庭錯誤的情況,包括 PBFT(Practical Byzantine Fault Tolerance,1999 年)為代表的確定性系列算法、PoW(1997 年)為代表的概率算法等。確定性算法一旦達成共識就不可逆轉,即共識是最終結果;而概率類算法的共識結果則是臨時的,隨著時間推移或某種強化,共識結果被推翻的概率越來越小,最終成為事實上結果。拜占庭類容錯算法往往性能較差,容忍不超過 1/3 的故障節點。

    本文主要討論的分布式共識算法是 CFT 類算法,畢竟對于大多數分布式系統來說,集群節點和網絡消息一般都是可控的,系統只會出現節點故障而不會出現像拜占庭錯誤那樣偽造的、欺騙性的網絡消息,在這種場景下,CFT 類算法更具有現實意義;BFT/PBFT 類算法更多是用在系統被惡意入侵,故意偽造網絡消息的場景里。

    并發控制

    在分布式事務中,集群中的每個服務器節點要管理很多資源對象,每個節點必須保證在并發事務訪問這些資源對象時,它們能夠始終保持一致性。因此,每個服務器節點需要對自己的管理的資源對象應用一定的并發控制機制。分布式事務中需要所有服務器節點共同保證事務以串行等價的的方式執行。

    也就是說,如果事務 T 對某一個服務器節點上的資源對象 S 的并發訪問在事務 U 之前,那么我們需要保證在所有服務器節點上對 S 和其他資源對象的沖突訪問,T 始終在 U 之前。

    鎖并發控制

    在分布式事務中,某個對象的鎖總是本地持有的(在同一個服務器節點上)。是否加鎖是由本地鎖管理器(Local Lock Manager,LLM)決定的。LLM 決定是滿足客戶端持鎖的請求,還是阻塞客戶端發起的分布式事務。但是,事務在所有服務器節點上被提交或者放棄之前,LLM 不能釋放任何鎖。在使用加鎖機制的并發控制中,原子提交協議在進行的過程中資源對象始終被鎖住,并且是排他鎖,其他事務無法染指這些資源對象。但如果事務在兩階段提交協議的階段一就被放棄,則互斥鎖可以提前釋放。

    由于不同服務器節點上的 LLM 獨立設置資源對象鎖,因此,對于不同的事務,它們加鎖的順序也可能出現不一致。考慮一個場景:事務 T 和 U在服務器 X 和 Y 之間的交錯執行:

  • 事務 T 鎖住了服務器節點 X 上的資源對象 A,做寫入操作;

  • 事務 U 鎖住了服務器節點 Y 上的資源對象 B,做寫入操作;

  • 事務 T 試圖讀取服務器節點 Y 上的資源對象 B,此時 B 被事務 U 鎖住,因此 T 等待鎖釋放;

  • 事務 U 試圖讀取服務器節點 X 上的資源對象 A,此時 A 被事務 T 鎖住,因此 U 等待鎖釋放。

  • 在服務器節點 X 上,事務 T 在事務 U 之前;而在服務器節點 Y 上,事務 U 在事務 T 之前。這種不一致的事務次序導致了事務之間的循環依賴,從而引起分布式死鎖。分布式死鎖需要通過特定的方法/算法來檢測并解除,一旦檢測到死鎖,則必須放棄其中的某個事務來解除死鎖,然后通知事務協調者,它將會放棄該事務所涉及的所有參與者上的事務。

    時間戳并發控制

    對于單一服務器節點的事務來說,協調者在每個事務啟動時會為其分配一個全局唯一的時間戳。通過按照訪問資源對象的事務時間戳順序提交資源對象的版本來強制保證以事務執行的串行等價性。在分布式事務中,協調者必須保證每個事務都會附帶全局唯一的時間戳。全局唯一的時間戳由事務訪問的第一個協調者發給客戶端。如果任意一個服務器節點上的資源對象執行了事務中的一個操作,那么事務時間戳會被發送給該服務器節點上的協調者。

    分布式事務中的所有服務器節點共同保證事務以串行等價的方式執行。例如,如果在某服務器節點上,由事務 U 訪問的資源對象版本在事務 T 訪問之后提交;而在另一個服務器節點上,事務 T 和事務 U 又訪問了同一個資源對象,那么它們也必須按照相同的次序提交資源對象。為了保證所有服務器節點上的事務執行的相同順序,協調者必須就時間戳排序達成一致。時間戳是一個二元組 < 本地時間戳,服務器 ID > 對。在時間戳的比較排序過程中,首先比較本地時間戳,然后再比較服務器 ID。

    一個可靠的時間戳并發控制應該保證即使各個服務器節點之間的本地時間不同步,也能保證事務之間的相同順序。但是考慮到效率,各個協調者之間的時間戳還是最好還是要求大致同步。這樣的話,事務之間的順序通常與它們實際開始的時間順序相一致。可以利用一些本地物理時鐘同步方法來保證時間戳的大致同步。

    如果決定利用時間戳機制進行分布式事務的并發控制,那么還需要通過某些方法來解決事務沖突問題。如果為了解決沖突需要放棄某個事務時,相應的協調者會收到通知,并且它將在所有的參與者上放棄該事務。這樣,如果事務能夠堅持到客戶端發起提交請求命令的那個時候,那么這個事務就總能被提交。因此在兩階段提交協議中,正常情況下參與者都會同意提交,唯一一種不同意提交的情況是參與者在事務執行過程中曾經崩潰過。

    樂觀并發控制

    加鎖機制這一類悲觀并發控制有許多明顯的缺陷:

    • 鎖的維護帶來了很多新的開銷。這些開銷在不支持對共享數據并發訪問的系統中是不存在的。即使是只讀事務(如查詢),就算這一類事務不會改變數據的完整性,卻仍然需要利用鎖來保證數據在讀取過程中不會被其他事務修改,然而鎖卻只在最極端的情況下才會發揮作用。

    • 鎖機制非常容易引發死鎖。預防死鎖會嚴重降低并發度,因此必須利用超時或者死鎖檢測來解除死鎖,但這些死鎖解除方案對于交互式的程序來說并不是很理想。

    • 鎖周期過長。為了避免事務的連鎖(雪崩)放棄,鎖必須保留到事務結束之時才能釋放,這再一次嚴重降低了系統的并發度。

    由于鎖這一類的悲觀并發控制有上述的種種弊端,因此研究者們提出了另一種樂觀并發控制的機制,以求規避鎖機制的天然缺陷,研究者們發現這樣的一個現象:在大多數應用中兩個客戶端事務訪問同一個資源對象的可能性其實很低,事務總是能夠成功執行,就好像事務之間不存在沖突一樣。

    所以事務的樂觀并發控制的基本思路就是:各個并發事務只有在執行完成之后并且發出 closeTransaction 請求時,再去檢測是否有沖突,如果確實存在沖突,那么就放棄一些事務,然后讓客戶端重新啟動這些事務進行重試。

    在樂觀并發控制中,每個事務在提交之前都必須進行驗證。事務在驗證開始時首先要附加一個事務號,事務的串行化就是根據這些事務號的順序實現的。分布式事務的驗證由一組獨立的服務器節點共同完成,每個服務器節點驗證訪問自己資源對象的事務。這些驗證在兩階段提交協議的第一個階段進行。

    關于分布式事務的并發控制就暫時介紹到這里,如果想要繼續深入學習更多并發控制的細節,可以深入閱讀《分布式系統:概念與設計》、《數據庫系統實現》和《數據庫系統概念》等書籍或者其他資料。

    總結

    本文通過講解 BASE 原則兩階段原子提交協議三階段原子提交協議Paxos/Multi-Paxos 分布式共識算法的原理與證明Raft 分布式共識算法分布式事務的并發控制等內容,為讀者全面而又深入地講解分析了分布式事務以及分布式系統的底層核心原理,特別是通過對原子提交協議中的 2PC/3PC 的闡述和分析,以及對分布式共識算法 Paxos 的原理剖析和正確性的證明,最后還有對分布式事務中幾種并發控制的介紹,相信能夠讓讀者對分布式事務和分布式系統底層的一致性和并發控制原理有一個深刻的認知,對以后學習和理解分布式系統大有裨益。

    本文不僅僅是簡單地介紹分布式事務和分布式系統的底層原理,更是在介紹原理的同時,通過層層遞進的方式引導讀者去真正地理解分布式系統的底層原理和設計思路,而非讓讀者死記硬背一些概念,所以希望通過這篇拋磚引玉的文章,能夠對本文讀者在以后學習、操作甚至是設計分布式系統以及分布式事務時的思路有所開拓。

    參考&延伸

    • ACID

    • Eventual consistency

    • Atomic commit

    • A Two-Phase Commit Protocol and its Performance

    • The PartTime Parliament

    • Paxos Made Simple

    • Fast Paxos

    • The Performance of Paxos and Fast Paxos

    • Paxos Made Live - An Engineering Perspective

    • Paxos (computer science)

    • The Chubby lock service for loosely-coupled distributed systems

    • Consensus on Transaction Commit

    • Life beyond Distributed Transactions: an Apostate’s Opinion

    • In Search of an Understandable Consensus Algorithm

    • Paxos lecture (Raft user study)

    • Distributed Systems: Concepts and Design

    • How to Build a Highly Available System Using Consensus

    • 數學歸納法

    • 共識算法

    • Distributed Transaction Processing: The XA Specification

    總結

    以上是生活随笔為你收集整理的分布式之系统底层原理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产成人无码专区 | 一本久久a久久精品亚洲 | 伊在人天堂亚洲香蕉精品区 | 欧美刺激性大交 | 荫蒂被男人添的好舒服爽免费视频 | 动漫av网站免费观看 | 四十如虎的丰满熟妇啪啪 | 国产成人精品无码播放 | 一本久久a久久精品亚洲 | 漂亮人妻洗澡被公强 日日躁 | 国产精品无码一区二区三区不卡 | 男女下面进入的视频免费午夜 | 欧美性猛交xxxx富婆 | 国内精品一区二区三区不卡 | 亚洲日本va午夜在线电影 | 爱做久久久久久 | 亚洲中文字幕乱码av波多ji | 精品无码国产自产拍在线观看蜜 | 国产精品国产自线拍免费软件 | 蜜桃臀无码内射一区二区三区 | 欧美乱妇无乱码大黄a片 | 人人妻人人澡人人爽人人精品 | 欧美老人巨大xxxx做受 | 欧美人与物videos另类 | 成人性做爰aaa片免费看 | 亚洲gv猛男gv无码男同 | 天堂а√在线地址中文在线 | 无码人中文字幕 | 国产成人无码一二三区视频 | 亚洲精品综合五月久久小说 | 国内精品人妻无码久久久影院 | 亚洲自偷自偷在线制服 | 国产suv精品一区二区五 | 无码人妻丰满熟妇区五十路百度 | 亚洲欧洲日本综合aⅴ在线 | 精品人妻中文字幕有码在线 | 鲁鲁鲁爽爽爽在线视频观看 | 成人精品视频一区二区三区尤物 | 性啪啪chinese东北女人 | 亚洲国产综合无码一区 | 狠狠色色综合网站 | 国产成人精品一区二区在线小狼 | 无码国模国产在线观看 | 波多野42部无码喷潮在线 | 国产真实夫妇视频 | 成年美女黄网站色大免费视频 | 性欧美牲交xxxxx视频 | 欧美 日韩 人妻 高清 中文 | 国产熟女一区二区三区四区五区 | 日产精品99久久久久久 | 天天摸天天碰天天添 | 香蕉久久久久久av成人 | 国产成人精品必看 | 久久精品一区二区三区四区 | 西西人体www44rt大胆高清 | 人人妻人人澡人人爽人人精品浪潮 | 在线播放亚洲第一字幕 | 久久综合九色综合97网 | 暴力强奷在线播放无码 | 乱人伦人妻中文字幕无码久久网 | 正在播放东北夫妻内射 | 国产精品99爱免费视频 | 国产av一区二区精品久久凹凸 | 久久精品视频在线看15 | 亚洲综合久久一区二区 | 牲交欧美兽交欧美 | 女人高潮内射99精品 | 亚洲一区二区三区在线观看网站 | 日本xxxx色视频在线观看免费 | 国产精品亚洲а∨无码播放麻豆 | 国产两女互慰高潮视频在线观看 | 国产亚洲精品久久久久久国模美 | 丝袜足控一区二区三区 | 性欧美熟妇videofreesex | 久久亚洲精品中文字幕无男同 | 国产明星裸体无码xxxx视频 | 波多野42部无码喷潮在线 | 国产精品第一国产精品 | 未满小14洗澡无码视频网站 | 中文精品无码中文字幕无码专区 | 老熟女重囗味hdxx69 | 99久久精品日本一区二区免费 | 亚洲一区二区三区四区 | 欧美老熟妇乱xxxxx | 激情国产av做激情国产爱 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲精品成a人在线观看 | 亚洲国产精品久久久天堂 | 曰韩少妇内射免费播放 | 国产精品第一区揄拍无码 | 国产成人一区二区三区别 | 无人区乱码一区二区三区 | 亚洲中文字幕无码中文字在线 | 亚洲精品国产a久久久久久 | 国产精华av午夜在线观看 | 狠狠cao日日穞夜夜穞av | 国产成人综合美国十次 | 一二三四在线观看免费视频 | 精品国产一区av天美传媒 | 亚洲中文字幕在线观看 | 熟妇人妻无码xxx视频 | 又大又硬又爽免费视频 | 麻豆成人精品国产免费 | 国产人妻久久精品二区三区老狼 | 久久亚洲中文字幕精品一区 | 装睡被陌生人摸出水好爽 | 国产乱人伦偷精品视频 | 日韩精品无码一本二本三本色 | 福利一区二区三区视频在线观看 | 亚洲熟女一区二区三区 | 男女性色大片免费网站 | 亚洲一区二区三区四区 | 无码av最新清无码专区吞精 | 粗大的内捧猛烈进出视频 | 亚洲a无码综合a国产av中文 | 人人澡人人妻人人爽人人蜜桃 | 国产午夜无码视频在线观看 | √8天堂资源地址中文在线 | 无码国内精品人妻少妇 | 无遮挡啪啪摇乳动态图 | 国产精品久久久久久久影院 | 蜜臀aⅴ国产精品久久久国产老师 | 久久99国产综合精品 | 免费观看又污又黄的网站 | 激情爆乳一区二区三区 | 人人爽人人爽人人片av亚洲 | 亚洲精品国产精品乱码视色 | 久久精品中文字幕一区 | 精品亚洲成av人在线观看 | 久久视频在线观看精品 | 婷婷色婷婷开心五月四房播播 | 国产成人精品必看 | 国产人妻久久精品二区三区老狼 | 亚洲欧美色中文字幕在线 | 国产三级精品三级男人的天堂 | 中文字幕中文有码在线 | 无码精品国产va在线观看dvd | 国产精品多人p群无码 | 中文字幕精品av一区二区五区 | 日本熟妇人妻xxxxx人hd | 国产精品久久久久久无码 | 麻豆国产人妻欲求不满谁演的 | 亚洲日本va午夜在线电影 | 熟女俱乐部五十路六十路av | 国产精品久久久久无码av色戒 | ass日本丰满熟妇pics | 又大又硬又黄的免费视频 | 又大又硬又黄的免费视频 | 激情内射亚州一区二区三区爱妻 | 无码精品人妻一区二区三区av | 亚洲综合伊人久久大杳蕉 | 国产成人无码av一区二区 | 无套内射视频囯产 | 亚洲乱码国产乱码精品精 | 国产av久久久久精东av | 福利一区二区三区视频在线观看 | 午夜时刻免费入口 | 亚洲va欧美va天堂v国产综合 | 国产亚洲日韩欧美另类第八页 | 日本乱人伦片中文三区 | 性欧美牲交在线视频 | 国产乱人伦偷精品视频 | 国产欧美熟妇另类久久久 | 亚洲精品一区二区三区大桥未久 | 人妻人人添人妻人人爱 | 性欧美牲交xxxxx视频 | 亚洲成色www久久网站 | 无码人妻久久一区二区三区不卡 | 久久精品一区二区三区四区 | 国产特级毛片aaaaaa高潮流水 | 国产精品a成v人在线播放 | 国产特级毛片aaaaaa高潮流水 | 久久久久久亚洲精品a片成人 | 国产精品内射视频免费 | 亚洲一区二区三区在线观看网站 | 国产69精品久久久久app下载 | 又粗又大又硬毛片免费看 | 国产精品嫩草久久久久 | 亚洲爆乳精品无码一区二区三区 | 亚洲国产精品美女久久久久 | 亚洲中文字幕久久无码 | 亚洲日韩av一区二区三区中文 | 精品人妻人人做人人爽 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 又大又黄又粗又爽的免费视频 | 国产亚洲欧美日韩亚洲中文色 | 日韩精品无码一区二区中文字幕 | 久久天天躁夜夜躁狠狠 | 国产精品久久久久久亚洲影视内衣 | 亚洲小说春色综合另类 | 国产电影无码午夜在线播放 | 国产免费无码一区二区视频 | 131美女爱做视频 | 国产亚洲精品久久久久久大师 | 老太婆性杂交欧美肥老太 | 日本一卡2卡3卡四卡精品网站 | 久久久精品国产sm最大网站 | 亚洲a无码综合a国产av中文 | 亚洲欧美中文字幕5发布 | 精品无码国产自产拍在线观看蜜 | 亚洲人亚洲人成电影网站色 | 老太婆性杂交欧美肥老太 | 国产精品久久久 | 呦交小u女精品视频 | 高中生自慰www网站 | 99久久久无码国产精品免费 | 99久久99久久免费精品蜜桃 | 人人妻人人澡人人爽精品欧美 | 亚洲国产日韩a在线播放 | 日韩无套无码精品 | 国产激情一区二区三区 | 色狠狠av一区二区三区 | a在线观看免费网站大全 | 国语精品一区二区三区 | 日韩精品久久久肉伦网站 | aa片在线观看视频在线播放 | 女人被男人爽到呻吟的视频 | 国产亚洲精品久久久久久久久动漫 | 国产真实伦对白全集 | 色综合久久久无码网中文 | 麻豆国产丝袜白领秘书在线观看 | 国内少妇偷人精品视频 | 窝窝午夜理论片影院 | 老熟女重囗味hdxx69 | 女人高潮内射99精品 | 亚洲色成人中文字幕网站 | 久久精品中文闷骚内射 | 中文字幕+乱码+中文字幕一区 | 欧美日韩一区二区免费视频 | 欧美黑人乱大交 | 日韩av无码一区二区三区不卡 | 精品无码国产一区二区三区av | 日韩人妻少妇一区二区三区 | 99久久99久久免费精品蜜桃 | 自拍偷自拍亚洲精品被多人伦好爽 | 水蜜桃亚洲一二三四在线 | 欧美兽交xxxx×视频 | 免费人成在线视频无码 | 欧美熟妇另类久久久久久不卡 | 精品偷拍一区二区三区在线看 | 曰本女人与公拘交酡免费视频 | 日本又色又爽又黄的a片18禁 | 国产成人无码a区在线观看视频app | 亚洲娇小与黑人巨大交 | 老头边吃奶边弄进去呻吟 | 欧美成人免费全部网站 | 99精品视频在线观看免费 | 国产真人无遮挡作爱免费视频 | 欧美丰满熟妇xxxx | 久久天天躁狠狠躁夜夜免费观看 | 老子影院午夜伦不卡 | 奇米影视7777久久精品人人爽 | 野外少妇愉情中文字幕 | 亚洲爆乳精品无码一区二区三区 | 亚洲精品成a人在线观看 | 性做久久久久久久久 | 97久久精品无码一区二区 | 国产在线精品一区二区高清不卡 | 老太婆性杂交欧美肥老太 | 日本熟妇浓毛 | 又色又爽又黄的美女裸体网站 | 久久精品99久久香蕉国产色戒 | 2020久久香蕉国产线看观看 | 日本一卡二卡不卡视频查询 | 狠狠亚洲超碰狼人久久 | 亚洲中文字幕在线观看 | 免费视频欧美无人区码 | 97无码免费人妻超级碰碰夜夜 | 国产精品无码mv在线观看 | 久久久久久久久蜜桃 | 国产97色在线 | 免 | 色综合久久久无码网中文 | 免费视频欧美无人区码 | 久久综合狠狠综合久久综合88 | 成人精品天堂一区二区三区 | 午夜福利一区二区三区在线观看 | 亚洲区小说区激情区图片区 | 国产黑色丝袜在线播放 | 99精品无人区乱码1区2区3区 | 性生交片免费无码看人 | 久久熟妇人妻午夜寂寞影院 | 国产超碰人人爽人人做人人添 | 亚洲gv猛男gv无码男同 | 精品无码国产一区二区三区av | 东京无码熟妇人妻av在线网址 | 无套内谢的新婚少妇国语播放 | 久久精品成人欧美大片 | 乌克兰少妇性做爰 | 中文字幕人妻无码一夲道 | 伊人久久大香线蕉av一区二区 | 亚洲精品一区二区三区在线观看 | 国产极品美女高潮无套在线观看 | 最新国产乱人伦偷精品免费网站 | 国产精品自产拍在线观看 | 无码播放一区二区三区 | 四十如虎的丰满熟妇啪啪 | 亚洲中文字幕av在天堂 | 亚洲の无码国产の无码步美 | 国产精品久久福利网站 | 亚洲人成影院在线无码按摩店 | 国产精品久久久久久久9999 | 久久天天躁狠狠躁夜夜免费观看 | 精品久久久久久亚洲精品 | 久久久www成人免费毛片 | 国产成人无码av一区二区 | 窝窝午夜理论片影院 | 性做久久久久久久免费看 | 丰满人妻翻云覆雨呻吟视频 | 牲交欧美兽交欧美 | 99久久人妻精品免费二区 | 女人高潮内射99精品 | 久久久成人毛片无码 | 国产人妖乱国产精品人妖 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产麻豆精品精东影业av网站 | 最近的中文字幕在线看视频 | 国产亚洲精品久久久闺蜜 | 国产精品对白交换视频 | 国产精品18久久久久久麻辣 | 在线精品国产一区二区三区 | 亚洲色欲色欲天天天www | 无遮挡啪啪摇乳动态图 | 久久久久亚洲精品男人的天堂 | 精品 日韩 国产 欧美 视频 | 国产亚洲tv在线观看 | 四虎国产精品一区二区 | 对白脏话肉麻粗话av | 欧美黑人乱大交 | 久久99精品久久久久久 | 精品日本一区二区三区在线观看 | 色综合久久久久综合一本到桃花网 | 亚洲综合色区中文字幕 | 风流少妇按摩来高潮 | 中文字幕乱码人妻二区三区 | 亚洲一区二区三区偷拍女厕 | 欧美精品一区二区精品久久 | аⅴ资源天堂资源库在线 | 亚洲熟女一区二区三区 | 亚洲人成网站色7799 | 熟妇人妻中文av无码 | 亚洲国产精品一区二区第一页 | 无码人妻丰满熟妇区五十路百度 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲乱码中文字幕在线 | 久久精品女人天堂av免费观看 | 麻豆md0077饥渴少妇 | 色综合久久久久综合一本到桃花网 | 中国大陆精品视频xxxx | 国产成人无码av片在线观看不卡 | 亚洲中文字幕乱码av波多ji | 久久午夜无码鲁丝片午夜精品 | 免费无码一区二区三区蜜桃大 | 国内综合精品午夜久久资源 | 永久免费观看美女裸体的网站 | 理论片87福利理论电影 | 国产亚洲美女精品久久久2020 | 99久久精品日本一区二区免费 | 亚洲а∨天堂久久精品2021 | 国产特级毛片aaaaaaa高清 | 人妻aⅴ无码一区二区三区 | 亚洲a无码综合a国产av中文 | 亚洲一区二区观看播放 | 女人被男人爽到呻吟的视频 | 俺去俺来也www色官网 | 人人澡人人透人人爽 | 久久精品成人欧美大片 | 亚洲熟妇色xxxxx欧美老妇y | 欧美国产亚洲日韩在线二区 | 东京一本一道一二三区 | 人妻少妇精品无码专区二区 | 少妇性荡欲午夜性开放视频剧场 | 十八禁视频网站在线观看 | 丰满妇女强制高潮18xxxx | 伊人色综合久久天天小片 | 一个人免费观看的www视频 | 东京热无码av男人的天堂 | 亚洲最大成人网站 | 国产真人无遮挡作爱免费视频 | 国产在线一区二区三区四区五区 | 成人试看120秒体验区 | 国产婷婷色一区二区三区在线 | 性欧美疯狂xxxxbbbb | 熟女少妇在线视频播放 | 成人精品一区二区三区中文字幕 | 欧洲熟妇色 欧美 | 清纯唯美经典一区二区 | 永久免费观看国产裸体美女 | 东京无码熟妇人妻av在线网址 | 亚洲天堂2017无码中文 | 久久综合色之久久综合 | 又大又紧又粉嫩18p少妇 | 亚洲人成无码网www | 少妇被粗大的猛进出69影院 | 2019nv天堂香蕉在线观看 | 女人被男人躁得好爽免费视频 | 国产精品亚洲专区无码不卡 | 天天拍夜夜添久久精品 | 亚洲国产精品一区二区美利坚 | 高清国产亚洲精品自在久久 | 乱人伦人妻中文字幕无码 | 国产精品久久久久久久影院 | 人人妻人人澡人人爽精品欧美 | 波多野结衣av在线观看 | 国产成人无码午夜视频在线观看 | 一个人看的www免费视频在线观看 | 精品偷自拍另类在线观看 | 欧美亚洲日韩国产人成在线播放 | 精品国产aⅴ无码一区二区 | 九九在线中文字幕无码 | 双乳奶水饱满少妇呻吟 | 中文字幕av无码一区二区三区电影 | 97久久精品无码一区二区 | 亚洲日韩av一区二区三区四区 | а√天堂www在线天堂小说 | 国产精品资源一区二区 | 久久人妻内射无码一区三区 | 国产亚洲tv在线观看 | 无码毛片视频一区二区本码 | 日韩精品久久久肉伦网站 | 国产精品自产拍在线观看 | 日本饥渴人妻欲求不满 | 中文字幕日产无线码一区 | 四十如虎的丰满熟妇啪啪 | 国产午夜无码视频在线观看 | 99久久久国产精品无码免费 | 精品人妻中文字幕有码在线 | 国产成人一区二区三区别 | 国产超碰人人爽人人做人人添 | 日韩人妻无码中文字幕视频 | 熟妇女人妻丰满少妇中文字幕 | 国产麻豆精品精东影业av网站 | 亚洲精品欧美二区三区中文字幕 | 欧美黑人性暴力猛交喷水 | 日韩欧美群交p片內射中文 | 欧美乱妇无乱码大黄a片 | www一区二区www免费 | 国产一区二区三区四区五区加勒比 | 免费看男女做好爽好硬视频 | 国产日产欧产精品精品app | av无码久久久久不卡免费网站 | 亚洲中文无码av永久不收费 | 国内丰满熟女出轨videos | 亚洲小说图区综合在线 | 国产亚洲人成a在线v网站 | 性欧美大战久久久久久久 | 大胆欧美熟妇xx | 精品国产av色一区二区深夜久久 | 亚洲精品一区国产 | 国产又爽又黄又刺激的视频 | 国模大胆一区二区三区 | 精品久久久久香蕉网 | 久久久久亚洲精品男人的天堂 | 国产电影无码午夜在线播放 | 丝袜美腿亚洲一区二区 | 亚洲成a人片在线观看日本 | 日本在线高清不卡免费播放 | 一本久久伊人热热精品中文字幕 | 红桃av一区二区三区在线无码av | aa片在线观看视频在线播放 | 亚洲熟妇自偷自拍另类 | 国产sm调教视频在线观看 | 国产乱人无码伦av在线a | 国产亚洲视频中文字幕97精品 | 女人和拘做爰正片视频 | 久9re热视频这里只有精品 | 亚洲区欧美区综合区自拍区 | 亚洲精品国产品国语在线观看 | 色噜噜亚洲男人的天堂 | 国产国产精品人在线视 | 亚洲一区二区三区国产精华液 | 草草网站影院白丝内射 | 亚无码乱人伦一区二区 | 兔费看少妇性l交大片免费 | 中文无码成人免费视频在线观看 | 中文无码精品a∨在线观看不卡 | 奇米影视7777久久精品 | 少妇高潮喷潮久久久影院 | 久久精品中文字幕一区 | 亚洲成av人片天堂网无码】 | 国产特级毛片aaaaaaa高清 | 午夜精品久久久内射近拍高清 | 蜜臀av无码人妻精品 | 国产9 9在线 | 中文 | 精品无码av一区二区三区 | 成人欧美一区二区三区黑人免费 | 曰本女人与公拘交酡免费视频 | 欧美人与牲动交xxxx | 久久久久久国产精品无码下载 | 四虎4hu永久免费 | 色综合久久久无码网中文 | 大地资源中文第3页 | 特级做a爰片毛片免费69 | 性色欲网站人妻丰满中文久久不卡 | 亚洲一区二区三区在线观看网站 | 日韩欧美群交p片內射中文 | 午夜无码人妻av大片色欲 | 免费无码午夜福利片69 | 日本肉体xxxx裸交 | 麻豆成人精品国产免费 | 欧美国产日产一区二区 | 亚洲无人区午夜福利码高清完整版 | 台湾无码一区二区 | 色窝窝无码一区二区三区色欲 | 人妻尝试又大又粗久久 | www一区二区www免费 | 乱人伦人妻中文字幕无码久久网 | 日韩在线不卡免费视频一区 | 免费观看又污又黄的网站 | а√天堂www在线天堂小说 | 99久久精品午夜一区二区 | 国产精品无套呻吟在线 | 欧洲vodafone精品性 | 成人动漫在线观看 | 色综合久久中文娱乐网 | 久久综合狠狠综合久久综合88 | 18精品久久久无码午夜福利 | 国产 精品 自在自线 | 色噜噜亚洲男人的天堂 | 男女下面进入的视频免费午夜 | 欧美刺激性大交 | 亚洲国产成人a精品不卡在线 | 九九久久精品国产免费看小说 | 欧美日本免费一区二区三区 | 性欧美牲交在线视频 | 永久免费观看国产裸体美女 | 久久久久久久久蜜桃 | 永久黄网站色视频免费直播 | 国内精品人妻无码久久久影院蜜桃 | 青青青爽视频在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲精品一区三区三区在线观看 | 色一情一乱一伦一区二区三欧美 | 精品aⅴ一区二区三区 | 两性色午夜视频免费播放 | 久久99国产综合精品 | 伊人久久婷婷五月综合97色 | 国产无遮挡吃胸膜奶免费看 | 亚洲色无码一区二区三区 | 水蜜桃亚洲一二三四在线 | av无码不卡在线观看免费 | 日本熟妇大屁股人妻 | 99riav国产精品视频 | 亚洲性无码av中文字幕 | 欧美精品免费观看二区 | 亚洲乱码国产乱码精品精 | 久久精品人妻少妇一区二区三区 | 丝袜 中出 制服 人妻 美腿 | 久久久久成人精品免费播放动漫 | 台湾无码一区二区 | 伦伦影院午夜理论片 | 国产精品99爱免费视频 | 亚洲熟女一区二区三区 | 两性色午夜免费视频 | 国内老熟妇对白xxxxhd | 天堂在线观看www | 2019午夜福利不卡片在线 | 久久精品中文字幕一区 | 婷婷丁香五月天综合东京热 | 精品欧洲av无码一区二区三区 | 亚洲乱亚洲乱妇50p | 人人妻人人澡人人爽人人精品 | 少妇太爽了在线观看 | 日本爽爽爽爽爽爽在线观看免 | 麻豆成人精品国产免费 | 欧美日韩视频无码一区二区三 | 国产成人午夜福利在线播放 | 99久久久无码国产精品免费 | 国产精品成人av在线观看 | 中文字幕 亚洲精品 第1页 | 亚洲日韩av一区二区三区四区 | 国产无套内射久久久国产 | av无码不卡在线观看免费 | 欧美兽交xxxx×视频 | 久久午夜夜伦鲁鲁片无码免费 | 国产精品无套呻吟在线 | 国产绳艺sm调教室论坛 | 欧美国产亚洲日韩在线二区 | 国产精品办公室沙发 | 亚洲成av人片天堂网无码】 | 久久精品国产大片免费观看 | 亚洲人成影院在线观看 | 伊人久久大香线蕉亚洲 | 牲欲强的熟妇农村老妇女 | 动漫av一区二区在线观看 | 无套内射视频囯产 | 精品无码一区二区三区的天堂 | 激情爆乳一区二区三区 | 久久精品国产99精品亚洲 | 国产人妻精品一区二区三区 | 娇妻被黑人粗大高潮白浆 | 婷婷六月久久综合丁香 | 女高中生第一次破苞av | a片在线免费观看 | 国产亚洲精品久久久ai换 | 亚无码乱人伦一区二区 | 麻豆国产人妻欲求不满谁演的 | 亚洲区小说区激情区图片区 | 漂亮人妻洗澡被公强 日日躁 | 色综合久久久久综合一本到桃花网 | 国产在线精品一区二区三区直播 | 人妻无码久久精品人妻 | 老熟女重囗味hdxx69 | 中文字幕人妻丝袜二区 | 久久精品中文字幕大胸 | 国产在线精品一区二区高清不卡 | 乱码av麻豆丝袜熟女系列 | 性史性农村dvd毛片 | 日日天日日夜日日摸 | 精品久久久久久人妻无码中文字幕 | 久久午夜无码鲁丝片秋霞 | 欧美怡红院免费全部视频 | 亚洲国产精品一区二区第一页 | 欧美自拍另类欧美综合图片区 | 精品无人区无码乱码毛片国产 | 久久久国产精品无码免费专区 | 欧洲精品码一区二区三区免费看 | 夜夜躁日日躁狠狠久久av | 在线天堂新版最新版在线8 | 免费无码av一区二区 | 99久久无码一区人妻 | 亚洲精品欧美二区三区中文字幕 | 欧美自拍另类欧美综合图片区 | 国产手机在线αⅴ片无码观看 | 思思久久99热只有频精品66 | 搡女人真爽免费视频大全 | 国产办公室秘书无码精品99 | 国产网红无码精品视频 | 日本大乳高潮视频在线观看 | 野狼第一精品社区 | 夜夜躁日日躁狠狠久久av | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 免费视频欧美无人区码 | a片在线免费观看 | 狠狠色丁香久久婷婷综合五月 | 国产亚洲美女精品久久久2020 | 久久久久se色偷偷亚洲精品av | 日本护士xxxxhd少妇 | 午夜福利试看120秒体验区 | 亚洲а∨天堂久久精品2021 | 成人无码视频免费播放 | 内射后入在线观看一区 | 国产另类ts人妖一区二区 | 国产人妻精品一区二区三区 | 久久精品人人做人人综合试看 | 久久久久亚洲精品中文字幕 | 中文字幕无码人妻少妇免费 | 99久久久无码国产精品免费 | 午夜福利一区二区三区在线观看 | 99久久人妻精品免费一区 | 人妻插b视频一区二区三区 | 亚洲中文字幕va福利 | 精品久久久无码人妻字幂 | 少妇高潮喷潮久久久影院 | 99riav国产精品视频 | 美女扒开屁股让男人桶 | 国产网红无码精品视频 | 亚洲成熟女人毛毛耸耸多 | 18精品久久久无码午夜福利 | 久久精品国产99精品亚洲 | 99精品无人区乱码1区2区3区 | 2020最新国产自产精品 | 国产免费无码一区二区视频 | 免费无码肉片在线观看 | 日日鲁鲁鲁夜夜爽爽狠狠 | 性色欲情网站iwww九文堂 | 国内揄拍国内精品人妻 | 丝袜足控一区二区三区 | 又粗又大又硬又长又爽 | 波多野结衣aⅴ在线 | 精品无码av一区二区三区 | 性欧美熟妇videofreesex | 高清无码午夜福利视频 | 色欲久久久天天天综合网精品 | 精品少妇爆乳无码av无码专区 | 精品久久久久久人妻无码中文字幕 | 亚洲精品一区二区三区四区五区 | 一二三四社区在线中文视频 | 欧美人与禽zoz0性伦交 | 亚洲人交乣女bbw | 国产激情综合五月久久 | 国产香蕉尹人视频在线 | 亚洲综合在线一区二区三区 | 欧美老人巨大xxxx做受 | 国产精品久久久久影院嫩草 | 国产舌乚八伦偷品w中 | 九九在线中文字幕无码 | 好男人社区资源 | 伊人久久大香线蕉亚洲 | 全黄性性激高免费视频 | 亚洲成av人综合在线观看 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲熟妇色xxxxx亚洲 | 欧美三级不卡在线观看 | 精品久久久久久亚洲精品 | 亚洲小说春色综合另类 | 中文精品久久久久人妻不卡 | 国产97人人超碰caoprom | 成人性做爰aaa片免费看 | 中文字幕无码免费久久9一区9 | 老司机亚洲精品影院 | 成熟人妻av无码专区 | 亚洲成在人网站无码天堂 | 免费看男女做好爽好硬视频 | 亚洲人成无码网www | 亚洲中文字幕无码中文字在线 | 熟女体下毛毛黑森林 | 国产婷婷色一区二区三区在线 | 午夜免费福利小电影 | 国产肉丝袜在线观看 | 中文字幕中文有码在线 | 国产成人综合美国十次 | 荫蒂添的好舒服视频囗交 | 女人被男人躁得好爽免费视频 | 亚洲乱码日产精品bd | 国产成人综合色在线观看网站 | 国产精品香蕉在线观看 | 国产av一区二区三区最新精品 | 国产精品无码一区二区三区不卡 | 中文字幕无码av激情不卡 | 久久综合九色综合欧美狠狠 | 久久天天躁狠狠躁夜夜免费观看 | 国产亲子乱弄免费视频 | 亚洲成a人片在线观看日本 | 亚洲一区二区三区含羞草 | 人妻互换免费中文字幕 | 少妇性俱乐部纵欲狂欢电影 | 精品国产aⅴ无码一区二区 | 无码国产激情在线观看 | 久久99精品久久久久久 | 欧美真人作爱免费视频 | 中文无码精品a∨在线观看不卡 | 六十路熟妇乱子伦 | 亚洲色成人中文字幕网站 | 思思久久99热只有频精品66 | 乱码午夜-极国产极内射 | 啦啦啦www在线观看免费视频 | 老熟女重囗味hdxx69 | 乱人伦人妻中文字幕无码 | 欧美国产日韩久久mv | 毛片内射-百度 | 无码一区二区三区在线 | 少妇无套内谢久久久久 | 色五月五月丁香亚洲综合网 | 久久精品国产一区二区三区 | 亚洲日韩一区二区 | 久久综合九色综合欧美狠狠 | 久久99久久99精品中文字幕 | 两性色午夜免费视频 | 欧美日韩久久久精品a片 | 久久久久久国产精品无码下载 | 香港三级日本三级妇三级 | 麻豆果冻传媒2021精品传媒一区下载 | 欧美兽交xxxx×视频 | 亚洲人成影院在线无码按摩店 | 成人欧美一区二区三区黑人 | av人摸人人人澡人人超碰下载 | 久久午夜无码鲁丝片秋霞 | 久青草影院在线观看国产 | 亚洲中文字幕无码中文字在线 | 国产偷抇久久精品a片69 | 少妇性荡欲午夜性开放视频剧场 | 妺妺窝人体色www婷婷 | 欧美freesex黑人又粗又大 | 日本一卡2卡3卡四卡精品网站 | 免费中文字幕日韩欧美 | 欧洲熟妇色 欧美 | 亚洲理论电影在线观看 | 少妇的肉体aa片免费 | 午夜性刺激在线视频免费 | 午夜熟女插插xx免费视频 | 久久久中文久久久无码 | 丰满少妇弄高潮了www | 久久久久99精品成人片 | 欧美 日韩 亚洲 在线 | 久精品国产欧美亚洲色aⅴ大片 | 思思久久99热只有频精品66 | 欧美阿v高清资源不卡在线播放 | 一本久久a久久精品亚洲 | 亚洲の无码国产の无码影院 | 国产成人精品必看 | 久久99精品国产麻豆 | 麻豆国产97在线 | 欧洲 | 国产超级va在线观看视频 | 国产亚洲精品精品国产亚洲综合 | 内射欧美老妇wbb | 亚洲熟熟妇xxxx | 东京热男人av天堂 | 国产超级va在线观看视频 | 国产香蕉97碰碰久久人人 | 久热国产vs视频在线观看 | 国产内射老熟女aaaa | 久久久久99精品成人片 | 日韩精品乱码av一区二区 | 人人妻人人藻人人爽欧美一区 | 无码精品人妻一区二区三区av | 亚洲无人区一区二区三区 | 久久精品人人做人人综合 | 国产精品第一区揄拍无码 | 久久久中文久久久无码 | 一本久久a久久精品亚洲 | 色婷婷综合中文久久一本 | 无码一区二区三区在线 | 学生妹亚洲一区二区 | 日韩av无码中文无码电影 | 国产手机在线αⅴ片无码观看 | 人妻少妇精品无码专区动漫 | 精品久久久久香蕉网 | 久久综合香蕉国产蜜臀av | 无码人妻出轨黑人中文字幕 | 国产综合久久久久鬼色 | 中文字幕无码免费久久9一区9 | 午夜性刺激在线视频免费 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 2020最新国产自产精品 | 亚洲欧美日韩成人高清在线一区 | 成年美女黄网站色大免费视频 | 国产国语老龄妇女a片 | 久久国内精品自在自线 | 日本丰满熟妇videos | 曰韩少妇内射免费播放 | 伊在人天堂亚洲香蕉精品区 | 亚洲色大成网站www | 亚洲欧美日韩国产精品一区二区 | 国产精品人人爽人人做我的可爱 | 国语精品一区二区三区 | 国产亚洲视频中文字幕97精品 | 成 人 网 站国产免费观看 | 亚洲综合在线一区二区三区 | 国产精品美女久久久网av | 少妇无码一区二区二三区 | 女人色极品影院 | 天堂在线观看www | 国产精品久久久久无码av色戒 | 麻豆国产97在线 | 欧洲 | 鲁大师影院在线观看 | 亚洲成a人片在线观看无码3d | 色综合天天综合狠狠爱 | 又大又硬又黄的免费视频 | 国产精品视频免费播放 | 国产精品成人av在线观看 | 强伦人妻一区二区三区视频18 | 午夜无码人妻av大片色欲 | 亚洲综合另类小说色区 | 免费国产成人高清在线观看网站 | 特大黑人娇小亚洲女 | 国产人妻人伦精品 | 天堂久久天堂av色综合 | 国产精品香蕉在线观看 | 一区二区传媒有限公司 | 欧美高清在线精品一区 | 精品少妇爆乳无码av无码专区 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲欧洲无卡二区视頻 | 亚洲国产精品成人久久蜜臀 | 久热国产vs视频在线观看 | 国语自产偷拍精品视频偷 | 99久久久无码国产aaa精品 | 久久久精品欧美一区二区免费 | 人妻少妇精品视频专区 | 人人妻人人澡人人爽欧美一区 | 中文字幕av无码一区二区三区电影 | 丰满人妻精品国产99aⅴ | 激情综合激情五月俺也去 | 偷窥村妇洗澡毛毛多 | 国产精品国产自线拍免费软件 | 图片区 小说区 区 亚洲五月 | 日韩 欧美 动漫 国产 制服 | 欧美黑人巨大xxxxx | 欧美性生交xxxxx久久久 | 国产熟女一区二区三区四区五区 | 男女下面进入的视频免费午夜 | 少妇人妻偷人精品无码视频 | 国产亚av手机在线观看 | 亚洲小说图区综合在线 | 国产在线aaa片一区二区99 | 亚洲综合伊人久久大杳蕉 | 国产精品久久久久久久9999 | 久久国内精品自在自线 | 好男人社区资源 | 中文字幕无码人妻少妇免费 | 极品尤物被啪到呻吟喷水 | 捆绑白丝粉色jk震动捧喷白浆 | 高清无码午夜福利视频 | 樱花草在线播放免费中文 | 亚洲日本一区二区三区在线 | 欧美第一黄网免费网站 | 精品人妻av区 | 亚洲人成影院在线无码按摩店 | 99久久99久久免费精品蜜桃 | 中文字幕+乱码+中文字幕一区 | 日日天干夜夜狠狠爱 | 人妻天天爽夜夜爽一区二区 | 大屁股大乳丰满人妻 | 久久人人爽人人爽人人片ⅴ | 国产电影无码午夜在线播放 | 中文字幕无线码免费人妻 | 亚洲自偷精品视频自拍 | 精品人人妻人人澡人人爽人人 | 国产精品.xx视频.xxtv | 亚洲色大成网站www | 亚洲综合伊人久久大杳蕉 | 国产av一区二区三区最新精品 | 内射后入在线观看一区 | 一本精品99久久精品77 | 亚洲精品久久久久久一区二区 | 国产成人综合色在线观看网站 | 成人综合网亚洲伊人 | 性做久久久久久久免费看 | 丰满肥臀大屁股熟妇激情视频 | 人妻aⅴ无码一区二区三区 | 久久久久久av无码免费看大片 | 秋霞成人午夜鲁丝一区二区三区 | 成人精品视频一区二区 | 无码人妻精品一区二区三区不卡 | 一本久道久久综合婷婷五月 | 97夜夜澡人人双人人人喊 | 无码国产乱人伦偷精品视频 | 亚洲精品久久久久久久久久久 | 亲嘴扒胸摸屁股激烈网站 | 疯狂三人交性欧美 | 少妇无套内谢久久久久 | 国产午夜视频在线观看 | 蜜臀av在线播放 久久综合激激的五月天 | 人妻少妇精品视频专区 | 一本久久a久久精品亚洲 | 色婷婷av一区二区三区之红樱桃 | 窝窝午夜理论片影院 | 两性色午夜视频免费播放 | 兔费看少妇性l交大片免费 | 97久久国产亚洲精品超碰热 | 国产真实乱对白精彩久久 | 永久免费精品精品永久-夜色 | 粗大的内捧猛烈进出视频 | 久久五月精品中文字幕 | 国产麻豆精品精东影业av网站 | 亚洲色偷偷偷综合网 | 国产午夜无码视频在线观看 | 国产av剧情md精品麻豆 | 精品国产乱码久久久久乱码 | 蜜桃av抽搐高潮一区二区 | 久久精品99久久香蕉国产色戒 | 国产一区二区三区四区五区加勒比 | 国产精品办公室沙发 | 国产精品久久精品三级 | 免费视频欧美无人区码 | 久久天天躁狠狠躁夜夜免费观看 | 天堂亚洲免费视频 | 欧美日韩在线亚洲综合国产人 | 高潮毛片无遮挡高清免费 | 亚无码乱人伦一区二区 | 大肉大捧一进一出视频出来呀 | 2020久久香蕉国产线看观看 | 最近中文2019字幕第二页 | 四虎4hu永久免费 | 无套内射视频囯产 | 人妻插b视频一区二区三区 | 久久无码人妻影院 | 成 人 网 站国产免费观看 | 在线a亚洲视频播放在线观看 | 人人妻人人澡人人爽人人精品 | 中文字幕人妻丝袜二区 | 日韩精品一区二区av在线 | 国产成人精品一区二区在线小狼 | 国内综合精品午夜久久资源 | 国产在线一区二区三区四区五区 | 久久久精品人妻久久影视 | 老熟妇乱子伦牲交视频 | 曰本女人与公拘交酡免费视频 | 亚洲中文字幕无码中字 | 俺去俺来也在线www色官网 | 亚洲 a v无 码免 费 成 人 a v | 亚洲欧美日韩国产精品一区二区 | 国产精品永久免费视频 | 久久久久亚洲精品中文字幕 | 亚洲中文字幕无码一久久区 | 自拍偷自拍亚洲精品被多人伦好爽 | 无码人妻久久一区二区三区不卡 | 国精品人妻无码一区二区三区蜜柚 | 久久人人97超碰a片精品 | 国产办公室秘书无码精品99 | 国产午夜无码视频在线观看 | 欧美性猛交xxxx富婆 | 欧洲极品少妇 | 国产精品久久久一区二区三区 | 伊人久久大香线蕉av一区二区 | 欧洲vodafone精品性 | 国产在线无码精品电影网 | 激情综合激情五月俺也去 | 亚洲色欲色欲欲www在线 | 日产精品99久久久久久 | 亚洲乱码中文字幕在线 | 日本va欧美va欧美va精品 | 国产精品多人p群无码 | 熟女少妇在线视频播放 | 少女韩国电视剧在线观看完整 | 国内揄拍国内精品少妇国语 | 欧美人与禽zoz0性伦交 | 99在线 | 亚洲 | 婷婷五月综合缴情在线视频 | 中文字幕人妻无码一夲道 | 亚洲自偷自偷在线制服 | 久久99热只有频精品8 | 亚洲精品午夜无码电影网 | 中文无码伦av中文字幕 | 国产特级毛片aaaaaa高潮流水 | 大肉大捧一进一出视频出来呀 | 精品国偷自产在线视频 | 午夜精品一区二区三区在线观看 | 免费无码的av片在线观看 | 大乳丰满人妻中文字幕日本 | 国产成人人人97超碰超爽8 | 香蕉久久久久久av成人 | 中文字幕+乱码+中文字幕一区 | 久久久精品人妻久久影视 | 久久国产精品萌白酱免费 | 成人一区二区免费视频 | 婷婷五月综合缴情在线视频 | 永久免费精品精品永久-夜色 | 岛国片人妻三上悠亚 | 亚洲一区二区观看播放 | 伊人久久大香线蕉av一区二区 | 永久免费观看国产裸体美女 | 国产精品福利视频导航 | 亚洲一区二区三区播放 | 欧美 亚洲 国产 另类 | 久久久久久久久蜜桃 | 亚洲欧美综合区丁香五月小说 | 亚洲精品一区二区三区在线观看 | 久久精品国产99精品亚洲 | 国产卡一卡二卡三 | v一区无码内射国产 | 亚洲精品国产精品乱码不卡 | 国产精品第一区揄拍无码 | 97精品人妻一区二区三区香蕉 | 99久久人妻精品免费二区 | 东京热男人av天堂 | 国产网红无码精品视频 | 小sao货水好多真紧h无码视频 | 综合人妻久久一区二区精品 | 最新国产麻豆aⅴ精品无码 | 人妻中文无码久热丝袜 | 88国产精品欧美一区二区三区 | 黑人巨大精品欧美黑寡妇 | 午夜福利试看120秒体验区 | 日本精品少妇一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 欧美人与善在线com | 欧美35页视频在线观看 | 精品久久久无码中文字幕 | 国产97在线 | 亚洲 | 无码人妻出轨黑人中文字幕 | 亚洲人成网站在线播放942 | 中文字幕日产无线码一区 | 图片小说视频一区二区 | 久久精品国产99久久6动漫 | 国产特级毛片aaaaaa高潮流水 | 国产精品多人p群无码 | 精品国产精品久久一区免费式 | 欧美精品无码一区二区三区 | 一区二区三区乱码在线 | 欧洲 | 国产在热线精品视频 | 精品夜夜澡人妻无码av蜜桃 | 无码国内精品人妻少妇 | 亚洲啪av永久无码精品放毛片 | 少妇一晚三次一区二区三区 | 久久国产劲爆∧v内射 | 熟女体下毛毛黑森林 | 久久久精品人妻久久影视 | 国产精品久久久久久无码 | 精品人妻人人做人人爽夜夜爽 | 亚洲中文字幕无码中字 | 一个人看的www免费视频在线观看 | 日韩精品成人一区二区三区 | 人妻天天爽夜夜爽一区二区 | 国产免费无码一区二区视频 | 国产成人久久精品流白浆 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲色欲色欲天天天www | 丰满妇女强制高潮18xxxx | 波多野42部无码喷潮在线 | 熟女俱乐部五十路六十路av | 国产亚洲tv在线观看 | 人妻体内射精一区二区三四 | 自拍偷自拍亚洲精品被多人伦好爽 | 樱花草在线播放免费中文 | 天下第一社区视频www日本 | 亚洲精品鲁一鲁一区二区三区 | 中国女人内谢69xxxx | 中文字幕无码免费久久99 | 日日碰狠狠躁久久躁蜜桃 | 极品尤物被啪到呻吟喷水 | 久久综合九色综合97网 | 亚洲精品国产第一综合99久久 | 亚洲熟妇色xxxxx欧美老妇y | 装睡被陌生人摸出水好爽 | 玩弄人妻少妇500系列视频 | 色 综合 欧美 亚洲 国产 | 欧美一区二区三区视频在线观看 | 久久精品人妻少妇一区二区三区 | 欧美怡红院免费全部视频 | 俺去俺来也www色官网 | 国产亚洲精品久久久久久久久动漫 | 国产人妻大战黑人第1集 | 久久人人爽人人爽人人片av高清 | 欧美兽交xxxx×视频 | 成人无码影片精品久久久 | 午夜熟女插插xx免费视频 | 国产精品二区一区二区aⅴ污介绍 | www国产精品内射老师 | 一区二区三区乱码在线 | 欧洲 | 欧美老妇交乱视频在线观看 | 小鲜肉自慰网站xnxx | 欧美国产日韩久久mv | 丰满少妇女裸体bbw | 性欧美牲交xxxxx视频 | 亚洲熟悉妇女xxx妇女av | 国产激情无码一区二区 | 亚洲日本va中文字幕 | 成人性做爰aaa片免费看 | 国产艳妇av在线观看果冻传媒 | 国产亚洲日韩欧美另类第八页 | 牲欲强的熟妇农村老妇女 | 国产成人无码区免费内射一片色欲 | 最近免费中文字幕中文高清百度 | 亚洲精品一区二区三区在线观看 | 久青草影院在线观看国产 | 国产精品人人妻人人爽 | 色狠狠av一区二区三区 | 熟妇女人妻丰满少妇中文字幕 | 99精品国产综合久久久久五月天 | 免费无码的av片在线观看 | 国产黄在线观看免费观看不卡 | 国产亚洲人成在线播放 | 国产三级久久久精品麻豆三级 | 伊在人天堂亚洲香蕉精品区 | 小sao货水好多真紧h无码视频 | 国产精品久久久久久久影院 | 成人影院yy111111在线观看 | 清纯唯美经典一区二区 | 中国女人内谢69xxxxxa片 | 免费人成在线视频无码 | 亚洲小说图区综合在线 | 亚洲精品一区二区三区大桥未久 | 激情综合激情五月俺也去 | 亚洲色欲久久久综合网东京热 | 日本丰满熟妇videos | 一个人看的视频www在线 | 99久久久无码国产aaa精品 | 爆乳一区二区三区无码 | 狠狠综合久久久久综合网 | 少妇无码av无码专区在线观看 | 国产偷抇久久精品a片69 | 中文字幕av日韩精品一区二区 | 老太婆性杂交欧美肥老太 | 99久久婷婷国产综合精品青草免费 | 性做久久久久久久免费看 | 久久久av男人的天堂 | 久久亚洲国产成人精品性色 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 一个人看的www免费视频在线观看 | aⅴ在线视频男人的天堂 | 东京热无码av男人的天堂 | 久精品国产欧美亚洲色aⅴ大片 | 纯爱无遮挡h肉动漫在线播放 | 少妇久久久久久人妻无码 | 97精品国产97久久久久久免费 | 精品少妇爆乳无码av无码专区 | 久久这里只有精品视频9 | 亚洲 激情 小说 另类 欧美 | 国产一精品一av一免费 | 亚洲国产精品久久久久久 | 我要看www免费看插插视频 | 精品国偷自产在线 | 乱人伦人妻中文字幕无码 | 亚洲日本在线电影 | 狂野欧美激情性xxxx | 狠狠色色综合网站 | 人人超人人超碰超国产 | 中文无码成人免费视频在线观看 | 男人的天堂av网站 | 少妇无码av无码专区在线观看 | 午夜成人1000部免费视频 | 久久久久久国产精品无码下载 | 日韩亚洲欧美精品综合 | 无套内谢的新婚少妇国语播放 | 初尝人妻少妇中文字幕 | 麻豆成人精品国产免费 | 中文字幕中文有码在线 | 国产美女极度色诱视频www | 欧美性猛交内射兽交老熟妇 | 久久亚洲a片com人成 | 人人妻人人澡人人爽欧美精品 | 88国产精品欧美一区二区三区 | 鲁鲁鲁爽爽爽在线视频观看 | 丰满岳乱妇在线观看中字无码 | 国产精品18久久久久久麻辣 | 国产欧美熟妇另类久久久 | 亚洲娇小与黑人巨大交 | 丰满岳乱妇在线观看中字无码 | 97久久精品无码一区二区 | 人人妻人人藻人人爽欧美一区 | 性生交大片免费看l | 动漫av一区二区在线观看 | 国产深夜福利视频在线 | 午夜精品久久久久久久 | 蜜桃视频韩日免费播放 | 97夜夜澡人人双人人人喊 | 99精品无人区乱码1区2区3区 | 黑人大群体交免费视频 | 欧美自拍另类欧美综合图片区 | 好爽又高潮了毛片免费下载 | 青春草在线视频免费观看 | 中文字幕中文有码在线 | 免费看男女做好爽好硬视频 | 中文字幕无线码 | 国产精品资源一区二区 | 又大又硬又爽免费视频 | 男人扒开女人内裤强吻桶进去 | 亚洲综合另类小说色区 | 兔费看少妇性l交大片免费 | 无码免费一区二区三区 | 日韩精品无码免费一区二区三区 | 国产在线aaa片一区二区99 | 99久久婷婷国产综合精品青草免费 | a在线观看免费网站大全 | 性啪啪chinese东北女人 | 强辱丰满人妻hd中文字幕 | 捆绑白丝粉色jk震动捧喷白浆 | 国产精品久久久 | 少妇高潮一区二区三区99 | 久久人人97超碰a片精品 | 国产深夜福利视频在线 | 中文字幕乱码人妻二区三区 | 国产精品久免费的黄网站 | 欧美性黑人极品hd | 最近的中文字幕在线看视频 | 性色欲情网站iwww九文堂 | 丰满人妻精品国产99aⅴ | 东京热男人av天堂 | 国产成人亚洲综合无码 | 成熟人妻av无码专区 | 三级4级全黄60分钟 | 亚洲男女内射在线播放 | 99久久婷婷国产综合精品青草免费 | 国产午夜无码精品免费看 | 国内少妇偷人精品视频 | 激情内射日本一区二区三区 | 国产无遮挡又黄又爽免费视频 | 亚无码乱人伦一区二区 | 精品国产av色一区二区深夜久久 | 色五月丁香五月综合五月 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲精品www久久久 | 欧洲欧美人成视频在线 | 欧美一区二区三区 | 国产黄在线观看免费观看不卡 | 国产亚洲精品久久久久久久久动漫 | 久久zyz资源站无码中文动漫 | 久久久亚洲欧洲日产国码αv | 一区二区三区乱码在线 | 欧洲 | 久久久婷婷五月亚洲97号色 | 人人妻人人澡人人爽欧美一区九九 | 国产人成高清在线视频99最全资源 | 亚洲日韩中文字幕在线播放 | 永久免费精品精品永久-夜色 | 精品国精品国产自在久国产87 | 18黄暴禁片在线观看 | 丝袜人妻一区二区三区 | 午夜精品久久久内射近拍高清 | 亚洲国产精品成人久久蜜臀 | 中文字幕av无码一区二区三区电影 | 色妞www精品免费视频 | 亚洲经典千人经典日产 | 成人无码视频免费播放 | 亚洲中文无码av永久不收费 | 亚洲午夜福利在线观看 | 日本护士毛茸茸高潮 | 亚洲欧美精品aaaaaa片 | 最近的中文字幕在线看视频 | 亚洲精品午夜国产va久久成人 | 综合人妻久久一区二区精品 | 久久久久免费精品国产 | 激情人妻另类人妻伦 | 性色欲情网站iwww九文堂 | 丰腴饱满的极品熟妇 | 亚洲欧洲无卡二区视頻 | 97人妻精品一区二区三区 | 欧美日韩亚洲国产精品 | 婷婷五月综合缴情在线视频 | 鲁大师影院在线观看 | 国产精品资源一区二区 | 国产成人无码av在线影院 | 亚洲日本一区二区三区在线 | 综合网日日天干夜夜久久 | 午夜肉伦伦影院 | 亚洲一区二区三区在线观看网站 | 国产精品-区区久久久狼 | 国产成人精品久久亚洲高清不卡 | 一个人看的www免费视频在线观看 | 午夜精品久久久久久久 | 国产免费久久精品国产传媒 | 露脸叫床粗话东北少妇 | 麻豆蜜桃av蜜臀av色欲av | 妺妺窝人体色www婷婷 | 内射巨臀欧美在线视频 | 国产又爽又黄又刺激的视频 | 2020久久超碰国产精品最新 | 超碰97人人做人人爱少妇 | 六月丁香婷婷色狠狠久久 | 亚洲男女内射在线播放 | 亚洲爆乳精品无码一区二区三区 | 日韩av无码一区二区三区 | 国产舌乚八伦偷品w中 | 国产欧美熟妇另类久久久 | 国产香蕉尹人视频在线 | 亚洲国产欧美在线成人 | 麻豆精品国产精华精华液好用吗 | 国产网红无码精品视频 | 老熟妇仑乱视频一区二区 | 亚洲精品综合五月久久小说 | 婷婷色婷婷开心五月四房播播 | 久久久中文字幕日本无吗 | 99精品视频在线观看免费 | 日韩av无码一区二区三区不卡 | 免费国产成人高清在线观看网站 | 一本久道久久综合狠狠爱 | 人妻天天爽夜夜爽一区二区 | 日韩在线不卡免费视频一区 | 久久精品国产一区二区三区 | 在教室伦流澡到高潮hnp视频 | 亚洲国产成人a精品不卡在线 | 一区二区三区乱码在线 | 欧洲 | av在线亚洲欧洲日产一区二区 | 成 人 网 站国产免费观看 | 2020久久超碰国产精品最新 | 亚洲中文字幕av在天堂 | 国产午夜手机精彩视频 | 国产精品久久精品三级 | 中文字幕无码免费久久9一区9 | √天堂中文官网8在线 | www国产亚洲精品久久久日本 | 亚洲热妇无码av在线播放 | 18禁黄网站男男禁片免费观看 | 国产午夜亚洲精品不卡 | 色噜噜亚洲男人的天堂 | 中文字幕无码免费久久9一区9 | 亚洲成av人片在线观看无码不卡 | 天堂久久天堂av色综合 | 国产精品亚洲一区二区三区喷水 | 内射白嫩少妇超碰 | 国产人妻人伦精品1国产丝袜 | 一本加勒比波多野结衣 | 强奷人妻日本中文字幕 | 亚洲人成网站免费播放 | 日本丰满护士爆乳xxxx | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲精品欧美二区三区中文字幕 | 狠狠cao日日穞夜夜穞av | 一个人看的www免费视频在线观看 | 人人妻人人藻人人爽欧美一区 | 亚洲国产高清在线观看视频 | 日韩 欧美 动漫 国产 制服 | 麻花豆传媒剧国产免费mv在线 | 欧美人与善在线com | 性欧美熟妇videofreesex | 国产疯狂伦交大片 | 一个人看的www免费视频在线观看 | 久久国产自偷自偷免费一区调 | 国产三级久久久精品麻豆三级 | 中文字幕无码视频专区 | 九月婷婷人人澡人人添人人爽 | 欧美 亚洲 国产 另类 | 九九久久精品国产免费看小说 | 国产美女极度色诱视频www | 人人爽人人澡人人人妻 | 亚洲日韩av一区二区三区四区 | 免费看少妇作爱视频 | 中文毛片无遮挡高清免费 | 亚洲人成网站色7799 | 久久99精品久久久久久 | 亚洲欧美国产精品专区久久 | 在线观看欧美一区二区三区 | 乱人伦中文视频在线观看 | 伊人久久大香线焦av综合影院 | 国产成人综合在线女婷五月99播放 | 国产成人综合美国十次 | 99久久精品国产一区二区蜜芽 | 人妻少妇被猛烈进入中文字幕 | 亚洲va中文字幕无码久久不卡 | 国产明星裸体无码xxxx视频 | 久久综合给久久狠狠97色 | 人人爽人人爽人人片av亚洲 | 在线观看国产一区二区三区 | 人妻无码αv中文字幕久久琪琪布 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产精华av午夜在线观看 | 人妻插b视频一区二区三区 | yw尤物av无码国产在线观看 | 日日碰狠狠躁久久躁蜜桃 | 久久午夜无码鲁丝片 | 国产人妻精品一区二区三区不卡 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲第一网站男人都懂 | 在线a亚洲视频播放在线观看 | 国产精品内射视频免费 | 精品国产一区二区三区av 性色 | 精品无码成人片一区二区98 | 国产偷自视频区视频 | 成人免费视频在线观看 | 97精品国产97久久久久久免费 | 婷婷五月综合激情中文字幕 | 国产成人精品一区二区在线小狼 | 丝袜 中出 制服 人妻 美腿 | 国产精品福利视频导航 | 丝袜人妻一区二区三区 | 精品无码国产一区二区三区av | 欧美黑人乱大交 | 最新版天堂资源中文官网 | 国产亚洲美女精品久久久2020 | 永久免费观看美女裸体的网站 | 国产精品永久免费视频 | 国产精品99久久精品爆乳 | 性做久久久久久久免费看 | 久久久中文字幕日本无吗 | 国产精品国产自线拍免费软件 | 日本大香伊一区二区三区 | 久久久精品国产sm最大网站 | 精品人人妻人人澡人人爽人人 | 国产精品免费大片 | 精品久久久无码人妻字幂 | 无码乱肉视频免费大全合集 | 久久国产36精品色熟妇 | 久久久久亚洲精品中文字幕 | 久久精品国产99精品亚洲 | 蜜臀av无码人妻精品 | 久久视频在线观看精品 | 国产两女互慰高潮视频在线观看 | 在线 国产 欧美 亚洲 天堂 | 好屌草这里只有精品 | 波多野结衣av一区二区全免费观看 | 精品水蜜桃久久久久久久 | 国产香蕉尹人综合在线观看 | 国产精品igao视频网 | 国产乱码精品一品二品 | 日韩亚洲欧美中文高清在线 | 俺去俺来也在线www色官网 | 性开放的女人aaa片 | 好屌草这里只有精品 | 亚洲国产精品成人久久蜜臀 | 亚洲无人区午夜福利码高清完整版 | 国产精品久久久久无码av色戒 | 黑人粗大猛烈进出高潮视频 | 扒开双腿疯狂进出爽爽爽视频 | 日本成熟视频免费视频 | 国产内射爽爽大片视频社区在线 | 国产办公室秘书无码精品99 | 国产成人无码午夜视频在线观看 | 国产综合色产在线精品 | 东京无码熟妇人妻av在线网址 | 国产成人一区二区三区别 | 午夜不卡av免费 一本久久a久久精品vr综合 | 成人欧美一区二区三区 | 亚洲日韩av一区二区三区四区 | 大地资源网第二页免费观看 | 亚洲成av人综合在线观看 | 亚洲无人区一区二区三区 | 女人高潮内射99精品 | 日本精品人妻无码免费大全 | 日韩无套无码精品 | 国产另类ts人妖一区二区 | 精品久久久久香蕉网 | 国产手机在线αⅴ片无码观看 | 综合网日日天干夜夜久久 | 精品夜夜澡人妻无码av蜜桃 | 亚洲中文字幕久久无码 | 亚洲爆乳大丰满无码专区 | 亚洲欧美色中文字幕在线 | 欧美老妇交乱视频在线观看 | 漂亮人妻洗澡被公强 日日躁 | 无码av最新清无码专区吞精 | 亚洲色大成网站www | 无码av中文字幕免费放 | 无码人中文字幕 | 亚洲人成影院在线无码按摩店 | 内射欧美老妇wbb | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 成人免费无码大片a毛片 | 在线看片无码永久免费视频 | 99精品国产综合久久久久五月天 | 中文字幕精品av一区二区五区 | 天天躁日日躁狠狠躁免费麻豆 | 欧美老人巨大xxxx做受 | 性开放的女人aaa片 | 亚洲精品成a人在线观看 | 国内丰满熟女出轨videos | 激情内射日本一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 久久久精品成人免费观看 | 一本大道久久东京热无码av | 天堂亚洲2017在线观看 | 国产成人无码午夜视频在线观看 | 精品人妻人人做人人爽夜夜爽 | 免费观看的无遮挡av | 亚洲一区二区三区四区 | 亚洲 日韩 欧美 成人 在线观看 | 一本加勒比波多野结衣 | 天堂久久天堂av色综合 | 久久99精品久久久久婷婷 | 波多野结衣av一区二区全免费观看 | 人妻尝试又大又粗久久 | 午夜福利电影 | 一本色道久久综合亚洲精品不卡 | 97夜夜澡人人双人人人喊 | 熟妇人妻中文av无码 | 国产 精品 自在自线 | 三上悠亚人妻中文字幕在线 | 思思久久99热只有频精品66 | 欧洲熟妇精品视频 | 日本熟妇乱子伦xxxx | 亚洲自偷自偷在线制服 | 噜噜噜亚洲色成人网站 | 全球成人中文在线 | 久久午夜夜伦鲁鲁片无码免费 | 一区二区三区乱码在线 | 欧洲 | 久久久久成人片免费观看蜜芽 | 人人妻人人澡人人爽精品欧美 | 婷婷综合久久中文字幕蜜桃三电影 | 综合激情五月综合激情五月激情1 | 中国女人内谢69xxxx | 丰满人妻翻云覆雨呻吟视频 | 撕开奶罩揉吮奶头视频 | 在线精品国产一区二区三区 | 一区二区传媒有限公司 | 噜噜噜亚洲色成人网站 | 国产精品怡红院永久免费 | 久久久久久a亚洲欧洲av冫 | 少妇愉情理伦片bd | 亲嘴扒胸摸屁股激烈网站 | 超碰97人人做人人爱少妇 | 精品欧洲av无码一区二区三区 | 欧洲精品码一区二区三区免费看 | 永久免费观看美女裸体的网站 | 亚洲中文字幕乱码av波多ji | 精品国产乱码久久久久乱码 | 无码帝国www无码专区色综合 | 久久综合激激的五月天 | 国产精品亚洲五月天高清 | 中文字幕精品av一区二区五区 | 性做久久久久久久久 | 久久久中文字幕日本无吗 | 亲嘴扒胸摸屁股激烈网站 | 免费看男女做好爽好硬视频 | 人妻夜夜爽天天爽三区 | 精品欧美一区二区三区久久久 | 亚洲精品国产a久久久久久 | 亚洲va中文字幕无码久久不卡 | 国产无套粉嫩白浆在线 | 曰韩无码二三区中文字幕 | a片免费视频在线观看 | 日韩亚洲欧美中文高清在线 | 欧美性猛交内射兽交老熟妇 | 日本又色又爽又黄的a片18禁 | 狂野欧美性猛交免费视频 | 熟妇激情内射com | 国产av剧情md精品麻豆 | 国产口爆吞精在线视频 | 丝袜美腿亚洲一区二区 | 俺去俺来也在线www色官网 | 国产亚洲精品久久久久久大师 | 欧美成人高清在线播放 | 偷窥村妇洗澡毛毛多 | 日韩人妻无码一区二区三区久久99 | 撕开奶罩揉吮奶头视频 | 久久综合九色综合欧美狠狠 | 亚洲色在线无码国产精品不卡 | 欧美野外疯狂做受xxxx高潮 | 麻豆果冻传媒2021精品传媒一区下载 | 伊人久久大香线蕉av一区二区 | 午夜理论片yy44880影院 | 国产亚洲欧美日韩亚洲中文色 | 中文字幕色婷婷在线视频 | 国产成人精品视频ⅴa片软件竹菊 | 丰满妇女强制高潮18xxxx | 国产情侣作爱视频免费观看 | 精品国产福利一区二区 | 亚洲精品中文字幕久久久久 | 国产真实夫妇视频 | 波多野结衣av一区二区全免费观看 | 婷婷五月综合激情中文字幕 | 久久精品国产日本波多野结衣 | 自拍偷自拍亚洲精品被多人伦好爽 | 成人影院yy111111在线观看 | 粗大的内捧猛烈进出视频 | 久久精品一区二区三区四区 | 人人妻人人澡人人爽精品欧美 | 国产精品美女久久久网av | 少妇高潮喷潮久久久影院 | 精品人妻人人做人人爽 | 欧美日韩精品 | 成 人 网 站国产免费观看 | 亚洲狠狠色丁香婷婷综合 | 国产高潮视频在线观看 | 亚洲色在线无码国产精品不卡 | 扒开双腿疯狂进出爽爽爽视频 | 成人免费视频视频在线观看 免费 | 少妇无码av无码专区在线观看 | 日日摸天天摸爽爽狠狠97 | 亚洲精品欧美二区三区中文字幕 | 丰满少妇女裸体bbw | 狠狠色噜噜狠狠狠狠7777米奇 | 久久视频在线观看精品 | 精品夜夜澡人妻无码av蜜桃 | 人妻天天爽夜夜爽一区二区 | 夜夜高潮次次欢爽av女 | 成 人 免费观看网站 | 亚洲日本va午夜在线电影 | 国产卡一卡二卡三 | 2019午夜福利不卡片在线 | 色综合久久久久综合一本到桃花网 | 色欲av亚洲一区无码少妇 | aa片在线观看视频在线播放 | 日韩欧美中文字幕公布 | 天天爽夜夜爽夜夜爽 | 曰韩少妇内射免费播放 | 97久久国产亚洲精品超碰热 | 一二三四社区在线中文视频 | 熟妇人妻无乱码中文字幕 | 国产精品久久久久9999小说 | 夜夜躁日日躁狠狠久久av | 色五月五月丁香亚洲综合网 | 国内丰满熟女出轨videos | 亚洲国产欧美国产综合一区 | 免费无码的av片在线观看 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国精产品一区二区三区 | 乱码av麻豆丝袜熟女系列 | 国产亚洲精品久久久久久久 | 人人澡人人妻人人爽人人蜜桃 | 亚洲日韩一区二区 | 蜜桃视频插满18在线观看 | 老熟妇仑乱视频一区二区 | 国产精品鲁鲁鲁 | 国产成人无码av一区二区 | 人妻少妇精品久久 | 国内精品一区二区三区不卡 | 免费观看黄网站 | 黑人大群体交免费视频 | 无码纯肉视频在线观看 | 国产深夜福利视频在线 | 日韩欧美群交p片內射中文 | 中文无码成人免费视频在线观看 | 四十如虎的丰满熟妇啪啪 | √天堂资源地址中文在线 | 国产午夜亚洲精品不卡 | 国产欧美熟妇另类久久久 | 亚洲国产av精品一区二区蜜芽 | 日本一区二区三区免费高清 | 免费人成在线视频无码 | 亚洲热妇无码av在线播放 | 免费男性肉肉影院 | 欧美国产日韩亚洲中文 | 午夜福利试看120秒体验区 | 久久久国产精品无码免费专区 | 无码av中文字幕免费放 | 撕开奶罩揉吮奶头视频 | 亚洲无人区一区二区三区 | 亚洲国产成人av在线观看 | 久久国产精品偷任你爽任你 | 麻豆国产丝袜白领秘书在线观看 | 国产精品内射视频免费 | 国产精品久久久久久无码 | 亚洲国产午夜精品理论片 | 熟妇女人妻丰满少妇中文字幕 | 亚洲色欲久久久综合网东京热 | 精品国产一区二区三区四区在线看 | 国产绳艺sm调教室论坛 |