精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文了解EPaxos核心協議流程

開發
本文旨在通俗易懂地介紹EPaxos算法,由淺入深、一步一步的讓只有Paxos或Raft等分布式一致性算法基礎的同學都能輕易看懂EPaxos,真正將晦澀難懂的EPaxos,變的平易近人,帶入千萬家。

 [[410758]]

引言
EPaxos(Egalitarian Paxos)作為工業界備受矚目的下一代分布式一致性算法,具有廣闊的應用前景。但縱觀業內,至今仍未出現一個EPaxos的工程實現,甚至都沒看到一篇能把EPaxos講得通俗一點的文章。EPaxos算法理論雖好,但由于其實在晦澀難懂,工程實現上也有很多挑戰,實際應用落地尚未成熟。

本文旨在通俗易懂地介紹EPaxos算法,由淺入深、一步一步的讓只有Paxos或Raft等分布式一致性算法基礎的同學都能輕易看懂EPaxos,真正將晦澀難懂的EPaxos,變的平易近人,帶入千萬家。

在《一文了解分布式一致性算法EPaxos》中,從Paxos的問題引出EPaxos,介紹了EPaxos的基本概念與直觀理解,相信讀者已經對EPaxos有了整體的印象。

本文將從Paxos與EPaxos對比的角度,介紹EPaxos核心協議流程。上一篇文章最后留下的思考題,相信在閱讀完本文后,都能找到答案。閱讀本文需要一些Paxos或Raft等分布式一致性算法背景。

一 EPaxos基本思想

EPaxos是一個Leaderless的一致性算法,無需選舉Leader,任意副本均可發起提議。

Leaderless也可以看作每個副本都是Leader,從Multi-Paxos或Raft的角度看,如果使用多Group,將每個Leader劃分到不同的Group,每個副本擔任一個Group的Leader,同時擔任其它所有Group的Follower,好像也可以做到類似Leaderless的效果。

使用多Group實現的Leaderless,每個Group獨立的對一系列Instance達成一致,每個Group產生一條Instance序列,不同Group產生的Instance彼此獨立,不能確定先后順序。因此跨Group的一致性是一大問題,在一致性層面無法解決,往往需要在上層使用分布式事務來解決。

EPaxos解決了這個問題,實現了真正的Leaderless。EPaxos通過跟蹤Instance之間的依賴關系,確定不同Group產生的Instance的相對順序,然后通過排序將多Group產生的多條Instance序列合并成一條全局的Instance序列,實現了跨Group的一致性,也即實現了真正的Leaderless。

EPaxos先運行共識協議,使各副本對Instance的值和Instance依賴的相對順序達成一致,隨后運行排序算法,基于前面已經達成共識的Instance的相對順序,對Instance進行全局排序,最終得到一致的全局Instance序列。

以上是站在Multi-Paxos或Raft使用多Group實現Leaderless的角度引出EPaxos的基本思想,實際Group是一致性算法之外的概念,這里引入Group只是為了方便介紹,實際EPaxos中并沒有Group的概念,但與Paxos或Raft類似,可以在EPaxos之上實現多Group。

二 EPaxos的Instance

EPaxos的Instance與Paxos有所不同,Paxos的Instance事先分配序號,但EPaxos的Instance不事先分配序號,各副本可以并發的亂序提交,但跟蹤記錄Instance之間的依賴關系,最后根據依賴關系排序。這里先總結一下不同點:

EPaxos的Instance與Paxos的不同點

Paxos的Instance由全局連續遞增的InstanceID標識,InstanceID也是Instance的序號,全局唯一,連續遞增。

EPaxos的Instance空間是二維的,每個副本擁有其中一行,因此由二維的R.i標識,其中R為副本標識,i為副本內連續遞增的整數,每開始一個新的Instance就加一。副本R擁有的Instance序列為R.1,R.2,R.3,...... R.i,......

EPaxos的Instance相對Paxos還有一些額外的屬性:

