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

Abase2: NoSQL數據庫中的CRDT支持實踐

數據庫 其他數據庫
本文將分享Abase2在跨地域部署下的CRDT支持實踐。首先將介紹NoSQL數據庫在多地域部署下的一些挑戰,然后介紹解決多地域部署下沖突問題的CRDT方案,接下來將介紹Abase2為了支撐多地域部署下沖突解決以及CRDT技術而打造的架構,最后將分享具體工程實踐的經驗。

一、多地域部署挑戰

1、Abase簡介

首先簡單了解一下Abase在字節跳動公司(以下簡稱字節)的使用情況。

Abase是字節跳動規模最大的NoSQL數據庫之一,峰值QPS達到了百億級別,管理的數據存儲容量達到了EB級別,服務了字節跳動大多數產品線。Abase支持Redis協議/Thrift協議/批量導入等接入方式。用戶最常使用的接入方式為Redis協議,本次的分享主要圍繞Redis協議的CRDT支持來介紹。

2、多地域部署需求

再來看一下為什么數據庫需要多地域部署。

  • 就近訪問:用戶和服務本身就是多地域部署的場景,服務有就近訪問需求;需要做到本地訪問的地延遲。
  • 容災需求:相比于同地域內部多可用區域容災,多地域部署能夠提供更高的容災能力;
  • 資源問題:當某個地域沒有足夠資源,只能在其他地域部署;

3、Abase架構演進

Abase多地域部署的架構也經歷了一個演進過程。

圖片

如上圖所示,是Abase 1.0版本中的異地多活方案,簡單來講就是部署兩個Abase集群,然后通過一個中間組件把一個地域的Abase集群的op log傳輸到另一個地域,再寫入到Abase集群中。

但這個方案存在以下幾個問題:

  • 同步延遲:由于跨越多個組件,所以同步延遲較長,無法提供RPC級別的時延。如多地域的網絡延時可能是50ms,但是數據同步延遲可能到達秒級別以上。
  • 一致性問題:由于是外掛系統,在架構設計中沒有能夠保證100%的數據傳輸可靠,另一方面多地域寫入數據沖突問題更難解決。
  • 額外成本:包括同步組件的成本,數據沖突時修復數據時的成本,以及部署兩套集群需要額外的副本等。

圖片

下面我們具體介紹一下Abase1.0方案中,多地域部署下的數據不一致的問題:如上圖。在地域A和地域B各部署了一套Abase服務,初始時X都等于1,在地域A將X值設置為2,在地域B執行刪除X的操作。當數據互相同步之后,地域A可能看到X是一個空值,地域B可能看到X的值是2,如果沒有其他手段介入,這兩個地域的X值就會一直不一致,這種情況對用戶是很不友好的。

解決數據沖突問題有如下一些方案:

  • 用戶側避免沖突:一種方式是用戶只在一個地域寫,但這種方式會使得另一個地域跨地域訪問的延遲無法滿足;另一種方式是用戶將key進行一些處理,部分key在某個地域寫,部分key在另一個地域寫,進行單元化處理,但實際上并不是所有的key都能做到單元化。
  • 搭建數據不一致檢測和修復系統:搭建一個第三方系統進行數據沖突檢測,然后修復。這個方案是可行的,但是代價非常高,時間也非常長。字節內部也有這樣的系統,但是該系統也不能100%保證數據最終一致。
  • 服務側解決沖突:一種方式是通過向量時間戳等技術將沖突檢測出來交給用戶處理,這種方式對于一些高級用戶可能是ok的,但對于大多數普通用戶來說使用成本過高,我們希望能夠提供的是一個多地域部署的數據庫,用戶看到的是同一個Abase集群,在不同地域可以就近訪問。用戶不需要關心數據同步鏈路,不需要擔心數據最終一致性。所以我們采用了CRDT(無沖突復制數據類型)技術方案,從根本上避免沖突,達到數據的最終一致。

圖片

Abase通過支持原生多活以及CRDT技術,帶來了以下好處:

  • 同步時延低:同步延遲基本為RPC時間;
  • 強最終一致保證:保證數據無沖突,并且數據同步無丟失;
  • 更低成本:不需要額外數據同步組件的成本,并且可以做到更低的副本數。

