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

支撐現代分布式存儲系統的算法

存儲 存儲軟件 分布式 算法
隨著應用程序處理的數據量不斷增長,擴展存儲變得愈發具有挑戰性。每個數據庫系統都有自己的方案。為了從這些方案中做出正確的選擇,了解它們是至關重要的。

 隨著應用程序處理的數據量不斷增長,擴展存儲變得愈發具有挑戰性。每個數據庫系統都有自己的方案。為了從這些方案中做出正確的選擇,了解它們是至關重要的。

每個應用程序在讀寫負載平衡、一致性、延遲和訪問模式方面各不相同。熟悉數據庫和底層存儲能幫助你進行架構決策、解釋系統行為、排除故障以及根據具體情況調優。

[[265061]]

優化一個系統不可能做到面面俱到。我們當然希望有一個數據結構既能保證***的讀寫性能,又不需要任何存儲開銷,但顯然,這是不存在的。

本文深入討論了大多數現代數據庫中使用的兩種存儲系統設計 —— 讀優化 B-Tree [1] 和寫優化 LSM(log-structured merge)-Tree [5] —— 并描述了它們的用例和優缺權衡。

B-Tree

B-Tree 是一種流行的讀優化索引數據結構,是二叉樹的泛化。它有許多變種,并且被用于多種數據庫(包括 MySQL InnoDB [4]、PostgreSQL [7])甚至文件系統(HFS+ [8]、HTrees ext4 [9])。B-Tree 中的 B 代表原始數據結構的作者 Bayer,或是他當時就職的公司 Boeing。

在搜索二叉樹中,每個節點都有兩個孩子(稱為左右孩子)。左子樹的節點值小于當前節點值,右子樹反之。為了保持樹的深度最小,搜索二叉樹必須是平衡的:當隨機順序的值被添加到樹中時,如果不加調整,終會導致樹的傾斜。

一種平衡二叉樹的方法是所謂的旋轉:重新排列節點,將較深子樹的父節點向下推到其子節點下方,并將該子節點拉上來,將其放在原父節點的位置。圖 1 是平衡二叉樹中的旋轉示例。在左側添加節點 2 后,二叉樹失去平衡。為了使該樹平衡,將其以節點 3 為軸旋轉(樹圍繞它旋轉)。然后節點 5(旋轉前是根節點和節點 3 的父節點)成為其子節點。旋轉完成后,左側子樹的深度減少 1,右側子樹的深度增加 1。樹的***深度已經減小。

 

支撐現代分布式存儲系統的算法

 

二叉樹是最有用的內存數據結構。然而由于平衡(保持所有子樹的深度最小)和低出度(每個節點最多兩個子節點),它們在磁盤上水土不服。B-Tree 允許每個節點存儲兩個以上的指針,并通過將節點大小與頁面大小(例如,4 KB)進行匹配來與塊設備協同工作。今天的一些實現將使用更大的節點大小,跨越多個頁面。

B-Tree 有以下幾個性質:

• 有序。這允許順序掃描并簡化查找。

• 自平衡。在插入和刪除時不需要平衡樹:當 B-Tree 節點已滿時,它被分成兩部分,并且當相鄰節點的利用率低于某個閾值時,合并這兩個節點。這也意味著各葉子節點與根節點的距離相等,并且在查找過程中定位的步數是相同的。

• 對數級查找時間復雜度。查找時間是非常重要的,這使得 B-Tree 成為數據庫索引的理想選擇。

• 易變。插入、更新、刪除(包括因此導致的拆分和合并)過程在磁盤上進行。為了使就地更新成為可能,需要一定的空間開銷。B-Tree 可以作為聚集索引,實際數據存儲在葉子節點上,也可以作為非聚集索引,稱為一個堆文件。

本文討論的 B+Tree [3] 是一種經常用于數據庫存儲的 B-Tree 現代變種。B+Tree 與原始 B-Tree [1] 的不同之處在于:(1)它采用額外鏈接的葉節點存儲值;(2)值不能存儲在內部節點上。

剖析 B-Tree

我們先來仔細看看 B-Tree 的結構,如圖 2 所示。B-Tree 的節點有幾種類型:根節點,內部節點和葉子節點。根節點(頂部)是沒有雙親的節點(即,它不是任何節點的子節點)。內部節點(中間)有雙親和孩子節點;他們將根節點和葉子節點連接起來。葉子節點(底部)持有數據并且沒有孩子節點。圖 2 描繪了分支因子為 4(4 個指針,內部節點中有 3 個鍵,葉上有 4 個鍵/值對)的 B-Tree。

 

