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

CMU15-445 數據庫系統播客:多線程下索引鎖存的并發控制

數據庫 其他數據庫
由DBMS自己實現,通常使用CPU的單指令原子比較-交換操作。線程會反復嘗試設置一個內存位置(例如,將一個布爾值設置為?true),直到成功獲取。如果無法獲取,線程會在一個?while?循環中“自旋”重試。

數據庫管理系統(DBMS)在處理并發操作時,需要一套并發控制協議來確保共享對象的“正確”結果。這種“正確性”可以從兩個方面來理解:

  • 邏輯正確性 (Logical Correctness) :指線程能夠看到它應該看到的數據。例如,如果一個B+樹索引插入了一個鍵值,該線程立即讀取該鍵值時,它應該能看到它,而不會得到一個假陰性(false negative)結果。
  • 物理正確性 (Physical Correctness) :指數據結構的內部表示是健全的。這意味著在多線程讀寫數據時,數據結構的完整性(例如指針和引用)必須得到維護,以避免指向無效內存位置,從而導致程序崩潰(seg fault)等問題。本次討論主要關注的是物理正確性。

鎖 (Locks) 與鎖存 (Latches) 的區別

在數據庫領域,"鎖" 和 "鎖存" 是兩個不同的概念,用于保護不同層面的數據。

鎖 (Locks)

  • 保護對象 :保護數據庫的 邏輯內容 ,如元組(tuples)、一組元組或整個表、數據庫,使其免受其他事務的并發訪問和修改。
  • 持有時間 :通常在 整個事務期間 持有。這意味著如果一個事務正在修改某個數據,它會持有鎖直到事務完成。
  • 回滾需求 :需要支持 回滾 機制。如果事務在修改過程中崩潰,DBMS必須能夠撤銷已做的更改。
  • 模式類型 :有多種鎖模式,如共享 (Shared)、排他 (Exclusive)、更新 (Update)、意向 (Intention) 等。
  • 死鎖處理 :依賴于外部的 鎖管理器 (Lock Manager) 或事務管理器 (Transaction Manager) 來檢測和解決死鎖,例如通過等待-超時 (Waits-for, Timeout) 或事務中止 (Aborts)。

鎖存 (Latches)

  • 保護對象 :保護DBMS內部數據結構(如索引、緩沖區池中的頁面表等)的 關鍵代碼段 (critical sections) 及其 物理完整性 ,使其免受其他線程的并發訪問和修改。
  • 持有時間 :只在 操作的持續期間 持有,通常是極短的時間。例如,當線程需要更新一個頁面時,它會獲取該頁面的鎖存,進行更改,然后立即釋放鎖存。
  • 回滾需求 : 不需要支持回滾 。因為鎖存保護的操作通常是原子性的,如果無法獲取鎖存,操作就不會執行,因此沒有需要回滾的更改。
  • 模式類型 :主要有兩種模式—— 讀模式 (Read Mode) 和 寫模式 (Write Mode) 。

讀模式 (Read Mode) :允許多個線程同時共享讀鎖存,因為讀操作不會修改數據結構。

寫模式 (Write Mode) :是排他性鎖存,只允許一個線程持有。當一個線程持有寫鎖存時,其他線程不能讀取或修改該對象。

  • 死鎖處理 : 不提供死鎖檢測或解決機制 。死鎖的避免完全取決于 編程紀律 (Coding Discipline) ,即通過良好的設計和實現來確保死鎖不會發生。

鎖存的實現方式

鎖存的實現通常基于現代CPU提供的原子比較-交換 (compare-and-swap, CAS) 指令。主要有以下幾種方法:

阻塞式操作系統互斥鎖 (Blocking OS Mutex)

  • 實現方式 :這是最簡單的方式,直接使用操作系統提供的互斥鎖(如C++標準庫中的 std::mutex)。在Linux中,futex(fast user-space mutex)是一種常見的實現,它首先嘗試在用戶空間通過自旋鎖獲取,如果失敗,則下沉到內核空間獲取更昂貴的互斥鎖,并可能導致線程被調度器掛起。
  • 優點 :使用簡單,無需額外的編碼。
  • 缺點 : 非可伸縮性 ,每次加鎖/解鎖操作可能需要約25納秒,因為涉及操作系統的調度開銷,對于高競爭系統來說,性能會成為問題。