二、CRDT技術

下面將對CRDT技術進行簡單介紹。

CRDT概念在2011年的一篇論文中正式提出,該論文主要討論了如果存在多副本同時更新的情況下,滿足怎樣的條件能讓數據達成最終一致。很快,CRDT技術在協同編輯領域得到了廣泛應用。現在,在分布式數據庫中,特別是NoSQL類型數據庫中,如RedisLab,Cosmosdb以及Riak等數據庫中目前都提供了CRDT數據類型的支持。

圖片

如上圖所示,在CAP原理中強一致性、可用性、分區容錯性三者不能兼得,尤其是跨地域部署的情況下,分區容錯或兩個地域的網絡隔離和各種異常是不可避免的。Abase所服務的場景,更多是為了追求可用性,所以必須要犧牲強一致性,但犧牲強一致性不代表不追求最終一致性。CRDT中的“強最終一致性”做到了在最終一致的基礎上提供更強的保證。 “強最終一致”與可用性、分區容錯性并不沖突,是一個適合多地域部署解決方案。

CRDT分為兩種形式:一種為基于狀態,一種為基于操作。無論是基于狀態還是基于操作,CRDT的結構設計都需要滿足以下幾個數學特性:

  • 交換律
  • 結合律
  • 冪等性

其中交換律和結合律指,有副本A和副本B,多個副本的狀態以不同的順序合并都能達到一致。滿足這個條件后,不管是什么順序來同步副本數據,所有副本之間的最終數據必然是一致的。一般來講基于狀態的CRDT,需要傳輸每個副本之間的所有數據,對于一些比較大的數據集合對傳輸要求是比較高的,所以實際工程實踐中使用比較多的是基于操作的CRDT類型,只需要同步用戶的操作,這種方式對傳輸層的壓力較小。此外,大多數分布式存儲系統中已經記錄了OP log,只需要將這些OP log做一些處理就可以滿足CRDT要求中的冪等性規則。只需要保證,這些OP log無論以什么次序,進行數據同步,最終值都是一樣的就可以。

圖片

如上圖所示,常見的CRDT類型為以下幾種:

  • Register:KV
  • Counter:計數器
  • Set:集合

由于篇幅有限,就不詳細介紹每一種CRDT類型,僅簡單介紹一下Counter類型的CRDT。在多線程編程中,如果想構建一個高性能計數器,常用的手段是設置每一個線程有一個線程私有變量來各自獨立統計各自線程的計數器的累加值,最后讀的時候將所有的線程進行合并,每一個線程的計數器自增加時都不需要加鎖,效率很高。計數器類型的CRDT結構也是基于相似的思路,如要在多個地域維護一個計數器,每次更新僅在本地域更新,最后讀取的時候再merge到一起。

實際使用過程中需要對這些數據結構進行各種組合,會更復雜一些。現在業界也有一些CRDT的解決方案或產品,但不能完全滿足我們的需求。

圖片

比如RedisLab提供的CRDT版本Redis命令支持較為完整,但這個版本并不開源。其他支持CRDT的產品,很多會將計數器和register類型分為兩種命令類型來處理,這與Redis原生語義不兼容。Abase2的CRDT方案必須要做到完全兼容Redis語義,同時支持Abase1已經支持的Redis命令,讓用戶的使用方式保持一致,不需要改造代碼,就可以使用CRDT版本的服務,同時要求在SSD下有比較良好的性能。

圖片

上圖列舉了一些Abase支持的常見Redis命令, Abase2做到了以上類型的CRDT支持,用戶在各個地域不同的訪問都能做到嚴格的最終一致,包括String、Hash、Zset、List等結構。

三、Abase2架構

多地域部署,需要架構上的支持。

圖片

上圖展示了Abase2的模塊結構,和大多數分布式系統的結構類似,這里不作贅述。

圖片

上圖展示了Abase2的部署方式,Abase2要支持多地部署,所以邏輯上分了以下幾層:首先是“Global Abase Cluster”,是一個跨地域部署的集群;一個“Cluster”內部可以分為多個“Region”,一個“Region”可能有不同的“可用區域”(“AZ”),一個“AZ”內部可能還劃分為不同的“POD”。