支撐現代分布式存儲系統的算法

 

B-Tree 的特性如下:

• 分支因子 —— 指向子節點的指針數(N)。除指針外,根節點和內部節點還持有 N-1 個鍵。

• 利用率 —— 節點當前持有的指向子節點的指針數量與可用***值之比。例如,若某樹分支因子是 N,且其中某節點當前持有 N/2 個指針,則該節點利用率為 50%。

• 高度 —— B-Tree 的數量級,表示在查找過程中必須經過多少指針。

樹中的每個非葉節點最多可持有 N 個鍵(索引條目),這些鍵將樹分為 N+1 個子樹,這些子樹可以通過相應的指針定位。項 Ki 中的指針 i 指向某子樹,該子樹中包含所有 Ki-1 <= K目標 < Ki(其中 K 是一組鍵)的索引項。首尾指針是特殊的,它們指向的子樹中所有的項都小于等于最左子節點的 K0 或大于最右子節點的 KN-1。葉子節點同時持有其同級前后節點的指針,形成兄弟節點間的雙向鏈表。所有節點中的鍵總是有序的。

查找

進行查找時,將從根節點開始搜索,并經過內部節點遞歸向下到葉子節點層。在每層中,通過指向子節點的指針將搜索范圍縮小到某子樹(包含搜索目標值的子樹)。圖 3 展示了 B-Tree 的一次從根到葉的搜索過程,指針在兩個鍵之間,其中一個大于(或等于)搜索目標,另一個小于搜索目標。進行點查詢時,搜索將在定位到葉子節點后完成。進行范圍掃描時,遍歷所找到的葉子節點的鍵和值,然后遍歷范圍內的兄弟葉子節點。

支撐現代分布式存儲系統的算法

在復雜度方面,B-Tree 保證查詢的時間復雜度為 log(n),因為查找一個節點中的鍵使用二分查找,如圖 4 所示。二進制搜索可以通俗的解釋為在字典中查找以某字母開頭的單詞,字典中所有單詞都按字母順序排序。首先你翻開正好在字典中間的一頁。如果要查找的單詞字母順序小于(在前面)當前頁,你繼續在字典的左半邊查找;否則就繼續在右半邊查找。你繼續像這樣將剩余的頁碼范圍分為一半,選擇一邊,直到找到期望的字母。每一步都將搜索范圍減半,因此查找的時間復雜度為對數級。 B-Tree 節點上的鍵是有序的,且使用二分查找算法進行匹配,因此 B-Tree 的搜索復雜度是對數級的。這也說明了保持樹的高利用率和統一訪問的重要性。

支撐現代分布式存儲系統的算法

插入、更新、刪除

進行插入時,***步是定位目標葉子節點。此過程使用前序搜索算法。在定位目標葉子節點后,鍵和值將被添加至該節點。如果該節點沒有足夠的可用空間,這種情況稱為溢出,則將葉子節點分割成兩部分。這是通過分配一個新的葉子節點,將一半元素移動到新節點并將一個指向這個新節點的指針添加到父節點來完成的。如果父節點沒有足夠的空間,則也會在父節點上進行分割。操作一直持續到根節點為止。當根節點溢出時,其內容在新分配的節點之間被分割,根節點本身被覆蓋以避免重定位。這也意味著樹(及其高度)總是通過分裂根節點而增長。

LSM-Tree

結構化日志合并樹是一個不可變的基于磁盤的寫優化數據結構。它適用于寫入比查詢操作更頻繁的場景。LSM-Tree 已經獲得了更多的關注,因為它可以避免隨機插入,更新和刪除。

剖析 LSM-Tree

為了允許連續寫入,LSM-Tree 在內存中的表(通常使用支持查找的時間復雜度為對數級的數據結構,例如二叉搜索樹或跳躍表)中批量寫入和更新,當其大小達到閾值時將它寫在磁盤上(這個操作稱為刷新)。檢索數據時需要搜索樹所有磁盤中的部分,檢查內存中的表,合并它們的內容,然后再返回結果。圖 5 展示了 LSM-Tree 的結構:用于寫入的基于內存的表。只要內存表體積達到一定程度,內存表就會被寫入磁盤。進行讀取時,同時讀取磁盤和內存表,通過一個合并操作來整合數據。

