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

開源數據庫 MatrixOne 的 HTAP 分布式架構演進

數據庫 其他數據庫
本文將介紹開源分布式數據庫 MatrixOne,從 NewSQL 到現在新的 HTAP 架構的演進。NewSQL 是當年谷歌的幾篇論文衍生出來的分布式數據庫的一套理論體系。其中最重要的一點就是分布式架構,解決的是傳統數據庫的高可用以及水平擴展的難題。另外一點就是多引擎,用不同的引擎來做不同的事情。

一、Matrixone 的早期架構與難題

MatrixOne 早期的架構與現在有很大區別。早期的架構可以總結為兩個詞:一個是 NewSQL,一個是 MPP。

圖片

NewSQL 是當年谷歌的幾篇論文衍生出來的分布式數據庫的一套理論體系。其中最重要的一點就是分布式架構,解決的是傳統數據庫的高可用以及水平擴展的難題。另外一點就是多引擎,用不同的引擎來做不同的事情。

MPP 或者叫大規模并行計算,主要的用途是通過分布式的方式將一些規模比較大的計算任務分布到不同的節點,并且在計算完成之后匯總。充分利用了分布式架構的算力資源。

我們早年的架構確實也是這個樣子。上面有一個負責分發負載均衡的 proxy。下面是 MatrixOne Server,每一個 Server 下面有自己的存儲。是一個存算一體的架構,每個節點看似是對等的。當然這里面存在著一些問題。

圖片

再來看一下組件詳解。

最上面這一層我們叫 SQL 前端,是為了兼容 MySQL 的語法協議,無論用 MySQL client,還是 JDBC 都可以直接連。

計算層是傳統的 SQL Parser,支持語法樹的解析,以及多方言的 SQL。

最下面就是我們自己寫的 MPP SQL 執行器,針對基礎引擎做了一些向量化的加速,部分操作甚至用匯編語言做了改寫。當時使用了一個比較獨到的因子化加速的能力。

當時這套架構有著相當不錯的性能表現。

圖片

分布式框架這一層,叫做 MatrixCube,是一個開源的項目。提供了一個對于多臺機器的分布式存儲框架。具備高可用多副本,負載均衡強力制等基礎能力。當時設想是用它來為 Matrix 計算提供分布式事務的支持能力。里面有 Raft 協議,而且中間會有一個調度器叫做 Prophet。

圖片

最下面是計算層和存儲層。存儲層除了引擎接口之外,有三個引擎。

最中間的叫 AOE,不支持事務,可以往里寫數據,但是對于事務、去重等基本上是不支持的。最左邊的叫 TPE,用來保存元數據 catalog,它是一個非常繁忙的引擎。最右邊的叫TAE,是一個典型的列式存儲,能夠提供完整的 ACID,同時我們希望它能夠去支持比較大規模的 OLAP 能力。所以早期的一個問題是三個存儲運行,這也是后來我們為什么從架構層面整個進行重構的一個原因。

接下來講一講原有架構存在的問題。

圖片

擴展性:

  • 存算不分離,每擴展一個單位的節點,就要去擴展相應的存和算兩種資源。
  • 因為數據以3副本形式保存,只要一個節點加進去,想要真正接管計算任務的時候要先把整個存儲完成同步,預熱的時間非常長。比如我們大概有 1TB 的數據,要先等著 1TB 數據的3副本完成在這個節點上的同步,才能去開始提供所有的計算負載。

性能:

  • 因為 Raft 協議一定是有一個 leader, leader 節點容易成為熱點,很多的調度任務都從它這里走。
  • 在性能比較差的存儲下,整體性能下降會超過預期。比如我們用 SSD 做 benchmark 測試時,預計其性能是10,我們最早預想 HDD 能跑到5或者6,但是實際情況是我們在HDD 上可能跑出來的結果只有3或者4,這成為了一個性能上的瓶頸。
  • TPE、 AOE、TAE三個引擎,用途不同而且性能也不一樣,經常會出現在某一個業務場景三個引擎當中的一個成為了整個性能的瓶頸。

成本:

  • 節點規模越大,成本線性增長,負擔越來越重,到了公有云上,有的公有云提供了一個高可用的方案,就成了殼子套殼子,就不是線性而是指數級增長了??赡芪乙?個節點的時候,數據庫里存了9副本。然后在公有云又可能做了一個3層冗余那就是27層。到后面客戶所承擔的成本負擔實在是太重了。
  • 只有高配存儲才能發揮出預期,性能較差的存儲架構發揮不出來我們想要的性能特性的時候,只能通過不斷增加存儲成本的方式來滿足需求。