比較關鍵的是Abase2 DataNode結構。

圖片

Abase2 DataNode主要分為三層:框架層、一致性協議層、引擎層。由于Abase2是一個多租戶系統,所以框架層包含一些多租戶QOS調度的內容。在一致性協議層,Abase2使用了一套自研的類多主同步的一致性協議同步數據。引擎層則分為兩層,一層為log引擎,一層為KV引擎。KV引擎抽象了接口,可以對接不同的LSM、Hash以及遠程引擎。

圖片

如上圖所示,Abase2引擎層結構主要分為三層。除了RecordCache來保證熱點數據高性能,還有KV引擎外。相比于一般引擎結構,Abase2還有一個log引擎層,有一些OP操作需要記錄在log中,由于數據是多點寫入的、在最終數據達成一致之前是不會記錄到引擎中的。但對于本地域的用戶來說,用戶既然已經寫成功了,對本地域來說就需要能夠讀到這部分數據,故Abase基于OP log提供了查詢功能來滿足用戶的需求。

在CRDT支持中還有一個重要的部分就是用戶的時間戳方案。用戶時間戳需要達到幾個要求:

第一點要滿足因果關系,符合用戶意圖。如用戶先寫入A再寫入B,那么寫入B的時間戳要大于A。

第二點則是需要全局唯一不重復。

Abase實際使用的是混合邏輯時鐘技術。有些CRDT實踐中使用向量時鐘,向量時鐘既能保證因果關系,也能在有沖突的時候檢測出來。但是對于Abase2而言,并不需要檢測出沖突并報告給用戶處理,同時向量時鐘隨著副本數增加還會造成結構膨脹,所以Abase2采用了更“簡單粗暴”的混合邏輯時鐘方案。

圖片

混合邏輯時鐘方案能保證在系統內發生的事件有全序關系,如果事件A先于事件B發生,那么事件A的混合邏輯時鐘一定小于事件B。混合邏輯時鐘主要由物理時鐘、邏輯時鐘和副本標識組成。在具體實踐過程中還有一些工程優化手段來保證混合邏輯時鐘不發生異常。

四、Redis常見命令的CRDT支持

接下來介紹在工程實踐中,如何做到Redis常見命令的CRDT支持。

圖片

Redis命令可以大概分為兩類,上圖展示了第一類命令,這類命令是序列無關的,如String、Set和Hash類型等,雖然命令的類型不同,查詢可能更為復雜,但這些數據的操作和順序無關。第二類是有序類命令。

1、String類命令

前文中提到,數據結構分為三層,包括Cache層、Log引擎層和KV引擎層。所有用戶的更新會先寫入到log引擎層的log中,并為log構建索引,以保證大多數熱的、最新的OP操作都在log中。Cache層也非常重要,為滿足高性能需求,不論遠方來的OP操作以什么順序提交,需要保證與Cache中結果的當前值進行merge,都在Cache中得到及時的更新,而不需要再去查詢引擎。

下圖展示了Cache更新流程的實現:

圖片

Cache層是保證在CRDT條件下高性能的關鍵。如圖所示,除了Cache當前的merge value外,用戶基于不同的OP操作,比如set key1=5,然后“+1”、“+1”,最終值是7,在Cache中要緩存7,此外還要存儲額外的信息(操作對應的時間等),因為如果只緩存7,假如用戶同步過來一個set命令,這時就會不知道是否應該更新緩存。

以case1為例,假設外界寫入一個時間戳為5的“+1”操作,首先將查詢緩存信息,緩存信息中最近一次的set命令時間戳是2,最近一次修改的時間戳是6,如果有一個時間戳為5的“+1”的操作,則說明這是在最近一次設置時間戳之后發生的,就可以直接將內存結果更新為8,就不需要再查詢引擎了。

圖片

在正常的讀取流程中,如果沒有命中Cache,將會重新遍歷OpList中的操作記錄,如果遇到set則返回,并將之后的結果merge起來;如果OP log沒有這一條key的操作記錄,則直接讀取KV引擎中的KV存儲結果返回給用戶。