支撐現代分布式存儲系統的算法

有序串行表

因為 SSTable(有序串行表)的簡單性(易于寫入,搜索和讀取)與合并性能(合并期間,掃描源 SSTable,合并結果的寫入是順序的),多數現代的 LSM-Tree 實現(例如 RocksDB 和 Apache Cassandra)都選用 SSTable 作為硬盤表。

SSTable 是一種基于硬盤的有序不可變的數據結構。從結構上來看,SSTable 可以分為兩部分:數據塊和索引塊,如圖 6 所示。數據塊包含以鍵為順序寫入的唯一鍵值對。索引塊包含映射到數據塊指針的鍵,指針指向實際記錄的位置。為了快速搜索,索引一般使用優化的結構實現,例如 B-Tree 或用于點查詢的哈希表。SSTable 中的每一個值都有一個時間戳與之對應。時間戳記錄了插入、更新(這兩者一般不做區分)和刪除時間。

支撐現代分布式存儲系統的算法

SSTable 具有以下優點:

• 通過查詢主鍵索引可以實現快速的點查詢(例如,通過鍵尋找值)。

• 只需要順序讀取數據塊上的鍵值對就可以實現掃描(例如,遍歷制定范圍內的鍵值對)。

SSTable 代表一段時間內所有數據庫操作的快照,因為 SSTable 是通過對內存表的刷新操作創建的,該表充當此時段內對數據庫狀態的緩沖區。

查詢

檢索數據需要搜索硬盤上的所有 SSTable,檢查內存表,并且合并它們的內容后返回結果。要搜索的數據可以存儲在多個 SSTable 中,因此合并步驟是必須的。

合并步驟也是確保刪除和更新正常工作所必需的。在 LSM-Tree 中,通過插入占位符(通常稱為墓碑)來指定哪個鍵被標記為刪除。同樣的,更新操作只是提交一個帶較晚時間戳的記錄。在讀取期間,被標記刪除的記錄被跳過,不會返回給客戶端。更新操作與之類似:在具有相同鍵的兩個記錄中,只返回具有較晚時間戳的記錄。圖 7 展示了一次合并操作,用于對在不同表中存儲的同一個鍵的數據進行整合:如圖,Alex 記錄中時間戳是 100,隨后更新了新的電話,時間戳為 200;John 記錄被刪除。另外兩項沒有改變,因為它們沒有被覆蓋。

支撐現代分布式存儲系統的算法

為了減少搜索 SSTable ,防止為了查找某個鍵而搜索每個 SSTable,許多存儲系統采用一個被稱為布隆過濾器 [10] 的數據結構。這是一個概率數據結構,可用于測試某個元素是否屬于某集合。它有可能產生錯誤的肯定(即,判斷元素是集合的成員,但實際上并不是),但不能產生錯誤的否定(即,如果返回否定結果,則元素一定不是集合的成員)。換句話說,布隆過濾器用于判斷鍵“可能在 SSTable 中”或“絕對不在 SSTable 中”。在搜索過程中,將會跳過布隆過濾器返回否定結果的 SSTable。

LSM-Tree 的維護

由于 SSTable 是不可變的,因此它們會按順序寫入,并且不存在用于修改的預留空白空間。這就意味著插入、更新或刪除操作將需要重寫整個文件。所有修改數據庫狀態的操作都在內存表中“批處理”。隨著時間的推移,磁盤表的數量將增加(同一個鍵的數據位于幾個不同文件,同一記錄有多個不同的版本,被刪除的冗余記錄),讀取操作的開銷將變得越來越大。

為了降低讀取開銷,整合被刪除記錄占用的空間并減少磁盤表的數量,LSM-Tree 需要一個壓縮操作,從磁盤讀取完整的 SSTable 并合并它們。由于 SSTable 是以鍵排序的,因此其壓縮工作和歸并排序類似,是非常高效的操作:從多個源有序序列中讀取記錄,進行合并后的輸出馬上追加到結果文件中,則結果文件也是有序的。歸并排序的一個優點是,即使合并內存吃不消的大文件,它依舊可以高效地工作。結果表保留了原始 SSTable 的順序。

在此過程中,被合并的 SSTable 被丟棄并替換為其“壓縮”后的版本,如圖 8 所示。壓縮多個 SSTable 并將它們合并為一個。某些數據庫系統在邏輯層面上按大小把不同的表分為不同級別,分組到相同的“級別”,并在特定級別的表足夠多時開始合并操作。壓縮后,SSTable 的數量減少,提高查詢效率。