state標識Instance當前的狀態,可取值pre-accepted、accepted、committed。因為EPaxos的Instance的狀態比較多,所以需要專門的state字段標識。
deps為依賴的Instance集合,存放所有依賴的Instance的標識,即要在前面執行的Instance。deps保存了Instance之間的相對順序,后續將基于deps對Instance進行排序。
seq為Instance的序列號,其值為deps中所有Instance的seq的最大值加一,反映Instance提議的順序,后續排序的時候使用。
EPaxos的Instance的deps和seq屬性與Instance的值一樣,也需要在各副本之間達成一致,后續各副本將獨立的基于deps和seq對Instance進行排序。因為EPaxos的排序算法是確定性的,各副本基于相同的deps和seq對Instance進行排序,最終會得到一致的全局Instance序列。

將Instance看作圖的頂點,deps就是頂點的出邊,圖的頂點和邊都確定并在各副本之間達成一致之后,各副本對圖進行確定性的排序,最終得到一致的Instance序列。

三 EPaxos共識協議

Paxos提交一個值需要兩階段,而EPaxos的Instance多了依賴集合deps和序列號seq,為了確定這些屬性的值,EPaxos比Paxos多了一個階段。完整的EPaxos有三階段,但并非每個階段都是必須的,下表將Paxos與EPaxos的協議流程進行對比:

Paxos與EPaxos的協議流程對比

EPaxos與Paxos相比,Prepare階段和Accept階段類似,但EPaxos多了PreAccept階段,也是EPaxos最關鍵的一個階段。正因為EPaxos多了PreAccept階段,Instance的狀態更多了,所以引入專門的state屬性來標識Instance當前所處的狀態(pre-accepted、accepted、committed)。沒有引入Prepare階段的狀態,是因為Prepare階段沒有提議值,可以通過本地有無提議值來與其它狀態區分。通常情況下,EPaxos只運行PreAccept階段,即可Commit,Prepare階段和Accept階段都能跳過。

EPaxos與Paxos類似,在任意階段如果發現Instance被搶占,都需要回退到Prepare階段重新開始。

1 Prepare階段

Prepare階段的作用,EPaxos與Paxos類似,都是為了爭取提議權,同時學習之前已經提議的最新值。在EPaxos中,因為每個副本都擁有各自獨立的Instance空間,在自己的Instance空間上提議,相當于Multi-Paxos的Leader,所以與Multi-Paxos類似,通常情況下可直接跳過Prepare階段,直接從下一階段開始。

2 PreAccept階段

PreAccept階段是EPaxos特有的,其作用是確定Instance的依賴集合deps和序列號seq,同時盡量讓提議值、deps和seq在各副本間達成一致。若PreAccept階段已經達成一致,則直接到Commit階段(Fast Path),否則需要運行Accept階段,然后才到Commit階段(Slow Path)。

PreAccept階段是如何確定Instance的依賴集合deps和序列號seq的呢?其實比較簡單,從副本本地已存在的Instance中,收集需要在前面執行的Instance,即本地deps集合,本地seq即本地deps中的所有Instance的seq的最大值加一。最終的依賴集合deps取大多數副本的本地deps集合的并集,最終的序列號seq則取他們的本地seq的最大值。

各副本并發提議的時候,不同副本的本地deps和本地seq都可能不一樣,那么PreAccept階段如何才能達成一致呢?如果有足夠多的副本(Fast Quorum)的本地deps和本地seq都相同,則已經達成了一致。否則,最終的依賴集合deps取大多數(Slow Quorum)副本的本地deps的并集,最終的序列號seq取它們的本地seq的最大值,然后運行Accept階段達成一致。

PreAccept階段的Fast Quorum始終包含提議者,會在后面討論原因。Fast Quorum的值不小于Slow Quorum。假設副本總數為N,可容忍F個副本同時失效,N = 2F + 1,則Fast Quorum = 2F,優化后的EPaxos可優化至F + [ (F + 1) / 2 ],Slow Quorum = F + 1。Fast Quorum取值的推導這里先不做介紹,會在后續文章中詳細討論,Slow Quorum即大多數副本,與Paxos的Accept階段相同。