二、Matrixone 架構升級之路

面對這些問題,從2022年3月開始,我們對整個架構進行了升級。其實我們是從0.5開始的,0.1到0.4還是在探索,不斷思考不斷試錯,直到0.5的時候,我們終于意識到這個架構走不下去了。

圖片

原有架構存在三座大山。

第一座是分布式框架:

  • 多副本存儲帶來存儲成本的飆升。
  • Leader 選舉,人為制造了熱點。

第二座是引擎眾多:

  • 三個存儲引擎彼此之間的代碼復用率非常低,一個新的功能,代碼的維護量是3倍;
  • 因子化算法過于激進,除了主開能夠駕馭這個算法,其他同事參與度非常低,只能做一些輔助,加一個功能都會非常困難。

第三座是資源分配:

  • 存算不分,做各種資源配比的時候,不同業務場景的隔離性非常差。
  • Share-nothing 架構,擴展性非常差。必須同時擴展存和算兩種資源。

在總結出這三大根本問題之后,我們開始做架構升級。

圖片

左側圖可以看到,一層套一層,各層之間又是強依賴的關系,所以第一步就要先把各層徹底打散,做一個更加靈活解耦的整體架構。

最后我們將存儲層單獨做了一層,可以使用各種存儲,并把所有的cache服務放在存儲層來做。

最上面是計算層。所有的 MPP 以上的無論是前端還是 Parser,或是執行器,全都放到計算層。

中間我們開發了一個新的層,叫做事務層,可以看作 log service。與傳統關系數據庫中的 Redo 或者 PG 里的 WAL 日志非常類似。而我們還有一個事務節點 DN,專門用來做事務服務,因為我們是一個分布式數據庫,涉及到分布式的事務裁決,包括去重、落盤等任務。所以最終選擇開發一個單獨的事務層來專門處理這些東西。

圖片

三個存儲引擎中,我們認為留下 TAE 最合適,它能夠提供基于列存的 TP 引擎,并且可以做到完整的事務的原子性、一致性、隔離性和數據一致性,完整的 OLAP 能力,所以是最適合用于新架構的一個引擎,剩下兩個引擎的一些功能想辦法融到TAE里。所以最終我們看到的是 TAE,它是用列式的編碼來存 column family,可以在行和列之間靈活切換。這樣做的好處是,可以同時運行 TP 和 AP 的負載,因為我們經常說行存更適合 TP,列存更適合 AP,現在做一個轉換之后,行和列就都能夠兼顧到了。另外,所有的表都能夠實現表級別的快照事務隔離。并且支持主鍵、唯一鍵排序、外鍵索引。

前文提到,數據要保存三副本,而且每個副本在數據庫里面是以分片的形式保存,用操作系統自帶的 cache 來完成冷熱數據的管理。新架構有一個新的要求,就是冷熱數據盡量分離,讀寫請求分離,實現對存儲的精細化管理。所以最后我們選擇了 AWS 的 S3 對象存儲,私有化部署提供 S3 的協議兼容的對象存儲。熱數據保存在計算節點的緩存cache 上,所有的節點都實現了無狀態。并發能力可以通過多啟動幾個計算節點來線性提升。三個層級之間不再過度依賴。

圖片

分布式存儲完成之后,就是計算層。之前是因子化算法構建執行計劃,做復雜的查詢加速,主要是提高AP性能。但表達式和節點的抽象與表述過于復雜,增加修改功能難度很大。并且多個引擎之間的代碼復用率太低,導致工作量成倍增長。所以我們開發了新的 MPP 執行引擎,基于 DAG 來構建執行計劃,能夠實現節點內和節點之間的自適應調度。同時能夠滿足并行和并發兩種請求,因為我們都知道并行是 AP,并發是 TP,通常大家會這么去處理。而且 SQL 能力得到了完善,具備了子查詢、窗口函數、CTE,還有內存溢出等能力。未來的優化空間更大,無論是我們的主開還是其他的計算組成員都可以進行優化加新功能。

圖片

下面來看一下現在總體的架構。

