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

HBase原理-要弄懂的sequenceId

大數據
本文從hbase中非常重要的一個變量(sequenceId)入手,將其所涉及到的WAL模塊、Flush模塊分別進行了說明。文中只講了一個大概,很多細節知識并沒有深究,有興趣的同學可以根據文中所講內容深入源碼,相信會比較容易。

HBase原理-要弄懂的sequenceId

好記性不如爛筆頭,何況我的記性已經無藥可救~

為什么需要sequenceId?

HBase數據在寫入的時候首先追加寫入HLog,再寫入Memstore,也就是說一份數據會以兩種不同的形式存在于兩個地方。那兩個地方的同一份數據需不需要一種機制將兩者關聯起來?有的朋友要問為什么需要關聯這兩者,那筆者這里提出三個相關問題:

1. Memstore中的數據flush到HDFS文件中后HLog對應的數據是不是就可以被刪除了?不然HLog會無限增長!那問題來了,Memstore中被flush到HDFS的數據,如何映射到HLog中的相關日志數據?

2. HBase中單個HLog都有固定大小,日志文件最大個數也是固定設置的,默認最大HLog文件數量為8。如果日志數量超過這個數量,就必須刪除最老的HLog日志。那問題來了,如何知道待刪除HLog日志對應的所有數據都已經落盤了?(如果知道哪些數據沒有落盤,就可以強制對其執行flush,之后就可以將HLog刪除)

3. RegionServer宕機之后Memstore中數據必然會丟失,大家都知道可以通過HLog進行恢復。那問題來了,HLog中哪些數據需要恢復?哪些不需要恢復?

這三個問題從本質上來講是一個問題,都需要一種介質來表示Memstore中數據Flush的那個點對應HLog哪個位置,這個介質就是本文要介紹的重點-sequenceId

HLog日志核心結構

要理解sequenceId,需要簡單了解HBase中HLog文件的基本結構,如下圖所示,關注點主要有兩點:

 

1. 每個RegionServer擁有一個或多個HLog(默認只有1個,1.x版本可以開啟 MultiWAL 功能,允許多個HLog)。 每個HLog是多個Region共享的 ,如圖所示,Region A、Region B和Region C共享一個HLog文件。

2. HLog中日志單元WALEntry表示一次行級更新的最小追加單元(圖中紅色/黃色小方框) ,它由兩部分組成:HLogKey和WALEdit,HLogKey中包含多個屬性信息,包含table name、region name、 sequenceid 等; WALEdit用來表示一個事務中的更新集合, 一次行級事務可以原子操作同一行中的多個列。上圖中WALEdit包含多個KeyValue。

什么是sequenceid?

sequenceid是region級別一次行級事務的自增序號。這個定義是我琢磨出來的,需要關注的地方有三個:

1. sequenceid是自增序號。很好理解,就是隨著時間推移不斷自增,不會減小。

2. sequenceid是一次行級事務的自增序號。行級事務是什么?簡單點說,就是更新一行中的多個列族、多個列,行級事務能夠保證這次更新的原子性、一致性、持久性以及設置的隔離性,HBase會為一次行級事務分配一個自增序號。

3. sequenceid是 region級別 的自增序號。每個region都維護屬于自己的sequenceid,不同region的sequenceid相互獨立。

在這樣的定義條件下,HLog就會如下圖所示:

 

HLog中有兩個Region的日志記錄,方框中的數字表示sequenceid,隨著時間的推移,每個region的sequenceid都獨立自增。

問題一:HLog在什么時候可以過期回收?

下圖中虛線右側部分為超過單個HLog大小閾值后切分形成的一個HLog文件,問題是這個文件什么時候可以被系統回收刪除。理論上來說只需要這個文件上所有Region對應的最大sequenceid已經落盤就可以刪除,比如下圖中如果RegionA對應的最大sequenceid(5)已經落盤,同時RegionB對應的最大sequenceid(5)也落盤,那該HLog就可以被刪除。那怎么實現的呢?

 

RegionServer會為每個Region維護了一個變量oldestUnflushedSequenceId(實際上是為每個Store,為了方便講解,此處暫且認為是Region,不影響原理),表示這個Region最早的還未落盤的seqid ,即這個seqid之前的所有數據都已經落盤。接下來看看這個值在flush的時候是怎么維護的,以及如何用這個值實現HLog的過期回收判斷。