測試-設置自旋鎖 (Test-and-Set Spin Latch / TAS)

  • 實現方式 :由DBMS自己實現,通常使用CPU的單指令原子比較-交換操作。線程會反復嘗試設置一個內存位置(例如,將一個布爾值設置為 true),直到成功獲取。如果無法獲取,線程會在一個 while 循環中“自旋”重試。
  • 優點 : 效率極高 ,加鎖/解鎖操作通常是單個CPU指令。
  • 缺點 : 非可伸縮性且不緩存友好 。在高競爭環境下,線程會不斷自旋,消耗CPU周期但未做有效工作,導致CPU利用率飆升。同時,這可能引起緩存一致性問題,因為多個線程在不同CPU上輪詢同一個緩存行。
  • 優化 :開發者可以根據工作負載決定是否在自旋失敗后短暫地讓出CPU(yield),或在嘗試一定次數后中止操作。由于DBMS對數據結構的使用場景有更深入的了解,因此可以比操作系統做得更好。

讀寫鎖存 (Reader-Writer Latch)

  • 實現方式 :通常在自旋鎖的基礎上實現。它通過管理讀/寫隊列和計數器來區分讀寫請求。
  • 優點 : 允許并發讀取 ,這對于讀密集型工作負載能顯著提高性能,因為多個讀取線程可以共享資源而無需等待。
  • 缺點 : 增加了復雜性 。DBMS需要管理讀寫隊列以避免寫線程饑餓 (starvation),同時相比簡單的自旋鎖,它需要更多的元數據和存儲開銷。

哈希表 (Hash Table) 的鎖存

哈希表相對容易支持并發訪問,因為線程訪問數據結構的方式有限。

  • 單向訪問 :所有線程在從一個槽位移動到下一個槽位時都沿同一個方向(自上而下),且一次只訪問一個頁面或槽位。這使得 死鎖不可能發生 。
  • 重整大小 :在調整哈希表大小時,通常會獲取整個表的 全局鎖存 (例如在頭部頁面上),以防止其他線程在此期間讀寫表。

哈希表的鎖存策略主要有兩種。

頁面鎖存 (Page Latches)

  • 特點 :每個頁面有自己的讀寫鎖存,保護整個頁面內容。
  • 權衡 :需要存儲的鎖存數量較少(每個頁面一個),但 可能會降低并行性 ,因為即使兩個線程操作不同槽位,如果它們在同一頁面內,也可能無法同時運行。

槽鎖存 (Slot Latches)

  • 特點 :每個槽位都有自己的鎖存。
  • 權衡 : 允許更高的并行性 ,因為鎖存粒度更細。但 增加了存儲和計算開銷 ,因為線程在掃描時需要為每個訪問的槽位獲取鎖存。

B+樹 (B+Tree) 的鎖存

B+樹的并發控制更為復雜,因為它不僅涉及節點內容的修改,還涉及樹結構的動態變化(如分裂和合并)。

B+樹并發控制主要需要解決兩個問題:

  1. 多個線程同時修改同一個節點的內容。
  2. 一個線程遍歷樹時,另一個線程可能正在分裂或合并節點,導致頁面位置改變或指針失效。

解決這些問題的一種經典技術稱為 鎖存爬行 (Latch Crabbing) 或 鎖存耦合 (Latch Coupling) 。

鎖存爬行 (Latch Crabbing) 的基本思想

鎖存爬行的基本思想是:

  1. 獲取父節點的鎖存。
  2. 獲取子節點的鎖存。
  3. 如果確定子節點是“安全”的,則釋放父節點的鎖存。