最下面是 File Service,這是一個統一的文件讀寫的服務接口,它能夠從 S3 對象存儲去讀數據,并且把這些數據推給日志、計算節點或者事務節點等等。而且事務節點和計算節點的日志又可以通過它去寫 S3。所有的節點只需要與 File Service 打交道,就能夠完成對存儲的讀寫。全量的存儲都可以保存在 S3 上,公有云版的 S3 成本非常低,并且可以無限伸縮。上面的事務層,有兩個 DN 節點專門負責管理日志服務和元數據。平時會在里面緩存元數據,做一些事務裁決,并且會指揮 log service 的日志服務來落盤寫數據。它自己就是通過三副本的方式來保證從日志級別上的高可用,這里還有一個 Logtail,后面會詳細解釋 Logtail 和現在的落盤的數據之間是如何共同完成數據寫的過程的。

最上面是我們所有 Severless 的計算節點,叫 CN 節點。計算節點是完全無狀態的,每個計算節點有自己的 cache,好處是如果計算的負載比較高就可以多起幾個 CN,如果業務比較少,就可以把節點全都宕機,節省一些成本。

圖片

存儲層 TAE 完全實現了列存。大家可看到從數據庫到表,再到 segment,再往下是很多列,列的單位是列級別的 block。一次讀的時候,會從一個列里面去讀一些行作為一個 block,推給上面的計算節點或者日志節點。

圖片

大家可能會比較關心如何在 AP 和 TP 之間找到一個平衡點,現在默認建一張表,都是列。如果某些表想要強化一下行存的性能,我們建一個叫做 column family,對某一些行做一些特殊的優化,對一些可能需要頻繁在上面做索引,或者需要更新的列,通過 column family 列的方式能夠大幅提升其TP性能,最終只需要存一個副本。我們在表上做好一些優化之后,就可以實現行存和列存在各自性能上的優勢。這個 column family 現在還正在開發當中,會在未來的一兩個版本迭代之后推出一個最初的版本。

圖片

計算方面,實現了節點之間的調度。上圖中可以看到,所有的計算節點之間都有個雙箭頭,含義是比如從最左邊的計算節點進來,需要去做一個數據的查詢,但是我發現 cache 里面沒有想要的數據,就會遍歷所有其它計算節點去找想要的數據;如果找到,就直接在那個節點里面把計算任務完成,再把結果返回到最初的接受請求的節點。這樣的好處是最大限度地利用了不同節點緩存不同的熱數據。對于一些常用的查詢,會有非常大的性能提升。而且現在我們的計算節點,除了緩存以外,上面還有一個自己寫的pipeline,將很多的 SQL 請求拆解成為物理執行計劃來執行。上面是目前正在開發的一個優化器,而最上面就是我們一直在迭代的代碼復用最多的 MySQL 級別的 Parser。能夠對語法做一些解析,同時還能夠去做一些方言上的支持。比如對 PG 的語法和方言的支持,其實都是用 MySQL Parser 來做的。

三、Matrixone 架構升級的困難與收獲

接下來介紹我們在架構升級中遇到的困難,和解決方案。

圖片

第一個難題是如何尋找一個能夠對高性能計算引擎匹配的存儲。兩個核心的需求:

  • 一個是更少的冗余。
  • 一個是更低的使用成本。

經過很多的論證之后我們發現,AWS 的 S3 對象存儲能夠完美地匹配我們這兩個核心需求。比如我們現在整個單副本,在AWA基本上是一點幾個副本。多了約20%的冗余,成本比起之前的三副本大幅下降。使用上,現在匹配 S3 的各種接口,各種方式開發都已經慢慢的成熟起來,還有 S3 自帶的冷熱分離,一方面將冷數據放在 S3 里面降低成本,而熱數據放到計算節點上,基本上完成了用更低的成本來實現冷熱數據分離。

圖片

第二個難題就是事務層的分工,分布式數據庫的分布式事務始終是一個非常大的難點,一開始我們希望我們的 CN,即計算節點只負責計算,所有的事務 ID 生成,事務裁決,還有一致性隔離性,包括數據的讀寫全都由 DN 也就是事務節點來完成。所有的沖突檢測、約束完整性也都由 DN 來完成。但是后來發現,DN 會成為瓶頸。因為我們平時啟動的事務節點的數量遠遠少于計算節點的數量,如果事務節點起的多了,在事務裁決上多個事物節點之間同步又會出現問題。所以當時 DN 成為了一個瓶頸。

