精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧洲杯足球赛直播| 久久影院午夜精品| 国产一区二区按摩在线观看| 久久99热精品这里久久精品| 国产一级二级在线观看| 播放一区二区| 亚洲一区二区三区美女| 日本免费高清一区| 精品人妻伦一二三区久久| 99在线|亚洲一区二区| 在线播放日韩精品| 美国黄色一级视频| 麻豆精品蜜桃| 亚洲午夜激情网站| 视频一区二区三区免费观看| www.国产黄色| 日本成人超碰在线观看| 久久久久久97| 欧美a级片免费看| 久久成人福利| 91精品国产麻豆国产自产在线| 人人干视频在线| 麻豆视频在线| 91视频观看视频| av一区二区三区四区电影| 最近免费中文字幕大全免费版视频| 首页国产精品| 亚洲免费视频一区二区| 少妇献身老头系列| 91精品国产一区二区在线观看| 精品久久久久久久久久久久久| 国产又黄又爽免费视频| 国产日韩精品在线看| 不卡一卡二卡三乱码免费网站| 国产色视频一区| 久久久久久亚洲av无码专区| 亚洲激情在线| 欧美日韩成人在线播放| 五月天av网站| 天天色综合色| 中文字幕亚洲综合久久| 偷拍夫妻性生活| 欧美五码在线| 亚洲国产第一页| 精品国产aⅴ一区二区三区东京热| 韩国理伦片久久电影网| 在线观看区一区二| 成人性做爰aaa片免费看不忠| 182在线播放| 亚洲一区二区视频在线| 成人国产一区二区三区| 国产一二区在线| 中文字幕亚洲一区二区va在线| 日韩亚洲视频| 成人亚洲综合天堂| 国产精品午夜免费| 天堂一区二区三区 | 日韩一区二区三区视频| 亚洲激情在线看| 欧美高清影院| 717成人午夜免费福利电影| 成人性生交免费看| 四虎国产精品永久在线国在线| 欧美午夜免费电影| 9l视频白拍9色9l视频| 国产欧美在线观看免费| 制服.丝袜.亚洲.另类.中文| 午夜激情影院在线观看| 日韩成人在线观看视频| 亚洲成人久久网| 久久无码人妻精品一区二区三区 | 欧美午夜视频在线| 福利在线播放| 中文一区二区在线观看| av一区二区不卡| 精品国产一区二区三区在线观看| www.黄色com| 五月天激情综合网| 久久久久久97| 亚洲图片欧美日韩| 久久午夜影视| 成人欧美一区二区三区黑人孕妇 | 另类欧美日韩国产在线| 成人网欧美在线视频| 亚洲国产视频一区二区三区| 久久6免费视频| 都市激情亚洲欧美| 伊人伊成久久人综合网站| 日韩av毛片在线观看| 欧美另类综合| 全球成人中文在线| 国产又黄又大又粗的视频| 丰满岳乱妇一区二区三区| 久久综合一区二区三区| 日本中文字幕在线看| 亚洲一级片在线观看| 久久久久久久久久久久久久国产| 亚洲成a人片777777久久| 精品国产第一区二区三区观看体验| 人妻精品久久久久中文字幕| 91精品国产视频| 欧美亚洲另类视频| 国产日韩欧美视频在线观看| 99国产精品国产精品毛片| 一个色的综合| 超碰在线公开| 911国产精品| 一本色道久久综合亚洲精品图片| 99国产精品一区二区| 91精品国产91久久久| 亚洲天天综合网| 99久久精品免费看| 水蜜桃在线免费观看| 欧美成人a交片免费看| 日韩一级片在线观看| 国产又大又粗又爽的毛片| 雨宫琴音一区二区在线| 91亚洲va在线va天堂va国 | 精品视频在线观看一区二区| 日本少妇一区| 日韩美女av在线| 久久国产一级片| 久久成人久久爱| 日本一区二区三区视频在线观看| 超碰在线资源| 欧美一区二区在线不卡| 日本成人午夜影院| 午夜亚洲视频| 国产精品国产精品| av毛片在线| 欧美精选午夜久久久乱码6080| 三级黄色片网站| 亚洲久久一区| 成人欧美视频在线| 在线电影福利片| 51午夜精品国产| 女同久久另类69精品国产| 久久精品在线| 欧美精品人人做人人爱视频| xxx性欧美| 精品剧情v国产在线观看在线| 欧美视频一区二区在线| 久久er精品视频| 亚洲精品一区二| 日韩成人亚洲| 最近2019中文字幕在线高清| 国产免费一区二区三区四区五区| 99久久久精品| 浮妇高潮喷白浆视频| 久久久久97| 欧美激情手机在线视频| 亚洲第一第二区| 亚洲综合网站在线观看| 国产无套精品一区二区三区| 欧美午夜电影在线观看| 91精品国产99久久久久久红楼 | 欧美精品成人91久久久久久久| a级片在线播放| 亚洲最大的成人av| 人妻av一区二区| 亚洲美女色禁图| 免费毛片一区二区三区久久久| 蜜桃在线视频| 国产亚洲人成网站在线观看| 日韩乱码一区二区三区| 国产精品人成在线观看免费| 日韩av卡一卡二| 欧美黄色大片网站| 国产精品久久久久久久小唯西川 | 亚洲激情成人在线| 色诱av手机版| 美女国产一区| 亚洲三区在线观看| 精品午夜视频| 97视频在线观看成人| 飘雪影视在线观看免费观看| 欧美亚洲日本国产| 国产激情无码一区二区三区| 国产成人免费视频精品含羞草妖精| 福利视频免费在线观看| 香蕉国产成人午夜av影院| 国产欧美精品久久久| 伊人影院在线视频| 亚洲精品中文字幕av| 中文字幕一区二区在线视频| 一区二区三区欧美| 中文字幕狠狠干| 极品少妇一区二区| 缅甸午夜性猛交xxxx| 北条麻妃国产九九九精品小说| 成人h视频在线观看播放| av福利在线导航| 亚洲一级一级97网| 性做久久久久久久| 色素色在线综合| 九九九久久久久| 国产日韩视频一区二区三区| 99热这里只有精品2| 久久精品女人天堂| 国产性生活免费视频| 国产成人久久| 成人av免费看| 国产福利亚洲| 国产91精品不卡视频| 麻豆电影在线播放| 亚洲人精品午夜在线观看| 国内老熟妇对白hdxxxx| 日本道在线观看一区二区| 精品在线免费观看视频| 国产精品国产自产拍高清av| 手机在线成人av| 狠狠色伊人亚洲综合成人| 黄色影院一级片| 欧美午夜久久| 欧美亚洲视频一区| 国产欧美亚洲精品a| 国产精品日韩欧美一区二区三区| 六九午夜精品视频| 国产激情久久久| www.youjizz.com在线| 久久亚洲私人国产精品va| 国产一区二区三区不卡在线| 亚洲精品第一国产综合精品| 午夜精品久久久久久久第一页按摩| 欧美亚洲动漫另类| 日本一区二区三区精品| 性久久久久久久久久久久| 国产精品免费在线视频| 中文久久乱码一区二区| 精品人妻互换一区二区三区| 成人毛片在线观看| 亚洲一区和二区| 国产一区二区三区在线观看精品| 一区二区xxx| 日本不卡视频一二三区| 中国丰满人妻videoshd| 亚洲一区不卡| 免费av手机在线观看| 亚洲特级毛片| av日韩在线看| 一区在线视频| 成人午夜免费在线| 亚洲裸体俱乐部裸体舞表演av| 免费特级黄色片| 激情欧美亚洲| 久草视频国产在线| 亚洲精品1区2区| www.九色.com| 99国产精品自拍| 啊啊啊一区二区| 亚洲欧美成人综合| 一本色道无码道dvd在线观看| 日韩一区二区久久| 无码精品a∨在线观看中文| 国产精品嫩草99av在线| 亚洲欧洲日产国码无码久久99| 国产午夜精品一区二区三区欧美| 大肉大捧一进一出好爽视频| 丝袜亚洲另类欧美| 少妇一级淫免费放| 精品在线一区二区| 91亚洲一区二区| 国产一二精品视频| 国产草草浮力影院| 久久久久久久久久久久久女国产乱| 精品无码国产污污污免费网站 | 日本成人黄色| 欧美视频网址| 91嫩草国产丨精品入口麻豆| 欧美日韩1区2区3区| 97成人在线免费视频| 香蕉久久国产| 日本免费色视频| 国产91露脸合集magnet| 亚洲蜜桃精久久久久久久久久久久| 久久久精品影视| 熟女av一区二区| 亚洲永久精品大片| 久久夜色精品国产噜噜亚洲av| 欧美最猛性xxxxx直播| 92久久精品一区二区| 精品噜噜噜噜久久久久久久久试看 | 97久久人人超碰caoprom欧美| 久久97精品| 亚洲综合网中心| 亚洲网站视频| 欧美一级裸体视频| 国产成人亚洲综合a∨猫咪| 国产精品一级黄片| 亚洲同性gay激情无套| 国产成人无码精品| 欧美精品一级二级| 性xxxfllreexxx少妇| 日韩一区二区av| 白白色在线观看| 天天综合日日夜夜精品| 欧美在线|欧美| 北条麻妃高清一区| 3d欧美精品动漫xxxx无尽| 成人在线视频网站| 色狼人综合干| 99精品视频网站| 欧美亚洲自偷自偷| 男生和女生一起差差差视频| 99热99精品| 久久中文免费视频| 色综合中文综合网| www.五月天激情| 色爱av美腿丝袜综合粉嫩av| av毛片午夜不卡高**水| 成人两性免费视频| 久久av综合| 无码专区aaaaaa免费视频| 久久成人羞羞网站| 日韩人妻无码精品综合区| 一级特黄大欧美久久久| 一区二区三区在线免费观看视频 | 殴美一级特黄aaaaaa| 色777狠狠综合秋免鲁丝| 老司机2019福利精品视频导航| 99九九视频| 91精品国产乱码久久久久久| 国产情侣av自拍| 99re成人精品视频| 青青草手机在线观看| 制服丝袜日韩国产| seseavlu视频在线| 国产97在线观看| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 中文字幕在线观看1| 亚洲一级黄色片| 东京一区二区| 久久青青草原一区二区| 一区视频在线| 欧美xxxxx精品| 亚洲一区精品在线| 午夜精品久久久久久久91蜜桃| 久久亚洲一区二区三区四区五区高 | 欧美有码在线观看视频| 精品素人av| 青青草精品视频在线| 成人综合婷婷国产精品久久免费| 免费中文字幕在线| 91麻豆精品国产自产在线| 三区四区在线视频| 成人h片在线播放免费网站| 久久密一区二区三区| 亚洲 激情 在线| 国产精品嫩草99a| 99re热视频| 日韩一区二区福利| 成人免费91| 亚洲高潮无码久久| 国产成人精品www牛牛影视| 欧美日韩大片在线观看| 欧美r级在线观看| 2021中文字幕在线| 久久久久久精| 日韩精品视频网| 91麻豆精品久久毛片一级| 欧美日韩精品久久久| 麻豆视频网站在线观看| 亚洲自拍偷拍福利| 亚洲国产精品第一区二区| 自拍视频一区二区| 91福利小视频| 免费观看在线午夜影视| 亚洲一区精品电影| 亚洲国产专区| 色欲av无码一区二区三区| 欧美在线你懂得| 免费网站成人| 国产伦精品一区二区| 久久av最新网址| 欧美日韩生活片| 欧美一级在线视频| 国产美女精品写真福利视频| 欧美一区二区在线视频观看| 蜜桃av一区二区三区| 欧美成人免费观看视频 | 国产精品91免费在线| 欧美韩日一区| 大尺度做爰床戏呻吟舒畅| 色噜噜夜夜夜综合网| 欧美激情午夜| 激情视频在线观看一区二区三区| 久久福利毛片| 色婷婷在线视频观看| 日韩久久精品电影| 欧美视频免费看| 乱人伦xxxx国语对白| 日本一区二区三区dvd视频在线| 99在线小视频| 国产99视频在线观看| 欧美日韩国产成人精品| 人妻丰满熟妇aⅴ无码| 这里是久久伊人| a欧美人片人妖| av日韩在线看| 中文字幕不卡的av|