3 Accept階段

Accept階段的作用,EPaxos與Paxos類似,但Paxos只將提議值同步到大多數副本,EPaxos需要將提議值、deps和seq都同步到大多數副本,一旦形成多數派則決議達成。若在PreAccept階段已經達成決議,則可跳過Accept階段,直接進入Commit階段。

4 Commit階段

Commit階段的作用,EPaxos與Paxos類似,都是將達成的決議異步發送給其它副本,讓其它副本學習到決議,不同的是EPaxos的決議不僅包括決議值,還包括deps和seq。

四 EPaxos排序算法

與Paxos不同,EPaxos的Instance提交后,它們的順序還沒有確定,因此EPaxos需要一個額外的排序過程,對已提交的Instance進行排序。當Instance被提交,并且其依賴集合deps中的所有Instance也都提交后,就可以開始一次排序過程。

將EPaxos的Instance看作圖的頂點,Instance的依賴集合deps看作頂點的出邊,Instance的值和依賴集合deps達成一致后,圖的頂點和邊就在各副本之間達成一致,因此各副本會看到相同的依賴圖。

EPaxos對Instance排序的過程,類似于對圖進行確定性的拓撲排序。但需要注意的是EPaxos的Instance之間的依賴可能形成環,即圖中可能會有環路,因此不完全是拓撲排序。

為了處理循環依賴,EPaxos對Instance排序的算法需要先尋找圖的強連通分量,環路都包含在了強連通分量中,如果把一個強連通分量整體看作圖的一個頂點,則所有強連通分量構成一個有向無環圖(DAG),然后對所有的強連通分量構成的有向無環圖進行拓撲排序。

EPaxos排序算法的流程如圖1所示,其中由背景色圈起來的部分是強連通分量:

EPaxos排序算法

尋找圖的強連通分量一般使用Tarjan算法,它是一個遞歸算法,實測發現遞歸實現很容易爆棧,也給工程應用帶來了一定的挑戰。

不同強連通分量中的Instance按照確定性的拓撲順序排序,同一強連通分量中的Instance是并發提議的,理論上可以按任意確定性規則排序。EPaxos為每個Instance計算了一個seq序列號,seq的大小反映了Instance提議的順序,同一強連通分量里面的Instance按照seq大小排序。實際seq可能重復,并不能保證全局唯一遞增,EPaxos論文并未考慮到這一點,實際可以使用seq加副本標識排序。

事實上,隨著新的Instance不斷的運行,舊的Instance可能依賴新的Instance,新的Instance又可能依賴更新的Instance,如此下去可能導致依賴鏈不斷延伸,沒有終結,排序過程一直無法進行,形成活鎖。這也是EPaxos工程應用的一大挑戰。

因為Instance排序算法是確定性的,各副本基于一致的依賴圖對Instance排序后,將得到一致的Instance序列。

五 EPaxos案例

下面使用一個具體的案例,介紹EPaxos的核心協議流程,如下圖所示,系統由R1、R2、R3、R4、R5,5個副本組成,水平方向代表時間,值A、B、C的提議流程如圖所示。

EPaxos共識協議

案例中各Instance的屬性取值如下表所示:

EPaxos核心協議流程案例中Instance的屬性

1 提議值A

首先R1運行PreAccept階段發起提議值A,它首先獲取自己的本地deps和本地seq,此時它本地還沒有任何Instance,所以本地deps為空集,本地seq為初始值1,它持久化提議值A、本地deps和本地seq。

然后R1向R2、R3廣播PreAccept(A)消息,消息攜帶提議值A、本地deps、以及本地seq(圖中未標示),此時R1、R2、R3組成Fast Quorum。PreAccept消息可以只廣播給Fast Quorum中的副本,EPaxos論文中將這種優化稱為Thrifty優化。