于是我們做的第一件事情是引入了 Logtail 的概念。我們平時寫數據時首先把數據這個操作寫到日志里,然后再落盤去寫。這樣的好處是如果寫的過程當中發生宕機,我們只需要回放日志,就可以保證數據最終還是可以落盤的?,F在在日志里保存數據 Logtail,然后 Logtail 會定期把這部分數據寫入到 S3 對象存儲,就不需要頻繁地去寫。這樣的好處就是我們在寫的時候,不再局限于整個 DN 的寫的性能。DN 只需要攢夠一大批一起往里寫一次。當 DN 不怎么忙的時候,可以選擇在自己不怎么忙的時候把它寫進去。忙的話就全都緩存在 Logtail 里,這樣 CN 只需要負責所有的事務和事務邏輯,還有計算。DN 既保留最近一段的數據,同時又負責日志服務,這樣就把 DN 在一定程度上解放了出來,使得寫入動作的上限被打破了。但是還面臨一個問題,就是事務量非常大的時候怎么樣保證寫的性能。當時我們選擇一個新的策略,如果批量寫入一大批數據,比如一下寫入幾百兆的數據的時候,我們不再通過日志,而是直接往對象S3里寫。只是告訴日志服務我要通過什么樣的操作,在哪個文件里寫什么東西。而那些比較小的事務,比如只是更新一兩行數據,或者插入一個新數據,仍然還是走原來的從計算節點到事務節點再到對象存儲這樣一個過程。并且現在我們將約束完整性和沖突檢測,都放在了 CN 來做。就在一定程度上讓事務 DN 節點更加的靈活,整個的負載更輕。寫入性能可以得到明顯的提升。

圖片

現在還面臨一個問題,就是我們如何實現不同業務類型的負載工作。工作負載的隔離,按照現在的架構,首先計算節點先把數據推給事務節點,事務節點再通過日志寫到 S3 里。如果是 OLAP 負載,可能直接從 S3 里面去讀數據來進行計算就可以了。我們現在選擇的方式是用不同的 CN 節點來跑不同的東西。比如成立第一個 CN 組,只跑 TP 業務,第二個 CN 組,只跑 AP 業務,實現計算節點之間的隔離。當然如果系統比較重要,預算比較充裕,那可以選擇用機器做服務器級別的隔離,用物理機來部署不同的計算節點。如果想用低成本的機器跑,我們也提供了容器級別的隔離,容器級別可以實現數據和負載的完全隔離。

圖片

我們現在首先做了標簽化。比如圖中有三個打了 AP 的標簽,一個打了 TP 的標簽。當一個會話進來的時候,優化器會先去判斷它是一個 AP 請求還是 TP 請求。如果是 TP 請求,就進TP的計算節點,如果是 AP 就進 AP 的計算節點。這樣的好處就是不會出現兩種業務上的資源公用。哪邊業務更高,我就選擇對哪一邊分配更多的資源。未來還會實現自動的負載均衡。比如利用優化器,通過某一段時間的統計信息來判斷最近可能TP業務更多一些,那么就自動擴容一些 TP 的計算節點,AP 更多的話就自動擴容一些AP的節點。目前公測的0.8版,主要提供給用戶的是手動的通過配置標簽的方式,讓用戶把自己的不同類型的負載打到不同的計算節點上來實現。

圖片

我們在整個升級過程中,進行了一些技術上的復盤,總結了其中的收獲。

我們對一條 SQL 從客戶端進入服務器再到完成執行的整個過程進行了重構。對 SQL 的執行有了更深刻的理解,對執行計劃、SQL 標準有了更多的認識。

之前我們是多引擎,有的引擎開發的時候不需要考慮事務的 ACID。現在則不同,每一條都要考慮事務的四個特性。

在開發事務層的時候,對 CN 和 DN 的適配有了更多的經驗積累。作為分布式事務到底該怎么分工,既能夠保證完成事務的 ACID,同時又能夠保證讓系統的架構和系統的負載不會出現明顯的短板。我們經過反復的驗證,最終引入 Logtail。并且 CN 和 DN 一個只負責元數據,另外一個負責計算和邏輯以及去重。我們還發現 Logtail 還有一個好處,就是可以實現不同的計算節點對這一部分數據的共享,不需要再從對象存儲里直接 load。

存儲層,積累了對S3對象存儲的開發經驗。另外,我們現在自己的file service文件服務基本上已開發完成,很多時候使用不同類型的存儲,不再需要考慮接口要怎么寫,或是兼容性和性能,統一交給file service去實現即可。

四、總結

最后進行一下總結。

圖片