下圖是flush過程中oldestUnflushedSequenceId變量變化的示意圖,初始時為null,假設在某一時刻階段二RegionA(紅色方框)要執行flush,中間HLog中sequenceId為1~4對應的數據將會落盤,在執行flush之前,HBase會append一個空的Entry到HLog,僅為獲取下一個sequenceId(5),并將這個sequenceId賦給OldestUnflushedSequenceId-RegionA。如圖中第三階段OldestUnflushedSequenceId-RegionA指向sequenceId為5的Entry。

 

可見,每次flush之后這個變量就會往前移動一段距離。這個變量至關重要,是解決文初提到的三個問題的關鍵。基于上述對這個變量的理解,來看看下面兩種場景下右側HLog是否可以刪除:

 

很顯然,場景一中右側HLog還有未落盤的數據(sequenceid=5還未落盤),因此不能刪除;而場景二中右側HLog的所有數據都已經落盤,所以這個HLog理論上就已經可以被刪除回收。

問題二:HLog數量超過閾值(maxlogs)之后刪除最早HLog,應該強制刷新哪些Region?

假設當前系統設置了HLog的最大數量為32,即hbase.regionserver.maxlogs=32,上圖中最左側HLog是第33個,此時系統會獲取到最老的日志(最右側HLog),并檢查所有的Entry對應的數據是否都已經落盤,如圖所示RegionC還有部分數據沒有落地,為了安全刪除這個HLog就必須強制對該Region執行flush操作,將所有數據落盤。

 

問題三:RegionServer宕機恢復replay日志時哪些WALEntry需要被回放,哪些會被skip?

理論上來說只需要回放Memstore中沒有落地的數據對應的WALEntry,已經落地數據對應的WALEntry可以skip。可問題是RegionServer已經宕機了,<region, oldestunflushedsequenceid=””> 對應信息肯定沒有了,如何是好?想辦法持久化唄,上文分析oldestUnflushedSequenceId變量是flush時產生的一個變量,這個變量 完全 可以以flush的時候以元數據的形式寫到HFile中 (代碼見下圖):</region,>

 

這樣Region在宕機遷移重新打開之后加載HFile元數據就可以恢復出這個核心變量oldestUnflushedSequenceId(本次flush所生成的所有HFlie中都存儲同一個sequenceId),這個sequenceId在恢復出來之后就可以用來在回放WALEntry的時候過濾哪些Entry需要被回放,哪些會被skip。

這里提一個問題:有沒有可能一次flush所生成的所有HFile中存儲的sequenceId出現不一致,比如:region中所有store(store1、store2)都執行flush,其中store1執行flush成功,此時oldestUnflushedSequenceId變量成功追加到對應的HFile中;但在store2執行flush之前RegionServer發生宕機異常,store2對應的oldestUnflushedSequenceId變量還是上個文件對應的sequenceId,這種情況下回放數據會不會有影響?如果有,為什么?如果沒有,是什么機制保證的?

到目前為止,上面所有分析都基于一個事實:hbase中flush操作是region級別操作,即每次執行flush都需要整個region中的所有store全都執行flush。接下來作為延伸閱讀內容,對Per-CF Flush比較感興趣的可以繼續閱讀,Per-CF Flush允許系統對某個或某些列組單獨執行flush。實現原理與上文所分析內容基本相似。不同的是上文中 oldestUnflushedSequenceId是與region一一對應的,Per-CF Flush中這個參數需要細化到store,與store一一對應。

延伸閱讀:Per-CF Flush

region級別flush確實存在不少問題,在多個列族的情況下其中一個store大小超過了閾值(128M),不論其他store多大多小都會強制落盤,有些很小的列族(幾兆)落盤后形成很多特別小的文件,對hbase的讀并不是一件好事。

per-cf flush允許單個store執行flush,該feature在1.0.0以上版本已經存在,在1.2.0版本設置為默認策略。 實現這個功能有兩個必要的工作,其一是提出一種新的flush策略能夠在多個列族中選擇一個或者多個單獨進行進行flush,目前新策略稱為FlushLargerStoresPolicy,即選擇當前最大的一個store進行flush。其二是必須將oldestUnflushedSequenceId的粒度從region細化到store,即從map<region, oldestunflushedsequenceid=””>改為map<region, oldestunflushedsequenceid=”” map<store,=””>>,上文所述三個問題的判斷邏輯也需要修改為store級別判斷邏輯。這里使用store級別判斷邏輯簡單對問題一和問題三進行復盤。</region,></region,>