R2、R3收到PreAccept(A)消息后,分別獲取自己的本地deps和本地seq,與R1類似,本地deps為空集,本地seq為1,持久化后回復R1。

R1收到Fast Quorum中的副本的本地deps和本地seq都相同,決議達成,最終的deps為空集,seq為1,運行Commit階段提交。

2 提議值B

接下來R5運行PreAccept階段發起提議值B,此時它本地也還沒有任何Instance,所以本地deps為空集,本地seq為初始值1。R5本地持久化后,向R3、R4廣播PreAccept(B)消息。

R4回復的本地deps為空集,本地seq為1,R3此時本地已經有了值A的Instance,因此R3回復的本地deps為{1.1},也即圖上標示的{A},本地seq為2,即A的Instance的seq加一。

Fast Quorum中的副本的本地deps和seq不都相同,因此需要運行Accept階段,最終的deps取大多數副本的本地deps的并集為{1.1},也即圖上標的{A},最終的seq取大多數副本的本地seq的最大值為2,通過Accept階段,將提議值B、最終的deps、最終的seq達成多數派。最后運行Commit階段提交。

3 提議值C

最后R1運行PreAccept階段發起提議值C,此時R1本地已經有了值A的Instance,因此本地deps為{1.1},也即圖上標示的{A},本地seq為3。R1本地持久化后,向R2、R3廣播PreAccept(C)消息。

R2和R3此時本地已經有了值A和值B的Instance,因此R2、R3回復的本地deps為1.1,5.1},也即圖上標示的{A,B},本地seq為3,即B的Instance的seq加一。

Fast Quorum中除了提議者R1以外的其它副本的本地deps和seq都相同,因此決議已經達成,最終的deps為{1.1,5.1},也即{A,B},seq為3,運行Commit階段提交。

4 排序

提議值A、B、C的Instance按照它們的依賴集合deps畫出的依賴關系如下圖(左)所示:

提議值A、B、C的Instance之間的依賴關系(左),排序之后的順序(右)

A的Instance的deps為空集,因此沒有出邊;B的Instance的deps為{A},因此有一條出邊指向A;C的Instance的deps為{A,B},因此有兩條出邊,分別指向A和B。

依賴關系圖中沒有循環依賴,已經是一個有向無環圖(DAG)。因此頂點A、B、C各自是一個強連通分量,進行確定性的拓撲排序后得到它們的順序:A <— B <— C,如圖如圖(右)所示。

六 EPaxos討論

1 Instance沖突

EPaxos引入Instance沖突(Interfere)的概念(與Parallel Raft類似,與并發沖突不是一個概念),若兩個Instance的值之間沒有沖突(例如訪問不同的key),則它們的先后順序無關緊要,甚至可以并行處理,因此EPaxos只處理有沖突的日志之間的依賴關系。

EPaxos的Instance的依賴集合deps,存放的是需要在該Instance之前執行的Instance。引入沖突之后,deps中存放的是與該Instance沖突的Instance。

沖突是一個與具體應用相關的概念,引入沖突之后,所有Instance不再是全序的,變成了偏序的,減少了依賴,降低了Slow Path的概率,提高了效率。

2 Fast Quorum

關于Fast Quorum取值的推導,留待后續文章介紹,這里先討論下,為什么PreAccept階段的Fast Quorum始終包含提議者。

EPaxos在每個階段,提議者總是本地先持久化成功之后,再廣播消息給其它副本。也就是說提議者總是在Quorum中,因此判斷是否達成Quorum時,提議者總是可以算一票。

在PreAccept階段,提議者將其本地deps和seq包含在了PreAccept消息中,作為其它副本計算它們本地deps和seq的基礎,使得提議者的本地deps和seq總是包含在最終的deps和seq中,因此PreAccept階段的Fast Quorum始終包含提議者。