支撐現代分布式存儲系統的算法

原子性與持久性

為了減少 I/O 操作并使它們順序執行,無論是 B-Tree 還是 LSM-Tree 都在實際更新之前,先在內存中進行批量操作。這意味著,在故障情況時,數據完整性、原子性(將一系列操作賦予原子性,將它們視為一個操作,要么全部執行要么全不執行)、持久性(當進程崩潰或電源失效時,可以確保數據已經到達持久性存儲設備)得不到保證。

為了解決這個問題,大多數現代存儲系統采用 WAL(預寫日志)。WAL 的核心思想是,所有數據庫狀態改變都先持久化進硬盤中的只追加日志中。如果進程在工作中崩潰,將會重映日志以確保沒有數據丟失且所有更改都滿足原子性。

在 B-Tree 中,使用 WAL 可以理解為僅在寫入操作被記錄后才將其寫入數據文件。通常,B-Tree 存儲系統的日志尺寸相對較?。褐灰獙⒏膽糜诔志么鎯Γ鼈兙涂梢员粭売谩AL 還可以作為運行時操作的備份:任何未應用于數據頁的更改都可以根據日志記錄重做。

在 LSM-Tree 中,WAL 用于保存處于內存表但尚未完全刷新到磁盤上的更改。只要內存表被刷新完畢并置換,便可以在新創建的 SSTable 中進行讀取操作,則 WAL 中從內存表刷新到硬盤上的那部分更改就可以丟棄了。

總結

B-Tree 和 LSM-Tree 數據結構***的差異之一是它們優化的目的以及優化的效果。

我們來對比一下 B-Tree 和 LSM-Tree 之間的特性??偟膩碚f,B-Tree 具有以下特性:

• 它是可變的,它允許通過一些空間開銷和更多的寫入路徑來進行就地更新,因而它不需要文件重寫或多源合并。

• 它是讀優化的,這意味著它不需要從多個源數據中讀取(也不需要合并),因而簡化了讀取路徑。

• 寫操作可能引起級聯節點分裂,這使得寫操作開銷較高。

• 它針對分頁環境(塊存儲)進行了優化,杜絕了字節定位操作。

• 碎片化, 由頻繁更新造成的碎片化可能需要額外的維護和塊重寫。然而對 B-Tree 的維護一般要比 LSM-Tree 要少。

• 并發訪問讀寫隔離,這涉及鎖存器與鎖鏈。

LSM-Tree 具有以下特性:

• 它是不可變的。SSTable 一旦被寫入硬盤就不會再改變。壓縮操作被用于整合占用空間,刪除條目,合并在不同數據文件中的同鍵數據。作為壓縮操作的一部分,在成功合并后,源 SSTable 將被棄用并刪除。這種不可變性給我們帶來了另一個有用的特性,刷新后的表可以被并發訪問。

• 它是寫優化的,這意味著寫入操作將進入緩沖,隨后順序刷新到硬盤上,可能支持基于硬盤的空間局部性。

• 讀取操作可能需要訪問多個數據源,因為在不同時間寫入的同一個鍵的數據有可能位于不同的數據文件中。必須經過合并過程才能將記錄返回給客戶端。

• 需要維護 / 壓縮,因為緩沖中的寫入操作被刷新到硬盤上。

評估存儲系統

開發存儲系統總要面對類似的挑戰,考慮類似的因素。決定優化方向會對結果產生很大影響。你可以在寫入過程中花費更多時間來布局結構以實現更高效的讀取,為就地更新預留空間,也可以緩沖數據確保順序寫入以提高寫入速度。但是,一次完成這一切是不可能的。理想中的存儲系統應該具有***的讀取成本,***的寫入成本,并且沒有額外開銷。但實際上,數據結構只能在多個因素之間權衡。理解這些取舍是重要的。

來自哈佛 DASlab(數據系統實驗室)的研究人員總結了數據庫系統優化方向的關鍵三點:讀取開銷、更新開銷和內存開銷(或簡稱為 RUM)。對于數據結構、訪問方法、甚至適用于某些工作負載的選擇應該了解哪些參數對你的用例最為重要,因為算法是針對特定用例量身定制的。