Per-CF Flush策略下,HLog在什么時候可以過期回收?

region級別的判斷邏輯主要依賴于map<region, oldestunflushedsequenceid=””>,詳見上文。store級別的數據結構改為了map<region, oldestunflushedsequenceid=”” map<store,=””>>,其實很容易經過簡單的轉化又變回region級別,map<store, oldestunflushedsequenceid=””>找到最小的oldestUnflushedSequenceId稱為minSeqNum,這樣region級別的數據結構就變出來了 – map<region, minseqnum=””>,其他邏輯都不用變。</region,></store,></region,></region,>

Per-CF Flush策略下,RegionServer宕機恢復replay日志時哪些數據需要被回放,哪些會被skip?

這個問題稍微復雜一點,第一個關注的問題是回放粒度的問題。需要回過頭來看看HLog中Entry的組成,如圖可以知道一個Entry由WALKey和WAKEdit兩部分構成,WALKey包含一些基本信息,本文重點關注sequenceId這個變量; WALEdit包含插入\更新的KeyValue集合,這里需要重點注意, 這些KeyValue可能包含一行中多個列族(列),因此可以說WALEdit會包含多個store更新的KeyValue 。

 

在All-CF Flush策略下,我們以HLog-Entry為粒度進行數據回放沒有任何問題,但是在Per-CF Flush策略下就不再行得通。因為一個HLog-Entry中多個CF的KeyValue是混在一起的,可能部分KV已經落盤,其他部分還沒有。因此需要將回放粒度減小到KeyValue級別,一個一個KeyValue分別進行檢查回放。

回放粒度問題摸清了,再來關注哪些KeyValue需要被回放,哪些會被skip。上文說過,每次flush的時候對應的oldestUnflushedSequenceId會被持久化到HFile的元數據中。在All-CF Flush策略下,一次flush操作中整個region所有store所持久化的oldestUnflushedSequenceId都相同,因此回放的時候HLog-Entry的sequenceId只需要與這一個oldestUnflushedSequenceId比較就可以,大的話就需要回放,小的話就skip。但在Per-CF的場景下又不再行得通,一個region中不同store都有自己獨立的oldestUnflushedSequenceId,因此回放的時候需要根據KeyValue找到對應store,在與該store中的oldestUnflushedSequenceId比較,大的話需要回放,小的話skip。

總結起來就是:skip hlog cells per store when replaying,注意這里蘊含兩個點: hlog cells 以及 per store。

全文總結

本文從hbase中非常重要的一個變量(sequenceId)入手,將其所涉及到的WAL模塊、Flush模塊分別進行了說明。文中只講了一個大概,很多細節知識并沒有深究,有興趣的同學可以根據文中所講內容深入源碼,相信會比較容易。接下來筆者將會繼續根據sequenceId這個話題分析HBase中MVCC機制,敬請期待! 

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2020-12-04 06:37:19

HTTPS原理安全

2021-06-02 05:43:36

比特幣虛擬貨幣區塊鏈

2022-08-03 08:01:16

CDN網站服務器

2021-09-07 08:59:09

編碼Base64解碼

2019-11-08 16:05:54

Promise前端鏈式調用

2018-10-22 12:50:20

CDN網絡內容發布網絡

2023-04-04 08:01:47

2018-11-30 09:03:55

HTTP緩存Web

2021-10-08 06:50:31

Volatile設計原理

2016-12-27 09:08:34

HBase數據流程

2023-11-16 09:01:37

Hadoop數據庫

2018-06-13 08:53:39

HadoopHBase存儲

2019-12-04 10:23:33

HBase內存MemStore

2021-04-27 19:21:48

HBase原理開源

2017-01-17 09:38:52

ZooKeeperHadoopHBase

2023-07-27 06:38:52

HBase大數據

2019-04-28 11:06:01

Hbase架構程序員

2023-03-27 17:58:34

MySQL加鎖間隙鎖

2023-03-30 08:52:40

DartFlutter

2017-02-14 12:34:28

iOSAllocInit
點贊
收藏