“安全”節點定義 :一個節點被認為是安全的,當對其進行更新操作時,它不會導致分裂 (split) 或合并 (merge)。

  • 對于 插入 操作,如果節點未滿(不會分裂),則認為是安全的。
  • 對于 刪除 操作,如果節點內的鍵值數量多于一半(不會合并),則認為是安全的。

查找 (Find) 操作

  • 查找操作只涉及讀取,因此可以全程使用 讀鎖存 。
  • 從根節點開始,獲取子節點的讀鎖存后,可以立即釋放父節點的讀鎖存,因為讀操作不會改變樹的結構。

插入 (Insert) / 刪除 (Delete) 操作

  • 從根節點開始,獲取 寫鎖存 。
  • 在獲取子節點鎖存后, 檢查該子節點是否安全 。如果安全,則可以釋放所有祖先節點上持有的寫鎖存。
  • 如果不安全,則需要繼續持有祖先節點的鎖存,直到找到安全的子節點或到達葉節點。
  • 釋放鎖存的順序 :從性能角度考慮,應盡快釋放更高層級(更接近根)的鎖存,因為它覆蓋的節點范圍更廣,能提高并行性。

根節點爭用 (Root Contention) 問題

鎖存爬行的一個問題是,每次插入或刪除操作都必須在根節點上獲取 寫鎖存 。由于寫鎖存是排他性的,這意味著在任何給定時間,只有一個線程可以持有根節點的寫鎖存,從而形成了一個 單點瓶頸 (single point of contention) ,嚴重限制了高并發系統的并行性。

樂觀鎖存 (Optimistic Latching)

為了解決根節點爭用問題,出現了一種更優化的鎖存算法,通常稱為 樂觀鎖存 (Optimistic Latching) 或 Baron-Schlock-Nick 算法。

核心思想 : 樂觀假設 在實際數據庫系統中,B+樹節點通常很大(如8KB或16KB),因此大部分插入或刪除操作不會導致節點分裂或合并?;谶@個假設,算法會 樂觀地假定 目標葉節點是安全的。

具體操作

  1. 初始遍歷 :線程從根節點開始, 全程使用讀鎖存 進行鎖存爬行,直到到達目標葉節點。
  2. 獲取葉節點寫鎖存 :到達葉節點后,線程嘗試獲取該葉節點的 寫鎖存 。
  3. 檢查安全并執行 :如果此時發現葉節點是安全的(例如,有足夠的空間進行插入而無需分裂,或刪除后仍超過半滿而無需合并),則線程可以直接在該葉節點上進行修改,然后釋放鎖存。
  4. 失敗重啟 :如果發現葉節點不安全(例如,需要分裂或合并),則說明樂觀假設失敗。此時,線程會 釋放所有已獲得的鎖存,并中止當前操作 。然后,它會 從頭開始,并使用悲觀策略 ,即采用傳統的鎖存爬行方法,從根節點開始全程獲取 寫鎖存 。
  • 優點 :顯著減少了根節點和中間節點的寫鎖存持有時間, 提高了并發性 。
  • 缺點 :如果樂觀假設經常失?。ɡ缭诠濣c頻繁分裂或合并的負載下),那么每次重新啟動并重新遍歷樹都會導致 浪費工作 (wasted work) ,反而可能比悲觀策略慢。但在大多數實際場景中,這種樂觀策略表現良好。

葉節點遍歷 (Leaf Node Scans) 與死鎖

在B+樹中,如果只進行自上而下的遍歷,死鎖是不可能發生的,因為所有線程都沿一個方向前進。然而,當引入 葉節點掃描 (Leaf Node Scans) 時(即在葉節點層級從左到右或從右到左遍歷),情況會變得復雜,因為此時線程可能需要獲取不同方向的鎖存,從而導致 潛在的死鎖 。

例如,一個線程可能正在從左向右掃描并持有右側節點的讀鎖存,而另一個線程從右向左掃描并持有左側節點的讀鎖存,它們可能會同時嘗試獲取對方持有的鎖存,從而發生死鎖。