RUM 假說 [2] 為上述的兩種開銷設置了上限,同時為第三種設置了下限。例如,B-Tree 以提高寫入開銷、預留空間(同時也造成了內存開銷)為代價進行讀優化。LSM-Tree 以讀取時必須進行多硬盤表訪問的高讀取開銷換取低寫入開銷。在處于競爭三角形的三個參數中,一方面的改進可能就意味著另一方面的讓步。圖 9 對 RUM 假說進行了說明。

支撐現代分布式存儲系統的算法

B-Tree 優化讀取性能:索引的布局方式可以最小化遍歷樹的磁盤訪問需求。通過訪問一個索引文件就可以定位數據。這是通過持續更新索引文件來實現的,但這也增加了由于節點拆分和合并,重定位以及碎片、不平衡相關的維護造成的額外寫入開銷。為了平穩更新成本并減少分割次數,B-Tree 在所有級別的節點上都預留有額外的空間。這有助于在節點飽和之前延遲寫入開銷的增長。簡而言之,B-Tree 犧牲更新和內存性能以獲得更好的讀取性能。

LSM-Tree 優化寫入性能。無論是更新還是刪除都需要在磁盤上定位數據(B-Tree 也一樣),并且它通過在內存表中緩存所有插入,更新和刪除操作來保證順序寫入。這是以較高的維護成本和壓縮需求(這是唯一的緩解不斷增長的讀取開銷和減少磁盤表的數量的方式)和更高的讀取成本(因為數據必須從多個源讀取并合并)為代價的。同時,LSM-Tree 通過不保留任何預留空間來減少內存開銷(不同于 B-Tree 節點,其平均利用率為 70%,包含就地更新所需的開銷),因為更高的利用率和最終文件的不變性,LSM-Tree 支持塊壓縮。簡而言之,LSM-Tree 犧牲讀取性能,提高維護成本來獲得更好的寫入性能和更低的內存占用。

有的數據結構可針對每個期望的屬性進行優化。使用自適應數據結構可以以更高維護成本獲得更好的讀取性能。添加有助于遍歷的元數據(如分散層疊)將會影響寫入時間并占用更多空間,但可以提高讀取性能。使用壓縮優化內存使用率(例如,Gorilla 壓縮 [6] 、delta 編碼等諸多算法)會增加一些開銷,用于在寫入時壓縮數據并在讀取時解壓縮數據。有時候,你可以犧牲功能來提高效率。例如,堆文件和散列索引由于文件格式簡單,可以保證很好的性能和較小的空間開銷,而作為代價,它們不支持除點查詢以外的其他功能。你還可以通過使用近似數據結構(如布隆過濾器、HyperLogLog、Count-Min sketch 等)來為了空間與效率犧牲精度。

三種可變參數 —— 讀取,更新和內存開銷 —— 可以幫助你評估數據庫并深入了解最適合的工作負載。它們都非常直觀,將存儲系統按其分類很容易,猜測它是如何執行的,然后通過大量測試驗證你的假設。

當然,評估存儲系統時還有一些其他重要因素需要考慮,例如維護開銷,易用性,系統要求,頻繁增刪的適應性,訪問模式等。RUM 假說只是幫助發展直觀感覺并提供初始方向的一條經驗法則。了解你的工作部件是構建可擴展后端的***步。

一些因素可能因實施而異,甚至兩個使用類似存儲設計原則的數據庫可能會有不同表現。數據庫是包含許多可插拔模塊的復雜系統,是許多應用程序的重要組成部分。這些信息將幫助你窺探數據庫的底層,并且了解底層數據結構和其內部行為之間的差異,從而決定哪個是最適合你的。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2019-10-15 10:59:43

分布式存儲系統

2017-04-14 09:48:25

分布式存儲系統

2018-03-13 08:45:08

存儲系統DHT算法

2018-09-29 14:08:04

存儲系統分布式

2017-07-18 09:51:36

文件存儲系統

2017-10-16 10:24:47

LogDevice存儲系統

2017-10-19 08:45:15

存儲系統HBase

2017-10-12 09:36:54

分布式存儲系統

2018-11-20 09:19:58

存儲系統雪崩效應

2017-10-17 08:33:31

存儲系統分布式

2017-12-18 10:47:04

分布式存儲數據

2018-05-10 09:34:21

spark存儲系統

2018-10-24 11:01:53

分布式存儲系統

2021-07-04 07:07:06

Ceph分布式存儲架構