首先,實現了從存算一體到計算、事務、存儲三層解耦。存算一體的分布式架構有著其自身的優勢,但是存在一些問題,比如容易制造熱點,成本較高等等。我們完成了三層的解耦之后,每一個層級可以自行進行擴縮容,不再依賴于其它層面。這種靈活解耦的架構,在不同的業務需求上,可以得到不同的最佳實踐。比如有些業務,可能需要更多的計算資源,可以直接加計算資源。

第二,實現了從多引擎到單一 TAE 的 HTAP 融合引擎。多引擎要維護大量代碼,并且要考慮每個引擎的特性之間如何搭配。而單引擎,無論工作量還是成本都有所降低。

第三,實現了因子化算法到 DAG。

第四,實現了從多副本存儲到對象存儲與 Logtail 的引入。存儲成本降到了原來的1/3左右。

第五,實現了靈活調整節點分配帶來的資源隔離。一方面存算分離,可以更加靈活地分配資源。另外通過標簽的方式,將一些請求強制隔離到不同的節點上,避免了不同業務類型對資源的征用。

如果希望進一步了解或探討,歡迎大家關注我們的企業服務號或加入微信群,會有很多干貨,以及我們最新的進展在上面發布。

圖片

最后,介紹一下我們公司現在在做的 Beta Program 用戶體驗計劃。這是我們為一些即將有合作意向的客戶提供的一個專屬的計劃。參與該計劃,可以獲得最新的功能發布信息;并且可能得到匹配您的業務場景的定制;甚至可以參與到產品的設計當中。

目前0.8版本,處于 Beta program 階段,我們會在第三季度發布正式版。我們現在也提供了公有云版,處于公開招募階段。如果感興趣,也可以申請使用。目前我們使用的是serverless計劃,可以在上面跑一些 TBC 或者 TBCC 這種比較常見的 benchmark。如果您有一些基于 MySQL 開發的應用程序,可以在我們的產品上面進行測試。

以上就是本次分享的內容,謝謝大家。

五、Q&A

Q1.:后期有沒有計劃接入更多的存儲引擎,比如 minio,或者是 HDFS 之類的引擎?

A1:我們現在私有化的場景就是以 minio 作為私有化部署的方案,當然整個對象存儲也會越來越多。在 minio 比較成熟以后,我們也會選擇更多的存儲對象來支持?,F階段我們的標準的私有化版本是 minio,公有云版本是 S3 或者阿里云的 OSS。

Q2:對企業級用戶是否有定制化的支持,比如對于解決方案的設計,運維的設計等等。

A2:是有的。首先我們現在企業付費用戶,會有一個單獨的運維工具,可以更好地進行集群管理、私有管控等等。如果需要定制化的設計開發,或者一些應用程序的優化等需求,也可以聯系我們。

Q3:為什么設計成單獨的存儲,Logtail 不放在統一的存儲層?

A3:我們給 Logtail 配的是比較好的存儲,直接在里面緩存的時候,往里寫的性能比S3要更好。相當于起到一個中轉作用。另外,Logtail 存在 DN 里面的話,不同的 CN 只要數據沒有落盤沒有被 truncate 之前,所有的 CN 都可以共享。比如恰好就需要 Logtail 數據的時候,直接從 Logtail 里讀不需要再走 S3,這樣在一定程度上也就實現了對 CN 的加速。

Q4:怎么體現冷熱跟讀寫分離?

A4:首先,S3 自身提供了一個冷熱數據分離的機制。它可能讀取速度會比冷數據稍微快一些。其次,我們在每一個節點上,不管是 DN 還是 CN,也放了自己的緩沖區。允許用戶把一些常用的數據放在自己的內存里,如果除了內存以外,在每個節點上再配一塊高性能盤,再緩存一些數據,其實也可以做。實際上冷熱數據實現了多機分離。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2023-12-18 09:03:53

MatrixOneNewSQL數據庫

2023-08-01 08:02:06

2023-03-26 12:43:31

數據庫KeyValue

2018-04-03 09:27:42

分布式架構系統

2022-05-31 07:58:49

TiDB數據庫開源

2021-04-27 19:24:22

PingCAPHTAP數據庫

2022-05-20 08:12:02

數據庫HTAP場景

2022-03-25 08:40:32

分布式架構

2023-08-27 16:11:35

數據庫分布式事務數據庫

2023-03-07 09:49:04

分布式數據庫

2023-12-11 09:11:14

TDSQL技術架構

2021-11-29 08:18:22