圖片

如果OP log一直保留,則會不斷增多,不僅浪費存儲空間,也會影響查詢速度。故對OP log也會有定期的GC回收機制,在這個過程中就使用了混合邏輯時鐘的因果關系保證,它能保證一旦混合邏輯時鐘時間戳之前的日志完成了同步,那就保證之前日志數據不需要了,未來不會再產生時間戳更小的日志。

2、Hash類命令

如下圖,Hash類型的命令與String類型是類似的。

圖片

不同之處是在Hash類型中的緩存結構有些差異。

圖片

當元素個數較少時,Hash的meta和Hash的field是在一起的,而在元素個數較多時是分散的。

3、有序類命令

除了上面介紹的無序類型的命令,還有一類Redis命令的CRDT實現是有序類型的。

圖片

比如Sorted Set類型命令中元素有一個score,基于score的順序/排名進行一些操作。List類型雖然沒有score,但也有頭部和尾部之分,也可以看作是有序結構。

圖片

在有序結構下,CRDT會面臨如下問題:舉個例子,比如有一個有序集合(Sorted Set)內,副本A上ABC的score分別為1000,2000,3000,副本B上BC的score分別為2000,3000,如果需要刪除score最小的元素,則在副本A上執行的操作是刪除A,而在副本B上則會執行刪除B的操作,最后導致當副本A上的操作同步到副本B時,就會出現數據不一致的情況。一種方案是可以保留OP log,并在每次同步到操作時按照時間順序強制回放OP log,但這樣實施起來的代價是非常高的。前文有提到,我們要求所有操作可以直接合并到Cache中,而不需要重新加載log。在具體實踐中,Abase對部分操作進行了轉化,將“ZremRangeByRank”這種基于序列的操作轉換成基于Member的操作,即在副本A執行的時候會將操作轉換成“Zrem A”并且標記操作時間戳,這時當操作同步到副本B時,由于副本B沒有“A”,則不會產生刪除元素的操作。

4、后續優化

最后總結一下Abase2對Redis命令CRDT之處的一些特點和我們的后續計劃。

特點總結如下:

  • 采用OP-based的CRDT算法,支持了Redis幾乎所有常用結構的異地多活下的數據最終一致;
  • 充分利用內存資源,通過cache有效的提高了熱點數據的查詢性能;

目前Abase2正在優化的點總結如下:

對于復雜數據結構的更科學的 RU(request unit)評估,Abase2是多租戶serverless的云存儲服務,對用戶的計費和限速都是基于RCU的,對于KV類型的RCU評估業界有比較通用的做法,但對于復雜數據結構如Zset或List等請求,RCU的評估是不太精準的,繼而會帶來資源使用、負載均衡及用戶計費上的不精準,所以要不斷優化更科學的評估RCU;

  • 進一步優化cache命中率,提升性能;
  • 對于cache不命中的場景進行進一步的優化和剪枝,改善長尾延遲。
責任編輯:姜華 來源: DataFunTalk
相關推薦

2022-05-25 11:11:02

Abase架構字節跳動

2011-04-14 11:14:21

OracleNoSQLMySQL

2024-02-02 10:51:53

2021-09-28 09:25:05

NoSQL數據庫列式數據庫

2015-05-07 14:25:40

谷歌NoSQL數據庫HBase

2011-10-09 09:38:03

OracleNoSQL

2012-05-08 15:14:56

數據庫應用

2020-10-31 22:01:40

NoSQL數據庫

2017-05-25 10:11:46

數據庫令牌節點

2019-03-20 15:59:11

NoSQLRedis數據庫

2010-04-01 09:45:38

NoSQL

2019-07-08 10:36:34

數據庫WebNoSQL

2011-07-19 09:08:50

JavaNoSQL

2024-03-28 09:00:00

NoSQL數據庫

2018-01-24 20:42:06

數據庫NoSQL驅動力

2010-03-16 14:05:19

Cassandra

2022-02-14 09:00:00

SQLNoSQL數據庫

2014-06-30 14:20:05

NoSQL數據庫

2019-09-11 15:10:01