2013-12-27 10:56:42

分布式對象存儲Sheepdog性能測試

2018-10-29 12:42:23

Ceph分布式存儲

2014-02-19 11:37:57

分布式對象存儲Sheepdog

2021-08-07 05:00:20

存儲系統

2010-07-02 10:08:12

BigtableGoogle

2025-01-26 11:54:39

分布式存儲系統
點贊
收藏

51CTO技術棧公眾號

国产香蕉视频在线看| 久久久久久久中文字幕| 国产精品美女久久久久人| 亚洲精品一卡二卡| 精品国产乱码一区二区三区四区| 香港三级日本三级a视频| 欧洲av在线播放| 快she精品国产999| 欧美精品免费在线| 亚洲熟妇一区二区三区| 电影一区中文字幕| 欧美天堂在线观看| a级网站在线观看| 你懂的在线播放| 国产成人小视频| 国产精品久久久久久久久久新婚| 国产尤物在线播放| 杨幂一区二区三区免费看视频| 亚洲天堂成人网| 精品视频在线观看| 99国产精品99| 亚洲h色精品| 欧美在线视频全部完| 欧美 国产 精品| 国产精品无码一区二区桃花视频| 亚洲精品极品| 日韩电影中文字幕一区| 国产无限制自拍| 国内精品久久久久久野外| 日本女人一区二区三区| 国内精品在线一区| 免费中文字幕在线| 日韩精品影视| 7799精品视频| 成年网站在线播放| 中文日产幕无线码一区二区| 亚洲午夜精品在线| 在线观看污视频| 国产一级片在线播放| 99久久久无码国产精品| 99久热re在线精品996热视频 | 欧美三级免费| 精品国产一区二区三区久久狼黑人| 精品人妻伦一二三区久| 午夜日韩影院| 日韩精品一区二区三区视频播放| 天堂在线一区二区三区| 日本另类视频| 在线国产亚洲欧美| 日韩有码免费视频| 美女日韩欧美| 色视频一区二区| 成年人在线看片| 日本免费久久| 91极品视觉盛宴| 黄色国产小视频| 欧美日韩女优| 欧美丝袜丝交足nylons图片| 北条麻妃在线视频| 国产在线|日韩| 一本到三区不卡视频| 欧美a v在线播放| 搞黄视频在线观看| 国产欧美日韩久久| 亚洲乱码一区二区三区| 国产美女免费看| 激情欧美一区二区| 91精品国产91久久久久久最新| 国产高潮呻吟久久| 欧美肉体xxxx裸体137大胆| 亚洲最新av网址| 精品人妻人人做人人爽夜夜爽| 亚洲超碰在线观看| 亚洲国产天堂久久综合| a毛片毛片av永久免费| 四虎影视国产精品| 91精品在线免费观看| 久久久久亚洲av无码专区首jn| 国产精品网在线观看| 日韩精品在线播放| 丁香花五月婷婷| 一本一道久久综合狠狠老| 欧美精品激情视频| 男人天堂av在线播放| 久久国产精品99久久久久久老狼| 成人精品一二区| 亚州视频一区二区三区| 国产精品三级电影| 日韩小视频网站| 韩国精品主播一区二区在线观看 | av资源网站在线观看| 成人av一区二区三区| 欧美h视频在线| 麻豆电影在线播放| 婷婷久久综合九色综合绿巨人| 日韩免费高清在线| 亚洲一区二区三区中文字幕在线观看| 日韩av在线精品| 制服丨自拍丨欧美丨动漫丨| 精品二区久久| 国产日韩欧美一二三区| 色欲久久久天天天综合网 | 亚洲精品国产精品乱码在线观看| 欧美激情五月| 国产成人精品免高潮费视频| 精品人妻aV中文字幕乱码色欲 | 日本一区二区三区精品视频| 色综合999| 欧美日韩国产一二三| 在线视频 日韩| 小处雏高清一区二区三区| 欧美伊久线香蕉线新在线| 国产农村妇女毛片精品久久| 久久久国产精华| 欧美 日韩 亚洲 一区| 污污的网站在线看| 在线观看网站黄不卡| 97人妻精品一区二区三区免费| 99国产精品一区二区| 日本成人在线视频网址| 狠狠综合久久av一区二区| 亚洲欧洲av色图| 污污的网站18| 国产真实有声精品录音| 欧美激情视频网站| 99er热精品视频| 国产精品久久久久久亚洲伦 | 欧美精品色哟哟| 人人爽香蕉精品| 欧美少妇一区| 牛牛精品一区二区| 亚洲第一av在线| 青青草在线观看视频| 久久99久久久欧美国产| 手机在线观看国产精品| 精品国产免费人成网站| 日韩成人黄色av| 欧美不卡视频在线观看| 成人永久免费视频| 日韩一级特黄毛片| 欧美videosex性欧美黑吊| 欧美人牲a欧美精品| 极品人妻videosss人妻| 久久人人97超碰国产公开结果| 国产一区二区黄色| av资源在线| 亚洲国产精品久久91精品| 国产亚洲精品久久久久久打不开 | 日本少妇色视频| 亚洲免费精品| 久久伊人一区二区| 成人美女大片| 国产一区二区久久精品| 啪啪小视频网站| 国产精品免费av| 亚洲欧美aaa| 中文无码久久精品| 97伦理在线四区| 嫩草精品影院| 日本高清视频一区二区| 亚洲av熟女国产一区二区性色| 久久一二三四| 一卡二卡3卡四卡高清精品视频| 日韩欧美激情| 欧美xxxx18国产| 人妻视频一区二区三区| 婷婷国产v国产偷v亚洲高清| mm131美女视频| 日韩电影一二三区| 在线观看成人免费| 成人免费在线电影网| 奇米一区二区三区四区久久| 第一福利在线| 91精品国产入口| 日本网站免费观看| 久久精品日产第一区二区三区高清版| 黄色一级片网址| 99re6热只有精品免费观看| 91国产在线精品| 国产福利小视频在线观看| 欧美日韩国产bt| 妺妺窝人体色www婷婷| 91日韩在线专区| 免费一区二区三区在线观看| 天天做夜夜做人人爱精品| 国产精品96久久久久久| bestiality新另类大全| 日韩av资源在线播放| 中文字幕在线2018| 亚洲国产毛片aaaaa无费看 | 成人免费在线播放视频| 午夜福利三级理论电影| 日韩制服丝袜av| 路边理发店露脸熟妇泻火| 亚洲福利网站| 91精品视频在线播放| f2c人成在线观看免费视频| 在线日韩精品视频| 亚洲成a人片77777精品| 欧美亚洲国产一区在线观看网站| 久久久久久久久久一区二区三区 | 亚洲午夜精品福利| 1313精品午夜理伦电影| 国产精品久久久久久久久久免费 | 福利成人在线观看| 亚洲精品在线一区二区| 亚洲自拍偷拍另类| 国产片一区二区| 逼特逼视频在线观看| 美日韩一级片在线观看| 欧美在线观看www| 91精品电影| 神马影院我不卡| 亚洲aa在线| 国产精品播放| 国产精品一区二区三区四区在线观看| 欧美最猛性xxxx| 爱啪啪综合导航| 欧美成人高清视频| 午夜免费福利在线观看| 欧美性受极品xxxx喷水| 中日韩精品视频在线观看| 亚洲视频一区在线观看| 黄色av免费播放| 久久一夜天堂av一区二区三区| www黄色av| 黄色日韩在线| 在线观看成人免费| 亚洲成人精品| 永久久久久久| 日韩精品一区二区三区免费观看| 欧美资源一区| 久久91麻豆精品一区| 久久福利电影| 日韩欧美在线精品| 精品欧美一区二区精品久久| 国产成人澳门| 国产成人亚洲欧美| 成人在线视频你懂的| 成人动漫视频在线观看完整版 | 久久av免费一区| 啪啪国产精品| 美媛馆国产精品一区二区| 欧美电影完整版在线观看| 国产98在线|日韩| 成人av资源网址| 国产一级特黄a大片99| 国产精品天天看天天狠| 国产一区二区黄色| 夜夜春成人影院| 日本午夜精品一区二区| 国产毛片一区二区三区| 亚洲春色在线视频| 色小子综合网| 青青草原网站在线观看| 欧美午夜在线| 一女被多男玩喷潮视频| 亚久久调教视频| 国产九九在线视频| 精品一区二区三区视频在线观看| 亚洲欧美手机在线| 国产福利电影一区二区三区| 久久国产免费视频| 99re视频这里只有精品| 久久久久久国产精品无码| 欧美韩国日本不卡| 精品无码久久久久成人漫画| 伊人色综合久久天天人手人婷| 国产极品在线播放| 欧美午夜xxx| 一级黄色短视频| 欧美本精品男人aⅴ天堂| 天堂在线视频免费| 国产亚洲视频在线观看| 黄色成人影院| 国语自产精品视频在线看一大j8 | 国产一区二区三区四区五区六区| 国产精品网站一区| 欧洲猛交xxxx乱大交3| 欧美日韩国产精品一区二区不卡中文| 亚洲中文字幕无码爆乳av| 欧美片在线播放| 特黄视频在线观看| 国产亚洲a∨片在线观看| gogogogo高清视频在线| 青青久久av北条麻妃黑人| 91麻豆精品国产综合久久久| 国产精品精品软件视频| 精品国产一区二区三区噜噜噜| 8x8x华人在线| 亚洲免费在线| 国产九九九视频| 91麻豆免费在线观看| 日本午夜在线观看| 亚洲一区av在线| 亚洲一区二区三区高清视频| 亚洲成avwww人| 丝袜美腿美女被狂躁在线观看| 国模极品一区二区三区| 国产亚洲人成a在线v网站| 欧美做爰性生交视频| crdy在线观看欧美| 欧美伦理一区二区| 国产一区日韩一区| 亚洲综合婷婷久久| 91免费精品国自产拍在线不卡| 日韩福利小视频| 91国产精品成人| 天堂中文在线观看视频| 不卡av在线网站| 国产精品第一国产精品| 久久福利电影| 激情欧美日韩| 亚洲在线观看网站| 国内精品伊人久久久久av一坑| aaaaa级少妇高潮大片免费看| 一个色综合网站| 一区二区美女视频| 国产亚洲精品日韩| 黄色在线免费观看网站| 999视频在线观看| 日韩欧美网站| 自拍偷拍 国产| 久久综合九色综合欧美98| 国产无遮挡又黄又爽| 日韩一区二区三区精品视频| 2019中文字幕在线视频| 国产成人激情视频| 亚洲欧美成人vr| 欧美日韩黄色一级片| 成人动漫一区二区三区| 欧美精品99久久久| 日韩美女主播在线视频一区二区三区| 午夜激情视频在线| 国产精品一二三在线| 欧美裸体在线版观看完整版| 能在线观看的av网站| 久久久精品综合| 天天干天天色综合| 欧美日韩国产不卡| eeuss影院www在线播放| 国产97在线播放| 国产精品一区二区三区四区在线观看 | 精品久久人妻av中文字幕| 久久精品精品电影网| 国产嫩草在线视频| 国产成人高清激情视频在线观看 | 日韩精品中文字幕有码专区| 激情aⅴ欧美一区二区欲海潮| 国产精品一区二区在线观看| 亚洲激情在线| 国产又爽又黄无码无遮挡在线观看| 精品久久久久久久中文字幕 | xxxxxxxxx欧美| 欧美v亚洲v综合v国产v仙踪林| 中文字幕在线观看一区二区三区| 精品伊人久久久久7777人| 成人免费黄色小视频| 日韩一级在线观看| missav|免费高清av在线看| 狠狠色狠狠色综合人人| 久久久国产亚洲精品| 91精品国自产在线| 91 com成人网| 98色花堂精品视频在线观看| 欧美国产一二三区| 麻豆成人久久精品二区三区小说| 亚洲熟女www一区二区三区| 精品国产一区二区精华| 中文在线8资源库| 亚洲精品国产系列| 国产精品自拍网站| 日本少妇性生活| 一区二区欧美激情| 精品中文在线| 先锋在线资源一区二区三区| 卡一卡二国产精品| 国产亚洲精久久久久久无码77777| 精品亚洲国产成av人片传媒| 久久精品嫩草影院| 男人添女人荫蒂免费视频| 国产午夜精品一区二区三区视频| 国产一区二区三区三州| 午夜精品久久久久久久男人的天堂| 九九热精品视频在线观看| √天堂资源在线| 欧美日韩另类字幕中文| 免费黄色在线观看| 成人免费看片网站| 奇米色一区二区三区四区| 免费一级黄色大片| 亚洲一级免费视频| 99亚洲乱人伦aⅴ精品| 大香煮伊手机一区| 一级日本不卡的影视| 国产h在线观看| 国产伦精品一区二区三| 蜜桃视频一区二区三区| 青青操免费在线视频| 久久在精品线影院精品国产|