如何確保不會死鎖 :

  • 鎖存不提供死鎖檢測或避免功能 。
  • 依賴編程紀律 :解決這個問題的唯一方法是依靠 編程紀律 (Coding Discipline) 。
  • “無等待”模式 (No-Wait Mode) :當一個線程嘗試獲取葉節點上的鎖存但該鎖存不可用時,它會 立即中止操作 (釋放所有已持有的鎖存),然后 重新開始操作 。
  • 原因 :由于鎖存是低級別的機制,它沒有關于其他線程正在做什么的全局信息。因此,與其嘗試推斷或等待,最簡單有效的方法就是立即中止并重試。雖然這可能導致在極端情況下線程“饑餓”或浪費周期,但在實踐中,這通常是最佳策略。

延遲父節點更新 (Delayed Parent Updates) / Blink-Tree 優化

正常的B+樹節點溢出時,需要更新三個節點:被分裂的葉節點、新創建的葉節點以及它們的父節點(用于添加新的分隔鍵)。這種多節點的更新需要復雜的鎖存管理,可能導致更多的鎖爭用和重啟。

Blink-Tree 優化 引入了一種技術,當葉節點溢出時, 延遲更新其父節點 。

實現方式 :

  1. 當葉節點分裂時,線程只更新葉節點本身,并創建一個新的相鄰節點。
  2. 它不會立即更新父節點。相反,它會在樹的 全局信息表 中記錄一個待處理的更新,表明父節點需要添加一個新的分隔鍵。
  3. 下一次有線程以寫模式獲取該父節點的鎖存時,它會首先檢查并應用這個延遲的更新,從而使樹結構變得一致。
  • 優點 :這避免了在分裂時重新啟動樂觀鎖存操作,因為它不需要立即獲取并持有父節點的寫鎖存。
  • 正確性 :這種方法仍然能保證正確性,因為即使父節點尚未更新,查找操作也可以通過遍歷當前的指針(包括可能的兄弟節點指針,如果存在)來找到正確的數據。

總結

總而言之,使數據結構具有線程安全性在實踐中是出了名的困難。我們討論了哈希表和B+樹的并發控制,但其核心思想是通用的:

  • 強制單向操作 (如哈希表的自頂向下掃描,避免死鎖)。
  • 在遇到死鎖潛力時立即中止并重試操作 (如B+樹的葉節點掃描)。
  • 樂觀地假設快速路徑 (如樂觀鎖存,大部分操作只需讀鎖存)。

這些并發控制技術在整個計算機科學和系統領域都有廣泛應用。商業數據庫系統通常會自己實現這些核心數據結構,以便根據其特定的目標操作環境進行優化。

責任編輯:武曉燕 來源: Piper蛋窩
相關推薦

2025-08-12 07:31:11

2025-08-18 01:01:00

樂觀并發控制

2025-08-11 02:00:00

2025-08-18 05:11:00

數據庫系統播客

2025-08-06 01:22:00

2025-08-11 02:25:00

數據庫數據模型

2025-08-06 00:00:00

2025-08-04 06:00:00

2025-08-21 06:39:13

2025-08-18 07:32:23

2025-08-22 06:49:20

2025-08-14 07:32:42

2025-08-18 01:23:00

2025-08-11 07:31:40

2025-08-04 07:31:30

2025-08-08 07:37:07

2025-08-26 03:15:00

2025-08-26 02:12:00

2025-08-13 07:31:18

2025-08-20 07:40:05

點贊
收藏

51CTO技術棧公眾號