架構互聯網分布式

2014-06-30 14:20:05

NoSQL數據庫

2021-11-08 10:52:02

數據庫分布式技術

2020-04-14 11:14:02

PostgreSQL分布式數據庫

2022-09-01 07:23:53

云原生數據庫Aurora

2023-07-28 07:56:45

分布式數據庫SQL

2015-06-16 10:39:43

NoSQL分布式算法

2023-07-31 08:27:55

分布式數據庫架構
點贊
收藏

51CTO技術棧公眾號

大胆国模一区二区三区| 成人免费公开视频| 日韩精品dvd| 欧美性感一区二区三区| 亚洲国产精品一区在线观看不卡| 国产视频1区2区| 第一会所sis001亚洲| 欧美色图一区二区三区| 热舞福利精品大尺度视频| 97成人在线观看| 亚洲综合社区| 久久国产视频网站| 中文字幕在线看高清电影| 国产一区二区三区黄网站| 精品久久久久久久久久久久久久| 亚洲精品乱码久久久久久蜜桃91| 亚洲欧美国产高清va在线播放| 日韩主播视频在线| 欧美大片在线影院| 毛片aaaaaa| 精品亚洲精品| 欧美一区日韩一区| 国产v亚洲v天堂无码久久久| 久草免费在线色站| 亚洲国产精品v| 精品视频一区二区三区四区| 99久久精品日本一区二区免费| 噜噜噜在线观看免费视频日韩| 欧美成人中文字幕| 丁香激情五月少妇| 西瓜成人精品人成网站| 日韩美女一区二区三区四区| 香蕉视频禁止18| 中国字幕a在线看韩国电影| 亚洲一二三四区不卡| 亚洲午夜精品久久久中文影院av| 美国一级片在线免费观看视频| 粉嫩绯色av一区二区在线观看 | 美女被到爽高潮视频| 一级毛片精品毛片| 91精品国产手机| 最新中文字幕免费视频| 欧美成人影院| 欧美视频在线免费| 欧美啪啪免费视频| 国产羞羞视频在线播放| 有码一区二区三区| 丰满人妻一区二区三区53号| 欧美成人精品一区二区男人看| 国产日韩欧美不卡| 欧洲精品国产| 九色蝌蚪在线| 国产日韩三级在线| 日本一区高清在线视频| 国产无套粉嫩白浆在线2022年| 91在线精品秘密一区二区| 国产一区二区无遮挡| 丁香花免费高清完整在线播放| 国产精品资源在线观看| 国产精品丝袜久久久久久高清| 亚洲av综合一区| 日韩av中文在线观看| 国产精品福利在线观看| 伊人久久久久久久久久久久| 久久天堂成人| 国产精品电影网站| ,亚洲人成毛片在线播放| 另类成人小视频在线| 成人在线中文字幕| 99久久精品国产一区色| 成人晚上爱看视频| 免费看成人午夜电影| 国产在线中文字幕| 国产精品久久久久久福利一牛影视| 亚洲国产日韩欧美| 中文字幕伦理免费在线视频 | 欧美日韩激情电影| 欧美久久久久免费| 人妻互换一二三区激情视频| 久久久伦理片| 妖精视频一区二区三区| 成人免费高清| 久久先锋影音av鲁色资源网| 欧美视频1区| 婷婷激情在线| 亚洲国产成人tv| avav在线看| 亚洲国产综合在线观看| 日韩欧美一二三四区| 国产熟女高潮一区二区三区 | 午夜一区不卡| 国产成人精品日本亚洲| 国产精品怡红院| av电影天堂一区二区在线观看| 久久精品一区二区三区不卡免费视频| 福利视频在线播放| 一区二区三区日韩在线观看| 免费看的黄色大片| 亚洲国产伊人| 日韩精品在线影院| 久久国产高清视频| 亚洲一区二区三区四区五区午夜| 国产欧洲精品视频| 欧美一级特黄aaaaaa| 欧美激情自拍偷拍| 九九热只有这里有精品| 成人国产精品入口免费视频| 亚洲精品在线一区二区| www.涩涩爱| 国产欧美欧美| 成人在线播放av| 欧美美女搞黄| 亚洲国产成人porn| 中文字幕22页| 欧美猛男做受videos| 麻豆成人在线看| 波多野结衣一区二区三区四区| 国产v日产∨综合v精品视频| 亚洲国产精品综合| 亚洲精品国产精品国产| 欧美成人性战久久| 久久一级免费视频| 狂野欧美一区| 精品网站在线看| 国产网红在线观看| 欧美一区二区三区的| 亚洲天堂精品一区| 老司机午夜免费精品视频| 国产精品免费一区二区三区四区 | 一区二区三区四区高清视频| 在线日韩中文字幕| 中文字幕精品无码一区二区| 国产成人aaa| 91视频成人免费| 九九热这里有精品| 国产性色av一区二区| 亚洲永久精品在线观看| 波多野结衣精品在线| 亚洲黄色网址在线观看| 日韩黄色碟片| 久久精彩免费视频| 91成人国产综合久久精品| 久久精品视频一区二区| 大肉大捧一进一出好爽动态图| 欧美xxxx在线| 欧美亚洲国产日本| 亚洲色图另类小说| 天天色综合天天| 一区二区免费在线观看视频| 日韩视频不卡| 久久av免费一区| 理论不卡电影大全神| 亚洲精品456在线播放狼人| 久久免费视频播放| jiyouzz国产精品久久| 国产亚洲黄色片| 97一区二区国产好的精华液| 久久久亚洲国产天美传媒修理工| 亚洲第一视频在线播放| 亚洲国产日韩a在线播放| 亚洲视频 中文字幕| 国产日韩亚洲欧美精品| 任我爽在线视频精品一| 欧美亚洲人成在线| 欧美成人精品在线视频| 精品久久无码中文字幕| 亚洲777理论| 日本少妇色视频| 日本亚洲天堂网| 四虎影院一区二区| 97久久精品| 清纯唯美日韩制服另类| 国产人成在线视频| 538在线一区二区精品国产| 暗呦丨小u女国产精品| 粉嫩aⅴ一区二区三区四区五区 | 日韩av片在线免费观看| 久草精品在线观看| bt天堂新版中文在线地址| 婷婷成人综合| 国产一区视频在线播放| 男女在线视频| 亚洲片在线资源| 国产露脸无套对白在线播放| 亚洲午夜私人影院| 大又大又粗又硬又爽少妇毛片| 蜜臀av在线播放一区二区三区| 中文字幕精品在线播放| 另类ts人妖一区二区三区| 国产精品精品久久久久久| 四虎影院观看视频在线观看| 精品无码久久久久久国产| 一本色道久久综合亚洲| 亚洲国产你懂的| 综合 欧美 亚洲日本| 波多野结衣在线一区| 日本肉体xxxx裸体xxx免费| 国内精品美女在线观看| 日本中文不卡| 大桥未久女教师av一区二区| 国产精品第8页| 91福利在线尤物| www.久久久久久.com| 色视频在线观看免费| 91麻豆精品国产91久久久 | 丁香婷婷久久久综合精品国产| 中文字幕色婷婷在线视频| 久久精品亚洲一区| 可以免费看污视频的网站在线| 日韩欧美一级二级三级 | 欧美一区二视频| 精品人妻一区二区三区潮喷在线| 伊人夜夜躁av伊人久久| 公肉吊粗大爽色翁浪妇视频| 成人免费视频一区| 日韩av.com| 日日摸夜夜添夜夜添精品视频| 欧美视频在线第一页| 日韩一区三区| 日本欧美色综合网站免费| 中文字幕区一区二区三| 国产自产女人91一区在线观看| 涩涩视频在线免费看| 欧美激情影音先锋| 中文在线字幕免费观看| 日韩在线观看免费高清| 蜜桃视频在线入口www| 亚洲精品99999| 国产高清免费在线观看| 7777精品伊人久久久大香线蕉完整版| 国产午夜精品久久久久| 亚洲成人午夜影院| 激情小说中文字幕| 亚洲视频综合在线| 人人艹在线视频| 国产视频视频一区| 在线不卡av电影| 2020日本不卡一区二区视频| 西西大胆午夜视频| 99久免费精品视频在线观看| 亚洲av无码一区东京热久久| 国产精品 日产精品 欧美精品| 99re6在线观看| 麻豆精品视频在线| 香港日本韩国三级网站| 日韩激情一区二区| 天天干天天干天天干天天干天天干| 久久久久99| 国产女女做受ⅹxx高潮| 久久性色av| 青青青在线视频免费观看| 丝袜a∨在线一区二区三区不卡| www黄色av| 男人的天堂亚洲| 国产成人精品无码播放| 日韩不卡一二三区| www.com黄色片| 国产一二三精品| 久久久久无码国产精品一区李宗瑞 | 久久女同精品一区二区| 欧美做受xxxxxⅹ性视频| 国产欧美日韩综合| 国产wwwwxxxx| 亚洲精品精品亚洲| 免费一级特黄特色大片| 午夜精品一区二区三区三上悠亚| 国产 欧美 日韩 在线| 精品久久久久久中文字幕一区奶水| 日本一级片免费看| 在线亚洲+欧美+日本专区| 中文字幕777| 91麻豆精品国产综合久久久久久| 精品人妻一区二区三区蜜桃 | 国产啪精品视频| 亚洲1区在线| 久久99精品国产一区二区三区| 要久久爱电视剧全集完整观看| 日本一区视频在线| 97精品视频在线看| 黄色片免费在线观看视频| 中国女人久久久| 亚洲欧美日韩一级| 国产成人av福利| 男女黄床上色视频| 中文字幕一区不卡| 国产一级在线免费观看| 色婷婷精品大视频在线蜜桃视频| 一区二区视频在线免费观看| 日韩无一区二区| 九九九伊在人线综合| 久久精品亚洲94久久精品| 国产免费拔擦拔擦8x高清在线人| 国产精品激情av电影在线观看| 高清在线一区二区| 久久久久资源| 夜间精品视频| 91蝌蚪视频在线观看| 国产成人精品影视| 久久人人妻人人人人妻性色av| 日韩一区在线免费观看| 国产网址在线观看| 精品视频在线免费观看| 日韩中文字幕观看| xvideos亚洲人网站| 川上优av中文字幕一区二区| 国产欧美日韩综合精品| 日韩电影不卡一区| 欧洲金发美女大战黑人| 视频一区视频二区中文字幕| 年下总裁被打光屁股sp| 国产精品第13页| 国产在线观看黄色| 日韩三级免费观看| 91精彩视频在线播放| 97国产suv精品一区二区62| 成人亚洲精品| 色综合久久久久久久久五月| 在线欧美亚洲| www.久久com| 中文无字幕一区二区三区| 欧美bbbbbbbbbbbb精品| 欧美岛国在线观看| 精品51国产黑色丝袜高跟鞋| 国产精品99久久久久久www| 青青视频一区二区| 男的插女的下面视频| 国产一区美女在线| 在线免费看视频| 在线视频国内一区二区| 四虎在线视频| 亚洲2020天天堂在线观看| 99久久人爽人人添人人澡 | 在线成人欧美| 少妇熟女视频一区二区三区 | 美女福利一区二区| 国产青春久久久国产毛片| 欧美成人午夜| www.偷拍.com| 一区二区三区中文在线| 999av视频| 久久久精品美女| 成人51免费| 艳母动漫在线免费观看| 久久99久国产精品黄毛片色诱| 国产三级在线观看完整版| 在线亚洲人成电影网站色www| 青青操视频在线| 日本电影亚洲天堂| 亚洲专区视频| 黄色一级免费大片| 久久日韩视频| 色欧美乱欧美15图片| 天天综合天天色| 91精品国产91久久久久福利| 欧美日韩导航| 黑鬼大战白妞高潮喷白浆| 国产视频亚洲色图| 一级黄色短视频| 久久精品欧美视频| 欧美大片91| 国产一级爱c视频| 91麻豆产精品久久久久久| 青青操免费在线视频| 日韩精品在线第一页| 电影天堂国产精品| 杨幂一区欧美专区| 国产成人免费高清| 三级视频在线观看| 中文字幕一精品亚洲无线一区| 日韩大陆av| 日本福利视频网站| av在线综合网| 最近国语视频在线观看免费播放| 日韩中文字幕免费看| 免费观看亚洲天堂| 久草热视频在线观看| 国产婷婷一区二区| 国产伦理吴梦梦伦理| 午夜精品福利电影| 沈樵精品国产成av片| 中文字幕视频三区| 亚洲国产一区二区三区 | 丁香久久综合| 亚洲免费视频播放| 99视频在线精品| 一区精品在线观看| 久久久久久久久91| 狠狠色狠狠色综合婷婷tag| 国产精品自在自线| 欧美日韩国产专区| 久做在线视频免费观看| 国产午夜精品在线| 奇米888四色在线精品| 久久久.www| 国产亚洲视频在线观看| 日韩精品免费视频一区二区三区| 日韩精品一区二区三区久久| 中文字幕亚洲不卡| 日韩av成人| www.成人av|