EPaxos總是先本地持久化成功之后再廣播給其它副本,這樣可以減小Fast Quorum,但也導致本地持久化與網絡消息收發不能并行進行,降低了一些效率,同時也使得提議者不能容忍本地磁盤損壞的情況,這些都是EPaxos工程應用必須面對的問題。

Fast Quorum的值為什么不會小于Slow Quorum呢?這里無需推導Fast Quorum的取值,從直觀上就可以得出這個結論。在Paxos中一個副本提議一個值,所有副本只會有兩種結果,接受或者不接受這個值。而在EPaxos中每個副本都可能給出不同的deps和seq,因此需要更多的副本給出相同的結果才能保證在有副本失效后能恢復出正確的結果。

七 EPaxos偽代碼

到這里,相信讀者已經可以看懂EPaxos核心協議流程的偽代碼了。EPaxos核心協議流程偽代碼如下圖所示,為了簡單,省略了提議ID(Proposal ID,或者叫Ballot Number,投票編號)相關的部分,這部分與Paxos相同。

偽代碼中將日志視為命令(Command),每個Instance對一條Command達成一致,每個副本使用一個二維數組cmds保存收到的Command。

EPaxos核心協議流程偽代碼

八 總結

EPaxos通過顯示維護Instance之間的依賴關系,不僅去除了對Leader的依賴,還使得Instance可以并發的亂序提交,可以更好的進行Pipelining優化,同時顯式維護依賴也使得亂序執行成為可能。EPaxos支持亂序確認、亂序提交、亂序執行,理論上可以有更高的吞吐量。同時也可以看到一些EPaxos工程應用的挑戰,這些都是EPaxos工程落地要解決的問題。

本文從Paxos與EPaxos對比的角度,介紹了EPaxos核心協議流程,但EPaxos的內容決不僅僅只有這些,特別是Failover場景下,如何保證日志序列的順序性。

思考

最后留下幾個思考題,感興趣的同學可以先思考思考:

Instance的seq為什么會重復,什么情況下會重復?
Fast Quorum的取值如何推導?
如果一個Instance的共識協議流程還未完成,其提議者就宕機了,其它副本該怎么處理這個Instance?

責任編輯:梁菲 來源: 阿里云云棲號
相關推薦

2021-07-08 12:32:58

2022-02-25 07:34:36

MQTT協議RabbitMQ

2023-08-26 20:56:02

滑動窗口協議

2022-02-24 07:34:10

SSL協議加密

2020-10-28 11:15:24

EPaxos分布式性算法

2022-02-20 09:56:28

TCPIP網絡協議

2023-12-06 16:28:56

2020-08-27 07:34:50

Zookeeper數據結構

2023-09-02 21:44:24

TCP/IP通信協議

2019-10-12 08:59:36

軟件DevOps技術

2023-11-20 08:18:49

Netty服務器

2023-04-26 15:43:24

容器編排容器編排工具

2023-11-19 11:44:45

2023-11-06 08:16:19

APM系統運維

2022-06-08 08:11:56

威脅建模網絡安全網絡攻擊

2022-11-11 19:09:13

架構

2025-05-23 09:38:54

JWT開發Go

2025-05-13 01:45:00

MCP技術Java

2024-01-19 11:53:29

文件系統操作系統存儲

2023-10-27 08:15:45

點贊
收藏

51CTO技術棧公眾號