51CTO技術棧公眾號

久久久免费精品视频| 中文字幕久久网| 成人国产精品入口免费视频| 久久你懂得1024| 55夜色66夜色国产精品视频| 公侵犯人妻一区二区三区| 免费电影日韩网站| 国产精品久久久久久久岛一牛影视 | 99国产精品免费网站| 亚洲国产成人tv| 激情久久av| 糖心vlog精品一区二区| 91综合久久一区二区| 宅男在线国产精品| 欧美精品久久久久久久久久久| 性猛交xxxx乱大交孕妇印度| 99精品国产一区二区青青牛奶 | 国产精品夜夜夜| 色妞欧美日韩在线| 日本黄色三级大片| а√天堂官网中文在线| 久久久精品性| 欧美激情在线狂野欧美精品| 中文字幕免费高清| 视频一区中文字幕精品| 色呦呦网站一区| 成人一区二区av| 色鬼7777久久| 激情六月婷婷久久| 欧美在线视频在线播放完整版免费观看 | 无码少妇一区二区三区| 欧美久久一二区| 欧美,日韩,国产在线| v天堂福利视频在线观看| 99精品在线观看视频| 91久久精品国产| 欧美一级淫片免费视频黄| 欧美人与禽猛交乱配视频| 日韩精品亚洲元码| 丰满人妻一区二区三区免费视频棣| 四虎4545www精品视频| 舔着乳尖日韩一区| 大陆极品少妇内射aaaaaa| 8888四色奇米在线观看| 久久久久国产免费免费| 精品视频免费观看| 丰满熟女一区二区三区| 国产精品亚洲综合一区在线观看| 国产黑人绿帽在线第一区| 国产在线综合网| 我不卡神马影院| 最近2019中文字幕mv免费看 | 国产亚洲依依| 久久久综合视频| 久久精品国产一区二区三区不卡| 免费a级片在线观看| 麻豆精品视频在线| 欧美性受xxxx黑人猛交| 日本三级午夜理伦三级三| 婷婷综合在线| 伦理中文字幕亚洲| 2018天天弄| 久久一区二区三区喷水| 中国china体内裑精亚洲片| 男人天堂av电影| 精品99久久| 亚洲全黄一级网站| 国内精品久久99人妻无码| 婷婷亚洲成人| 亚洲国产一区自拍| 亚洲永久精品ww.7491进入| 亚洲日本三级| 亚洲视频777| aaaaa黄色片| 久久久久久久久久久久久久久久久久久久 | 国产日产精品一区| 色噜噜狠狠一区二区三区| av女优在线| 综合亚洲深深色噜噜狠狠网站| 伊人天天久久大香线蕉av色| 午夜在线视频| 亚洲一区在线播放| 欧美国产亚洲一区| 一级毛片久久久| 欧美午夜精品一区二区三区| 美女在线视频一区二区| 国产一区二区三区黄网站| 欧美午夜精品免费| 秘密基地免费观看完整版中文| 开心激情综合| 国产亚洲精品一区二555| 国产中文字幕久久| 亚洲午夜一区| 国产精品久久久久久久久借妻| 日本高清不卡码| 国产一区二区三区在线观看精品| 成人91免费视频| 美女做暖暖视频免费在线观看全部网址91| 国产欧美日韩三区| 欧美三级午夜理伦三级老人| 密臀av在线| 在线观看欧美黄色| 中文字幕人妻无码系列第三区| 欧美五码在线| xvideos国产精品| 国产69精品久久久久久久久久| 美腿丝袜亚洲三区| 国产伦精品一区二区三区免费视频| 免费一级毛片在线观看| 亚洲精品日产精品乱码不卡| 国产免费观看高清视频| 亚洲电影二区| 精品视频在线观看日韩| 亚洲不卡的av| 亚洲久久成人| 亚洲自拍偷拍一区| 99reav在线| 色综合视频在线观看| www.久久久久久久久久久| 日本福利一区| 久久久久久久久综合| 91久久国产综合久久91| 国产成人av福利| 国产精品美女在线播放| 波多野结衣在线高清| 制服.丝袜.亚洲.另类.中文| 中文字幕免费视频| 99国产一区| 国产视频不卡| 欧美大片黄色| 欧美日韩国产另类一区| 亚洲综合网在线观看| 欧美一区高清| 95av在线视频| 免费网站成人| 欧美日韩中文字幕一区| 蜜乳av中文字幕| 一本综合久久| 久久精品女人的天堂av| 最爽无遮挡行房视频在线| 欧美日韩一级片在线观看| 新91视频在线观看| 久久亚洲精选| 古典武侠综合av第一页| 三区四区在线视频| 欧美日韩国产在线观看| 自拍偷拍第9页| 免费观看30秒视频久久| 美女被啪啪一区二区| 国产乱码午夜在线视频| 亚洲精品成人av| 色网站在线播放| 久久蜜桃一区二区| 亚洲少妇第一页| 成人黄色av| 国产日韩欧美日韩大片| 国产在线资源| 在线精品国精品国产尤物884a | 一区二区三区国产精品| 国产成人精品一区二区三区在线观看| 欧美va亚洲va日韩∨a综合色| 999久久久| 成入视频在线观看| 亚洲人成自拍网站| 国产无遮挡又黄又爽又色视频| 国产午夜亚洲精品午夜鲁丝片| 亚州精品一二三区| 91av精品| 久久精品国产一区二区三区日韩| 日韩福利一区| 亚洲性视频网址| 中文字幕 自拍偷拍| 国产午夜亚洲精品理论片色戒| 亚洲 中文字幕 日韩 无码| 色偷偷综合网| 亚洲综合国产精品| av在线中出| 在线观看免费高清视频97| 伊人免费在线观看高清版| 成人免费小视频| 无码一区二区精品| 日韩av在线发布| 亚洲自拍偷拍一区二区三区| 精品国产乱码久久久久久樱花| 欧美国产精品人人做人人爱| 亚洲国产成人精品一区二区三区| 欧美午夜精品伦理| 国产精品丝袜一区二区| 97精品电影院| 精品综合久久久久| 欧美成人中文| 国产精品日本一区二区| 大香伊人中文字幕精品| 国产亚洲一区二区精品| 国产高潮流白浆喷水视频| 欧美视频在线视频| 五月天丁香激情| 国产欧美va欧美不卡在线 | 久久精品一区二区三区四区| 亚洲理论中文字幕| 国产精品一区亚洲| 麻豆md0077饥渴少妇| 香蕉久久夜色精品国产更新时间| 国产日韩欧美一二三区| 黑人巨大亚洲一区二区久 | 成人在线中文| 91国产美女视频| 黄色在线观看网站| 国产亚洲欧洲高清| 神马午夜一区二区| 欧美一卡二卡三卡| 亚洲av综合一区| 丁香五六月婷婷久久激情| 污污污www精品国产网站| 石原莉奈一区二区三区在线观看| 日韩 欧美 视频| 久久精品国产99久久| 日韩av一区二区三区美女毛片| 国产精品视屏| 97欧洲一区二区精品免费| 欧洲亚洲精品久久久久| 日韩免费高清在线观看| 蜜桃av.网站在线观看| 色偷偷综合社区| 高清福利在线观看| 日韩黄在线观看| 蜜臀久久99精品久久久| 日韩女优av电影在线观看| 在线免费看av片| 色综合久久88色综合天天免费| 国产一级做a爱免费视频| 亚洲欧美另类小说| 日本黄色免费片| 国产精品久久久久久福利一牛影视| 国产精品无码一区二区三区| aaa亚洲精品一二三区| caopor在线| 国产91丝袜在线观看| 黄色a级三级三级三级| 麻豆精品精品国产自在97香蕉 | 久久国产尿小便嘘嘘| 久草精品在线播放| 99国产精品视频免费观看一公开 | 91尤物视频在线观看| 黄色激情在线观看| 粉嫩高潮美女一区二区三区| 国产精品熟妇一区二区三区四区| 国产宾馆实践打屁股91| 88av在线播放| 91在线码无精品| 日韩在线免费观看av| 91小视频在线观看| 成人午夜剧场视频网站| 国产偷国产偷亚洲高清人白洁| 亚洲精品色午夜无码专区日韩| 久久久国产一区二区三区四区小说| 中国美女乱淫免费看视频| 久久综合色综合88| 无码人妻精品一区二区三| 99精品欧美一区二区三区综合在线| aaaaaav| 国产欧美日韩不卡| 免费成人深夜夜行网站| 亚洲免费观看高清完整版在线观看 | 黄色视屏网站在线免费观看| 伊是香蕉大人久久| 亚洲欧美视频一区二区| 色黄久久久久久| 欧美黑人猛交的在线视频| 韩国视频理论视频久久| 欧美色网在线| 亚洲伊人一本大道中文字幕| 亚洲精品a区| 久久精品日产第一区二区三区 | 国产麻豆一区| 亚洲xxxx3d| 六月丁香久久丫| 亚洲va韩国va欧美va精四季| 在线国产一区| 男人添女人下部高潮视频在观看| 日日欢夜夜爽一区| 在线播放免费视频| 97久久精品人人澡人人爽| 少妇无套高潮一二三区| 樱桃视频在线观看一区| 欧美精品一二三四区| 91精品黄色片免费大全| 神马电影在线观看| 久久精品国产一区| 亚洲v.com| **亚洲第一综合导航网站| 亚州av一区| 韩国黄色一级大片| 久久一区亚洲| 精品无码人妻少妇久久久久久| 久久久久久电影| 爱爱视频免费在线观看| 欧美性xxxxxxxxx| 性生交大片免费看女人按摩| 亚洲欧美日韩在线高清直播| 麻豆网站在线免费观看| 欧美风情在线观看| 成人在线视频免费看| 欧美成人蜜桃| 亚洲天堂免费| 黄色三级视频片| 成人激情小说网站| 波多野结衣在线网址| 日本精品一区二区三区高清 | 国产精品66| 蜜桃av色综合| 黄色工厂这里只有精品| 免费男同深夜夜行网站| 国产成人午夜精品5599| 羞羞在线观看视频| 在线观看日韩国产| 青青草在线播放| 97超级碰碰碰久久久| 一区二区日韩| 国产成人三级视频| 美女mm1313爽爽久久久蜜臀| 男生草女生视频| 欧美视频专区一二在线观看| 性xxxxbbbb| 久久久久久久久久久网站| 欧美国产中文高清| 超碰97免费观看| 精品制服美女久久| 日本激情视频一区二区三区| 在线看日韩精品电影| 欧美日韩在线精品一区二区三区激情综| 久久色免费在线视频| 亚洲热av色在线播放| 日韩片电影在线免费观看| 亚洲欧美卡通另类91av| 性久久久久久久久久久| 亚洲成人午夜电影| 国产三级在线观看视频| 久久香蕉频线观| 国产亚洲精aa在线看| 小说区图片区图片区另类灬| 日韩黄色小视频| 精品无码人妻一区二区免费蜜桃 | 国产精品久久久久久一区二区三区| 国产99久久久| 亚洲精品小视频在线观看| 345成人影院| 国内精品国语自产拍在线观看| 亚洲一本视频| 天天操精品视频| 欧美激情一区二区三区不卡| 欧美一区二区三区久久久| 国产亚洲精品久久久| 国产成人精选| 免费国产成人看片在线| 成人午夜在线免费| 国产成人在线免费观看视频| 日韩av在线不卡| 桃色av一区二区| 色姑娘综合av| 激情深爱一区二区| 不卡的免费av| 日韩写真欧美这视频| 黑人精品视频| 青青草成人激情在线| 久草这里只有精品视频| 欧美成人综合色| 亚洲国产精品中文| 日韩一区二区三区在线免费观看| 少妇特黄a一区二区三区| 麻豆精品在线看| 国产无遮挡aaa片爽爽| 精品视频在线播放色网色视频| 日本另类视频| 在线不卡视频一区二区| 久久99久久久久| 久久久精品国产sm调教网站| 亚洲第一av在线| 一二区成人影院电影网| 一区二区三区欧美成人| 国产69精品久久777的优势| 可以在线观看av的网站| 国产婷婷成人久久av免费高清| 国外成人福利视频| 国产freexxxx性播放麻豆| 国产亚洲精品资源在线26u| 国产女人高潮毛片| 91黄色8090| 国产精品久久久久久久免费观看| www国产视频| 欧美日韩国产一区| 国产中文在线播放| 吴梦梦av在线| 91美女片黄在线观看| 国产高清免费在线观看| 国产精品第一区| 好吊日精品视频| 91ts人妖另类精品系列| 精品福利在线导航| 亚洲青青一区|