NoSQLSQL數據庫

2011-07-13 09:58:15

HBase
點贊
收藏

51CTO技術棧公眾號

国产精品三级一区二区| 国产精品黄页免费高清在线观看| 午夜诱惑痒痒网| 99riav视频在线观看| 91蜜桃网址入口| 国产伊人精品在线| 久久精品免费在线| 久久国产精品亚洲人一区二区三区| 欧美精品v日韩精品v韩国精品v| 黄色一级大片免费| 成人免费在线观看| 成人动漫中文字幕| 国产日韩精品一区二区| 激情综合网五月婷婷| 久久久久亚洲av无码a片| 亚洲 欧美 中文字幕| 中文精品电影| 一区二区国产精品视频| 性xxxxxxxxx| julia一区二区三区中文字幕| 一区二区三区在线免费| 欧美日韩成人一区二区三区| 国产夫妻自拍av| 日韩高清电影一区| 韩日精品中文字幕| 亚洲波多野结衣| 国产探花一区二区| 亚洲精品电影网在线观看| 日本中文字幕二区| 日本一道高清亚洲日美韩| 亚洲成av人影院| 激情图片qvod| 中文字幕在线免费| 国内久久精品视频| 国产精品亚洲片夜色在线| 日韩伦人妻无码| 亚洲免费二区| 中国china体内裑精亚洲片| 亚洲啪av永久无码精品放毛片 | 成人自拍视频网站| 一二三区在线播放| 日本中文在线一区| 国产极品精品在线观看| 国产又大又黄视频| 最新成人av网站| 欧美精品激情在线观看| 欧美交换国产一区内射| 一区二区免费不卡在线| 日韩在线观看视频免费| 国产精成人品免费观看| jizzjizz欧美69巨大| 亚洲丝袜在线视频| 黄免费在线观看| 国产精品亚洲片在线播放| 亚洲国产精久久久久久| 成人性生活免费看| jizz日本免费| 黄色视屏在线免费观看| 亚洲高清免费一级二级三级| www.18av.com| 阿v视频在线| 欧美视频一二三| 成人在线看视频| 欧美日韩成人影院| 欧美日韩亚洲国产综合| 国内av一区二区| 精品一区二区三区视频在线播放 | 欧美伦理在线视频| 在线色欧美三级视频| 午夜影院黄色片| 99久久精品费精品国产| 久久国产精品免费视频| 久久香蕉精品视频| 亚洲女同同性videoxma| 国产精品www| 国产精品污视频| 国产二区国产一区在线观看| 国产精品一区二区三区观看| 欧美日韩在线中文字幕| 国产精品视频观看| 成人国产在线看| 欧美激情网站| 欧美色图12p| 特种兵之深入敌后| 欧美综合自拍| 色婷婷综合成人av| 国产无遮挡裸体免费视频| 久久精品国产清高在天天线| 国产精品欧美激情在线播放| 国产视频第二页| 99精品视频一区二区| 亚洲韩国在线| 国语对白在线刺激| 欧洲激情一区二区| 午夜影院福利社| 嫩草一区二区三区| 久久躁狠狠躁夜夜爽| 国产成人在线播放视频| 久久99久久99| 久久精品国产精品国产精品污| 国产youjizz在线| 亚洲最色的网站| 久久免费成人精品视频| caopor在线视频| 国产精品99久久免费| 亚洲精品不卡在线| 国产老头老太做爰视频| 国产精品一区亚洲| 91丨九色丨国产在线| 日韩电影网址| 亚洲综合免费观看高清在线观看| 50路60路老熟妇啪啪| 999精品视频在这里| 一区二区亚洲欧洲国产日韩| 久久精品国产亚洲av香蕉| 久久99久久99精品免视看婷婷| 精品久久久久久乱码天堂| 国精产品一区| 欧美色图12p| 亚洲天堂视频一区| 极品日韩av| 91日韩在线播放| youjizz在线播放| 精品久久久久久久久久| 四川一级毛毛片| 91亚洲成人| 日韩免费视频在线观看| 视频污在线观看| 亚洲一区中文在线| 国产人妻精品久久久久野外| jvid福利在线一区二区| 国产91成人video| 可以免费观看的毛片| 亚洲男人电影天堂| 激情五月婷婷基地| 久久精品不卡| 国产精品免费网站| av在线播放网站| 在线观看亚洲一区| 97超碰在线资源| 久久只有精品| 欧美日韩精品免费观看视一区二区 | 欧美与亚洲与日本直播| 亚洲美女性生活视频| 亚洲精品1区2区3区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 中国特级黄色片| 亚洲区综合中文字幕日日| 成人黄色影片在线| 超碰个人在线| 日韩欧美一区二区三区在线| 成年人一级黄色片| 国产呦精品一区二区三区网站| 在线视频精品一区| 欧美高清一级片| 九九热99久久久国产盗摄| www.日本在线观看| 福利成人在线观看| 国产精品毛片a∨一区二区三区| 国产精品少妇在线视频| 精品国产午夜| 国产精品爽黄69天堂a| 欧洲美女少妇精品| 日韩一级二级三级| 欧美日韩中文视频| av亚洲精华国产精华| 青青草原成人网| 欧美在线电影| 国产综合色香蕉精品| av片在线观看网站| 亚洲高清一区二| 国产区一区二区三| 国产精品午夜春色av| 欧洲在线免费视频| 欧美精品入口| 久久久久久欧美精品色一二三四| 欧美va在线观看| www.亚洲天堂| 后入内射欧美99二区视频| 色综合网色综合| 国产精品成人69xxx免费视频| 国v精品久久久网| 毛片一区二区三区四区| 欧美残忍xxxx极端| 国产乱码一区| 99re久久| 国产+人+亚洲| 亚洲日本国产精品| 欧美日韩成人一区二区| 日韩欧美亚洲国产| 国产精品污网站| 18禁一区二区三区| 日本人妖一区二区| 日本一本中文字幕| 成人三级视频| 国产美女在线精品免费观看| 欧美性片在线观看| 国外成人在线直播| 日本成a人片在线观看| 亚洲第一视频网站| 亚洲最大成人av| 精品久久久久久久久久国产| 中文乱码字幕高清一区二区| 99国产精品久久久久久久久久久| 亚洲一级免费观看| 黑丝一区二区三区| 亚洲欧美一区二区原创| 久久男人av| 成人欧美在线观看| 日韩久久一区二区三区| 欧美精品videosex牲欧美| 97在线观看免费观看高清 | 国产这里只有精品| 中文字幕不卡三区视频| 久久99视频免费| 天天影视久久综合| 亚洲欧美日韩精品久久| 国精品人妻无码一区二区三区喝尿| 欧美日韩性生活| 日韩视频在线观看一区| 亚洲一区二区黄色| 国产高潮流白浆| 国产精品少妇自拍| 级毛片内射视频| 久久影院视频免费| 国产精品九九视频| 福利电影一区二区| 国产老头和老头xxxx×| 国内精品国产三级国产a久久| www.欧美日本| 久久久久久9| 国模无码视频一区二区三区| 亚洲香蕉网站| 激情五月六月婷婷| 久久久久亚洲| 91制片厂免费观看| 久久视频国产| 亚洲看片网站| 色无极亚洲影院| 日韩尤物视频| 精品大片一区二区| 婷婷久久五月天| 欧美亚洲精品在线| 色999五月色| 日韩在线二区| 中文字幕一区二区三区最新| 五月激情久久久| 午夜啪啪免费视频| 一个色综合网| 大片在线观看网站免费收看| 你懂的一区二区| 99国产精品白浆在线观看免费| 中文字幕人成人乱码| 欧美日韩dvd| 在线精品国产| 日韩av新片网| 男女精品网站| 一区二区xxx| 狠狠色丁香婷综合久久| 三级黄色片播放| 粉嫩嫩av羞羞动漫久久久| 国产女主播在线播放| 99视频一区二区| 91视频在线网站| 中文字幕不卡在线观看| 四虎永久免费地址| 亚洲线精品一区二区三区八戒| 日本a在线观看| 日本韩国一区二区| 一级黄色片视频| 精品欧美乱码久久久久久 | 一区二区精品视频在线观看| 7777精品伊人久久久大香线蕉超级流畅| 国产精品久久久午夜夜伦鲁鲁| 日韩欧美黄色影院| 五月激情丁香婷婷| 欲色天天网综合久久| av网站在线看| 欧美一级大片视频| 免费成人黄色网| 国产高清自拍一区| 国产精品手机在线播放| 女同性恋一区二区| 国产午夜精品一区二区三区欧美 | 日本一本中文字幕| 久久av最新网址| www.久久久久久久久久久| 成人黄色大片在线观看| 香蕉视频久久久| 一区二区三区加勒比av| 无码视频一区二区三区| 337p亚洲精品色噜噜狠狠| 亚洲三区在线观看无套内射| 中文字幕亚洲一区在线观看| 精品日韩av| 国产精品视频自在线| 国产91精品入| 中文有码久久| 香蕉国产精品偷在线观看不卡| www.亚洲自拍| 久久久久久久国产精品影院| 可以免费看av的网址| 欧美视频在线免费| 国产后入清纯学生妹| 一区二区三区高清国产| 9999在线视频| 91久久嫩草影院一区二区| 偷拍亚洲色图| 久草视频这里只有精品| 久久国产精品72免费观看| 国产亚洲无码精品| 一区二区在线看| 亚洲熟女乱色一区二区三区久久久| 日韩av在线最新| 性欧美videos高清hd4k| 国产日本欧美在线观看| 国产一区二区三区电影在线观看 | 久久国产99| 国偷自产av一区二区三区麻豆| 欧美国产成人精品| 五月天激情国产综合婷婷婷| 日韩欧美一区二区不卡| 秋霞a级毛片在线看| 国产精品久久久久久搜索| 欧美亚洲国产日韩| 水蜜桃色314在线观看| 国产精品一级二级三级| √天堂中文官网8在线| 欧美日韩情趣电影| av在线播放av| 国产成人精品久久二区二区| 秋霞在线一区| 国产二区视频在线| 国产91色综合久久免费分享| 国产日韩欧美在线观看视频| 欧美日韩黄色一区二区| 97电影在线看视频| 国产精品久久中文| 国产影视精品一区二区三区| 日本熟妇人妻xxxxx| 久久久国产精品不卡| 久久狠狠高潮亚洲精品| 亚洲国产日韩欧美在线99| xxx.xxx欧美| 国内精品久久国产| 国产农村妇女毛片精品久久莱园子| 又黄又爽的网站| 天天射综合影视| 日本大片在线观看| 日韩av色在线| 日韩精品水蜜桃| 色婷婷.com| 亚洲欧美偷拍三级| 亚洲经典一区二区三区| 久久久久久久999| 偷窥自拍亚洲色图精选| 欧美 激情 在线| 国产精品久久毛片av大全日韩| 中文字幕在线观看1| 久久精品一偷一偷国产| 日韩欧美高清一区二区三区| 久久这里只有精品18| 99热99精品| 特级西西444www大胆免费看| 日韩视频在线免费| 日本少妇精品亚洲第一区| 成人黄色大片网站| 91麻豆福利精品推荐| 欧美国产一级片| 久久影视电视剧免费网站清宫辞电视 | 亚洲午夜精品久久久久久高潮| 欧美伊人久久久久久午夜久久久久| 在线中文资源天堂| 91精品国产一区二区三区动漫 | 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 久久大逼视频| 日本美女xxx| 日韩视频免费观看高清在线视频| 91福利区在线观看| 三区精品视频观看| 国产福利一区在线观看| 天天操中文字幕| 最近免费中文字幕视频2019| 日韩欧美中文在线观看| 99精品人妻少妇一区二区| 中文字幕成人av| 免费看日韩av| 国产精品老女人视频| 国内自拍一区| 亚洲天堂最新地址| 精品国产一区二区精华| 88xx成人永久免费观看| 91免费国产精品| 久久精品人人做人人爽人人| japanese国产| 国产精品成人aaaaa网站| 亚洲视频一区| 日日碰狠狠添天天爽| 亚洲精品99久久久久| 欧美一级网址|