中文字幕亚洲欧美日韩| 亚洲 欧美 日韩 国产综合 在线 | 国产专区在线| 日本免费新一区视频| www.久久久久| wwwww在线观看| 成人私拍视频| 亚洲欧美日韩综合aⅴ视频| 成人三级在线| 欧美日韩a v| 伊人久久大香线| 亚洲美女喷白浆| 五月六月丁香婷婷| 在线观看的黄色| 亚洲天天做日日做天天谢日日欢| 九九九九九九精品| 97国产精品久久久| 性感少妇一区| 免费不卡在线观看av| 网站免费在线观看| 伊人国产精品| 色八戒一区二区三区| 一二三四中文字幕| 国产福利片在线| 成人av高清在线| 国产一区欧美二区三区| 午夜毛片在线观看| 99国内精品久久久久久久| 日韩精品免费视频| 污免费在线观看| 成人国产一区| 日韩欧美在线看| 91.com在线| 哥也色在线视频| 欧美国产在线观看| 蜜桃视频在线观看91| 韩国av在线免费观看| 精品一区二区三区不卡| 国产成+人+综合+亚洲欧美丁香花| 久久久综合久久久| 亚洲草久电影| 色噜噜亚洲精品中文字幕| 中文文字幕文字幕高清| 在线视频亚洲欧美中文| 日韩一级高清毛片| 日韩在线不卡一区| 国精产品一区一区三区四川| 福利视频第一区| www.av91| 伦理在线一区| 一区二区三区产品免费精品久久75| 亚洲一区二区精品在线观看| 1769在线观看| 国产日韩欧美亚洲| 日韩理论片在线观看| 欧美男男激情freegay| 99视频精品免费视频| 国产精品一区在线观看| 黄色一级大片在线免费看国产一 | 国产精品扒开腿做爽爽爽男男| 亚洲日本韩国在线| 国产日韩一区二区三区在线| 国模精品系列视频| 日本视频免费在线| 国产精品久久国产愉拍| 欧美亚洲激情视频| 五月婷婷激情视频| 日本免费新一区视频| 国产日韩欧美另类| 国产精品羞羞答答在线| 国产福利一区在线观看| 成人毛片网站| 天天操天天射天天舔| 久久一区二区视频| 日韩一区二区电影在线观看| 在线观看完整版免费| 成人欧美一区二区三区在线播放| 精品一区二区成人免费视频| 性欧美videoshd高清| 亚洲午夜在线电影| 久久国产亚洲精品无码| 欧美无毛视频| 欧美高清精品3d| 中文在线字幕观看| 婷婷精品在线观看| 中文字幕亚洲图片| 国产精品九九九九九九| 一本久道久久久| 国产精品久久一| 99国产成人精品| 成人精品鲁一区一区二区| 蜜桃麻豆91| 免费人成在线观看播放视频 | 亚洲综合一二三| 久久午夜激情| 91在线播放国产| 天天干天天插天天操| 日本一区二区三区高清不卡| 亚洲国产精品女人| 三级在线看中文字幕完整版| 欧美日韩一区 二区 三区 久久精品| 手机在线免费毛片| 自拍偷拍一区| 欧美成人性生活| 国产婷婷色一区二区在线观看| 麻豆成人久久精品二区三区小说| 国产91亚洲精品一区二区三区| 国产资源在线观看| 亚洲尤物视频在线| 天天色综合天天色| 麻豆一区二区| 久热精品视频在线免费观看 | 超碰在线免费公开| 日本韩国一区二区三区| 女王人厕视频2ⅴk| 波多野结衣的一区二区三区| 久久免费视频在线观看| 国产又粗又大又爽视频| 久久―日本道色综合久久| 日本大胆人体视频| 九七影院97影院理论片久久| 国产视频久久久久久久| 免费中文字幕视频| 久久国产三级精品| 欧美一区视久久| 99re6在线精品视频免费播放| 欧美三级在线播放| 黄色a一级视频| 欧美日韩三区| 国产欧美在线视频| 国产人成在线观看| 精品动漫一区二区三区| 在线观看网站黄| 成人vr资源| 26uuu另类亚洲欧美日本老年| 国产福利免费视频| 亚洲色图丝袜美腿| www.com黄色片| 国产九一精品| 欧洲成人午夜免费大片| 日韩在线观看视频网站| 亚洲男人天堂av| 色一情一区二区三区| 国产精品亚洲人成在99www| 国内精品久久久久久中文字幕| 一区不卡在线观看| 国产精品婷婷午夜在线观看| aaaaaa亚洲| 国产欧美一区| 国产精品xxx视频| 激情小视频在线观看| 色婷婷激情一区二区三区| 毛茸茸多毛bbb毛多视频| 精品不卡视频| 福利视频一区二区三区| 色呦呦在线资源| 日韩欧美国产综合在线一区二区三区| 日本高清不卡免费| 国产一区二区三区在线观看免费视频| 亚洲永久一区二区三区在线| 欧美天堂一区| 久久精品国产91精品亚洲| 中文字幕在线一| 国产精品成人在线观看| 亚洲天堂伊人网| 影音先锋成人在线电影| 亚洲一区久久久| 中文字幕有码在线视频| 精品久久久久av影院| 日韩欧美一区二区一幕| 99热在这里有精品免费| 国产 福利 在线| 禁断一区二区三区在线| 国产精品网红直播| 国产美女福利在线| 精品国产sm最大网站| 国产成人在线免费观看视频| 久久久久一区二区三区四区| 美女网站视频黄色| 在线国产一区二区| 国产免费一区二区三区| 欧美大片免费观看网址| 中文字幕视频一区二区在线有码| 亚洲中文字幕在线观看| 亚洲一区在线电影| 一级黄色片大全| 久久97超碰色| 分分操这里只有精品| 国产99久久| 91欧美精品午夜性色福利在线| 男女在线观看视频| 亚洲精品一区二区网址| 在线播放成人av| 夜夜嗨av一区二区三区四季av| 免费的av网站| 久久成人免费日本黄色| www.日本在线播放| 成人精品中文字幕| 国产精品传媒毛片三区| 777午夜精品电影免费看| 久久福利视频导航| 日本午夜在线视频| 3d动漫精品啪啪1区2区免费| 日本污视频在线观看| 国产精品乱码一区二三区小蝌蚪| zjzjzjzjzj亚洲女人| 毛片av一区二区| 免费拍拍拍网站| 四季av一区二区三区免费观看| 国产伦一区二区三区色一情| 成人在线免费av| 69精品小视频| 成人片在线看| 在线日韩中文字幕| 亚洲av毛片成人精品| 欧美一区二区人人喊爽| 午夜一级黄色片| 天涯成人国产亚洲精品一区av| 极品色av影院| 国产亚洲成av人在线观看导航| 在线xxxxx| 国产综合久久久久久鬼色| 欧美两根一起进3p做受视频| 国产精品扒开腿做爽爽爽软件| 亚洲精品无人区| 外国成人在线视频| 官网99热精品| 久久伊人久久| 国产在线视频一区| 韩国成人在线| 欧美洲成人男女午夜视频| 色yeye免费人成网站在线观看| 中文字幕在线看视频国产欧美在线看完整| 日本毛片在线观看| 日韩欧美中文字幕精品| 国产精品国产三级国产aⅴ| 在线精品视频一区二区| 久久国产视频一区| 狠狠色狠狠色综合日日五| 国产一级中文字幕| 伊人色综合久久天天| 国产suv精品一区二区68| 国产精品久久久久久久蜜臀| 五月天综合视频| 久久人人超碰精品| 最新中文字幕视频| 91在线丨porny丨国产| 国产精久久久久| 国产.精品.日韩.另类.中文.在线.播放| 青青草久久伊人| 精品系列免费在线观看| 久久国产激情视频| 另类成人小视频在线| 欧美美女性视频| 久久99久久99小草精品免视看| 性生活免费在线观看| 免费黄网站欧美| 天天干天天操天天做| 国产自产高清不卡| 能看毛片的网站| 高清免费成人av| 国产亚洲精品成人a| 国产91精品入口| 精品无码人妻少妇久久久久久| 99久久婷婷国产| 欧美狂猛xxxxx乱大交3| 国产视频不卡一区| 三级黄色免费观看| 亚洲欧美日韩电影| 久青草免费视频| 午夜国产不卡在线观看视频| www亚洲视频| 在线观看视频91| 国产一区二区在线视频观看| 欧美一级日韩免费不卡| 欧美一级片免费| 亚洲人成绝费网站色www| 成人影视在线播放| x99av成人免费| 免费污视频在线观看| 51色欧美片视频在线观看| 黄瓜视频成人app免费| 国产欧美精品一区二区| 精品久久亚洲| 久久精品国产理论片免费| 欧美日韩一二三四| 波多野结衣 作品| 一本色道久久综合亚洲精品高清| 白嫩少妇丰满一区二区| 激情综合色播五月| 国产黑丝一区二区| 国产欧美日产一区| 精国产品一区二区三区a片| 欧美丝袜一区二区| 在线观看av大片| 欧美不卡在线视频| yw193.com尤物在线| 欧美福利视频网站| 成人看片网页| 超碰97在线资源| 欧美三级情趣内衣| 国产夫妻自拍一区| 日本特黄久久久高潮| 图片区偷拍区小说区| 中文字幕免费一区| 国产做受高潮漫动| 666欧美在线视频| 免费人成在线观看网站| 蜜月aⅴ免费一区二区三区| 欧美日韩国产v| 99久久伊人精品影院| 超碰成人久久| 国产高清av在线播放| 久久福利资源站| 欧美熟妇一区二区| 亚洲影视在线观看| 一级做a爱片久久毛片| 亚洲美女福利视频网站| 成人性生交大片免费看在线播放| 国产精品美乳一区二区免费| 欧美成人一区在线观看| 男女h黄动漫啪啪无遮挡软件| 视频一区二区三区入口| 国产精品无码一区二区三| 亚洲精品ww久久久久久p站| 五月激情丁香网| 亚洲精品有码在线| 538视频在线| 91免费版黄色| 欧美丰满日韩| 亚欧在线免费观看| 久久综合国产精品| 国产一区二区三区影院| 精品日韩成人av| 4438x成人网全国最大| 91精品美女在线| 欧美在线观看视频一区| 国产熟人av一二三区| 久久综合精品国产一区二区三区| 国产无套粉嫩白浆内谢| 亚洲精品在线免费观看视频| 日本片在线观看| 9a蜜桃久久久久久免费| 中文字幕亚洲精品乱码| 亚洲网中文字幕| 亚洲天堂成人在线观看| 国产精品无码天天爽视频| 日韩一区二区av| 欧洲精品久久久久毛片完整版| 五月婷婷综合色| 日韩av一区二区三区四区| 欧美福利第一页| 欧美午夜理伦三级在线观看| 91官网在线| 成人www视频在线观看| 希岛爱理av一区二区三区| 欧洲在线免费视频| 亚洲精品日韩一| 亚洲国产精品久久久久爰性色| 欧美美女18p| 国产精品极品国产中出| 国产女大学生av| 国产亚洲女人久久久久毛片| 国产天堂第一区| 日韩视频免费看| 蜜桃精品一区二区三区| 国产精品第157页| 97精品视频在线观看自产线路二| 天堂中文在线网| 亚洲最新视频在线| 亚洲一区二区小说| 成人手机在线播放| 成人污视频在线观看| 欧美亚洲精品天堂| 国产一区二区三区三区在线观看| 国产精品久久乐| 五月天激情图片| 92精品国产成人观看免费 | 色综合天天综合狠狠| www日韩tube| 亚洲永久免费观看| 亚洲黄色影片| 韩国女同性做爰三级| 777午夜精品免费视频| av在线播放资源| 婷婷久久伊人| 国产精品1024| 男人午夜免费视频| 久久精品视频在线| 欧美男人操女人视频| 国产又大又黄又猛| 一区二区三区国产精品| 国产一区二区三区福利| 成人免费大片黄在线播放| 一区二区福利| 亚洲女人毛茸茸高潮| 亚洲高清久久网| 久久久精品一区二区毛片免费看| 精品人妻人人做人人爽| 国产欧美视频一区二区|