中文字幕亚洲无线码在线一区| 综合欧美亚洲日本| 欧美专区第一页| 亚洲精品成人无码| **日韩最新| 亚洲无人区一区| 视频一区二区在线| 成人xxxx视频| 亚洲成人av免费看| 中文字幕资源网在线观看| 波多野结衣中文字幕一区| 日本免费久久高清视频| 黄视频网站免费看| 亚洲免费成人av在线| 欧美日韩卡一卡二| 美女日批免费视频| 欧美另类极品| 久久综合久久综合九色| 亚洲综合日韩在线| 国产精品欧美综合| 亚洲国产高清一区二区三区| 少妇精69xxtheporn| 亚洲熟女乱综合一区二区三区 | 免费毛片在线不卡| 精品欧美一区二区在线观看| www.色就是色| 色在线中文字幕| 一区二区三区不卡视频在线观看| 色播五月综合| 日本成人一区二区三区| 国产成人综合精品三级| 91精品久久久久久久久久久| 国产精品777777| 亚洲激情欧美| 欧美激情视频在线免费观看 欧美视频免费一| 国产人妻大战黑人20p| 国产精品香蕉| 日韩欧美国产一区在线观看| 中日韩av在线播放| 欧美性片在线观看| 色噜噜夜夜夜综合网| 欧美日韩成人免费视频| cao在线视频| 亚洲一级片在线观看| 中文字幕乱码免费| 好操啊在线观看免费视频| 国产精品你懂的在线欣赏| 日本不卡一区二区三区在线观看| 日韩中文字幕综合| 成人97人人超碰人人99| 99久久精品情趣| 久久成人精品视频| 亚洲一级二级片| 成人综合一区| 色婷婷综合成人av| 日本精品久久久久中文| 成人aaaa| yellow中文字幕久久| 5566中文字幕| 欧美在线网站| 欧美激情视频网站| 天海翼一区二区| 亚洲深夜激情| 国产精品18久久久久久首页狼| 日本丰满少妇做爰爽爽| 日韩高清一级片| 国产在线精品一区免费香蕉 | 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 欧美午夜免费电影| 亚洲xxx在线观看| 日韩一二三区在线观看| 精品国产3级a| 亚欧洲乱码视频| 欧美独立站高清久久| 美女久久久久久久久久久| 九九热精彩视频| 一区二区日韩免费看| 国产成人精品一区| 国产一区二区在线播放视频| 国产福利91精品| 久久五月天婷婷| av电影在线网| 夜夜精品视频一区二区| 黄色av网址在线播放| 香蕉久久免费电影| 9191成人精品久久| 日本在线不卡一区二区| 竹菊久久久久久久| 播播国产欧美激情| 日韩av片在线播放| 日韩在线一区二区| 97超碰人人看人人| 欧美日韩免费做爰大片| 亚洲视频在线一区观看| 国产午夜大地久久| 免费视频观看成人| 亚洲电影中文字幕| 任我爽在线视频| va婷婷在线免费观看| 国产一区二区三区日韩精品| 久久精品成人一区二区三区| 色婷婷av国产精品| 国产一区二区久久| 欧美极品日韩| 日本一级理论片在线大全| 一道本成人在线| 丰满少妇一区二区三区专区| 欧美极品在线观看| 久久久久久久久久国产| 最好看的日本字幕mv视频大全| 国产jizzjizz一区二区| 四虎永久国产精品| 青青在线视频| 欧美猛男超大videosgay| 精品无码在线视频| 国产精品大片| 亚洲综合日韩在线| a天堂中文在线88| 欧美日韩一区二区精品| 一区二区免费av| 国产精品嫩模av在线| 久久久人成影片一区二区三区| 亚洲一区二区三区高清视频| 久久你懂得1024| 无码人妻少妇伦在线电影| 亚洲精品tv| 色哟哟网站入口亚洲精品| 久久久午夜影院| 国产999精品久久久久久绿帽| 亚洲一区二区精品在线| 日韩电影av| 国产午夜精品久久久| 欧美bbbbbbbbbbbb精品| 成人免费视频视频| 国产一二三区在线播放| 精品一区二区三区四区五区| 日韩在线观看免费高清完整版| 久久久久久无码午夜精品直播| 99麻豆久久久国产精品免费优播| 亚洲中文字幕无码一区二区三区| 日本在线一区二区| xxxxxxxxx欧美| 亚洲资源在线播放| 国产精品少妇自拍| 高清一区二区视频| 精品一区二区三区的国产在线观看| 2019最新中文字幕| 亚洲AV成人无码一二三区在线| 五月天一区二区| 国产视频久久久久久| 亚洲日本成人| 免费99视频| 成人影院av| 伊人久久精品视频| 中文字幕在线观看欧美| 国产精品免费视频一区| 天堂一区在线观看| 久久久精品久久久久久96| 成人av资源在线播放| 韩国中文字幕在线| 日韩女优毛片在线| 国产成人啪精品午夜在线观看| 99久久亚洲一区二区三区青草| 女人和拘做爰正片视频| 美女毛片一区二区三区四区| 国产91在线视频| 91在线不卡| 日韩一级片在线观看| 国产精品1234区| 91日韩精品一区| 亚洲精品一二三四五区| 欧美疯狂party性派对| 91丨九色丨国产| 日本不卡免费高清视频在线| 国产一区二区三区在线免费观看| 91片黄在线观看喷潮| 亚洲一区二区三区在线播放| 六十路息与子猛烈交尾| 首页欧美精品中文字幕| 自拍偷拍一区二区三区| 国产精品久久久久av蜜臀 | 成人天堂yy6080亚洲高清| 一本一道久久a久久精品逆3p| 国产精品免费无遮挡| 午夜一区二区三区视频| 阿v天堂2014| 国产精品一区二区你懂的| 东京热加勒比无码少妇| 91精品一区二区三区综合在线爱| 国产精品一区二区三区在线| 97精品国产综合久久久动漫日韩 | 自拍网站在线观看| 色悠悠久久久久| 五十路在线视频| 欧美疯狂做受xxxx富婆| 影音先锋亚洲天堂| 亚洲婷婷综合久久一本伊一区| 国产精品久久久久久久无码| 另类小说综合欧美亚洲| 国产素人在线观看| 天天做综合网| 欧美日本韩国国产| 亚洲91网站| 国产精品亚洲第一区| 毛片在线网站| 九九热精品视频在线播放| 国产永久免费高清在线观看| 亚洲第一区第一页| 一区二区三区播放| 一本色道综合亚洲| 国产网站在线看| 综合久久给合久久狠狠狠97色| 九色porny自拍视频| 国产91色综合久久免费分享| 亚洲欧美视频二区| 国产精品久久久一区二区| 黄色录像特级片| 日韩a一区二区| 免费久久久一本精品久久区| av日韩在线播放| 91中文字幕一区| 日韩成人免费av| 国产精品igao视频| 欧美成人a交片免费看| 国产做受高潮69| 最新黄网在线观看| 久久精品在线视频| 91福利在线视频| 亚洲品质视频自拍网| 天堂中文在线8| 亚洲精品99久久久久中文字幕| 精品国产伦一区二区三区| 欧美久久久一区| 岳乳丰满一区二区三区| 91成人免费在线视频| 一区二区三区福利视频| 婷婷久久综合九色国产成人| 久久精品国产亚洲av无码娇色| 亚洲欧美韩国综合色| 日日噜噜夜夜狠狠久久波多野| 国产精品毛片高清在线完整版| 大胸美女被爆操| 欧美国产精品中文字幕| 91免费在线看片| 国产精品国产三级国产普通话三级 | 国产精品白丝在线| 亚洲综合欧美综合| 国产欧美日韩在线观看| 一级黄色片网址| 欧美国产一区二区在线观看| 粉嫩精品久久99综合一区| 中文字幕第一区综合| 久久视频一区二区三区| 国产精品黄色在线观看| 三级黄色在线观看| 亚洲精品一二三区| 免费在线一区二区三区| 亚洲国产你懂的| 日韩在线视频免费播放| 色哟哟国产精品| 伊人久久中文字幕| 欧美日本在线观看| 国产色在线视频| 精品国产伦一区二区三区观看体验 | 日韩一区二区三区免费视频| 国产日韩在线精品av| 国产精品一区二区精品视频观看| 91久久精品www人人做人人爽| 亚洲一区二区三区免费| 好吊色欧美一区二区三区四区| 亚洲老女人视频免费| 翔田千里亚洲一二三区| 999久久久91| 777久久精品一区二区三区无码 | ass极品水嫩小美女ass| 国产.欧美.日韩| 国产男女猛烈无遮挡a片漫画| 国产日产精品一区| 999精品视频在线观看播放| 一区二区免费看| 亚洲国产成人精品女人久久| 欧美放荡的少妇| 日韩有码第一页| 在线观看精品国产视频| 免费不卡av| 国产精品 欧美在线| 91成人精品在线| 欧洲精品在线一区| 亚洲草久电影| 日韩免费毛片视频| 国内精品久久久久影院薰衣草 | 三区四区不卡| 日本一区午夜艳熟免费| 日韩影院精彩在线| 性xxxxxxxxx| 国产欧美精品一区二区色综合朱莉| 少妇久久久久久被弄高潮| 色综合久久九月婷婷色综合| 国产伦精品一区二区三区视频痴汉| 精品国产三级a在线观看| 国内精品在线视频| 欧美精品成人在线| 久久免费资源| 欧美激情视频一区二区三区| 极品中文字幕一区| 午夜精品久久久久久久99热影院| 91免费精品国自产拍在线不卡| 久久国产波多野结衣| 一本色道久久综合精品竹菊| 亚洲风情第一页| 久久精品色欧美aⅴ一区二区| 亚洲人体视频| 国产伦精品一区二区三区在线| 国产精品国内免费一区二区三区| 国产免费黄视频| 成人网在线免费视频| 一区二区成人免费视频| 欧美日韩一区不卡| 男男激情在线| 91精品国产91久久久久福利| 亚洲精品观看| 麻豆md0077饥渴少妇| 美国十次了思思久久精品导航 | 亚洲人成影院在线观看| 在线视频1卡二卡三卡| 亚洲午夜国产成人av电影男同| 三妻四妾的电影电视剧在线观看| 成人h在线播放| 女主播福利一区| 亚洲日本黄色片| 国产精品不卡在线观看| 丰满熟女人妻一区二区三| 亚洲人在线视频| 日韩精品99| 日韩高清国产精品| 日韩精品一二区| 永久免费av无码网站性色av| 在线观看日韩国产| aiai在线| 国产精品永久免费视频| 日韩理论在线| 91 在线视频观看| 中文字幕亚洲一区二区va在线| 中文字幕在线观看高清| 中文字幕精品久久| 欧美性aaa| 强伦女教师2:伦理在线观看| 狠狠狠色丁香婷婷综合激情| 亚洲精品卡一卡二| 日韩一级高清毛片| 欧美亚洲天堂| 久久国产一区二区| 久久久久久亚洲精品杨幂换脸| 欧美18—19性高清hd4k| 欧美色图免费看| 久操免费在线| 成人永久免费| 99热在线精品观看| 实拍女处破www免费看| 欧洲一区二区av| 天堂地址在线www| 91影视免费在线观看| 欧美日韩在线大尺度| 好吊色视频一区二区三区| 日韩欧美999| 国产在线视频资源| 成人福利网站在线观看11| 成人在线一区| 极品人妻一区二区| 亚洲精品成人在线| 精品国产无码一区二区| 91国产一区在线| 久久亚洲国产| 精品人妻二区中文字幕| 色综合天天性综合| 美女被艹视频网站| 日本在线电影一区二区三区| 国产免费视频传媒| 日韩一区欧美小说| 欧美在线精品一区二区三区| 国产91露脸中文字幕在线| 93在线视频精品免费观看| 亚洲少妇一区二区| 色乱码一区二区三区88| 超碰caoporn久久| 久久精品国产精品青草色艺| 六月丁香婷婷久久| 97超碰人人干| 日韩一区二区三区国产| 农村少妇一区二区三区四区五区| 天天干天天干天天干天天干天天干| 亚洲女同一区二区| 精品视频二区| 国产超碰91| 麻豆精品精品国产自在97香蕉 | 色哦色哦哦色天天综合| 怡红院在线播放| 亚洲一区二区不卡视频| 91麻豆福利精品推荐| 国产视频在线观看免费 |