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

MySQL:如何保證雙十一的主備數據同步

數據庫 MySQL
MySQL 5.7.22 的并行復制策略在通用性上還是有保證的。當然,對于“表上沒主鍵”和“外鍵約束”的場景,WRITESET 策略也是沒法并行的,也會暫時退化為單線程模型。?

之前的文章我們提到過,主備數據庫是通過binlog實現的數據同步:

主庫在接到客戶端更新請求時,執行內部事務的更新邏輯,同時寫binlog。 r

1)edo log commit后,才會回復客戶端ack; 

2)binlog寫成功后就可以同步備庫,因為binlog寫盤成功后,就算后續commit失敗,數據庫也可以根據redo log+binlog重新恢復commit狀態; 

備庫與主庫之間維護一個長鏈接,有專門的線程來發送或者接收請求。

果凍布丁兔,公眾號:陸隊長MySQL:為什么所有實例可以保證數據一致性

無論是主備還是主從,實際上都是為了保證MySQL集群的高可用性:

無論是主備還是主從架構,實際上就是為了系統的高可用性實現的一個策略,防止主機因為某些故障導致異常下線,這時候備份或者從實例就會通過選擇或者其他策略成為主服務實例,對外繼續提供服務。

果凍布丁兔,公眾號:陸隊長MySQL:從MySQL看主從架構高可用性實現

但是如果在一個壓力持續比較久(比如雙十一或者大促期間)的主從系統內,主服務器需要應對龐大的數據讀寫壓力,如果備庫執行日志的速度低于主庫生成日志的速度,那么主從的主備延遲時間越來越長,導致備庫可能一直無法追上主庫。這時候就需要本節引入的備庫并行復制能力。

圖片圖片

如圖所示的兩個黑色箭頭是我們比較關注的,一個是客戶端寫入主庫,一個是備庫上sql_thread執行中轉日志(relay log)。

主庫上影響并發主要是各種鎖,在備庫上的執行,如果 從sql_thread更新數據使用單線程就很大可能導致主備延遲,這也是MySQL5.6版本前在主庫并發高或者TPS高時導致嚴重主備延遲問題的原因。

圖片圖片

上圖有些類似netty的線程模型,沒錯,如果是好的技術模型,那么在很多的技術棧中都會使用。

coordinator只負責讀取中轉日志和分發事務,真正更新日志的邏輯由各個worker線程處理,worker的線程數由參數slave_parallel_workers決定。如果是32核的服務器,這個值可以設置為8~16.

雖然文章中很多人說為了保證備庫的讀服務,線程數為核數1/4~1/2,實際上我是不認同的,應該是主要看核數和讀寫壓力,如果即使是64核的機器,并且寫壓力不大,還是可以繼續保持當前的配置;如果是讀寫比例在10:1,那么這個線程數可以超過1/2。

為了保證事務的冪等性和原子性,我們需要做如下的要求:

1.冪等性:不能造成更新覆蓋。冪等性要求同一行的兩個事務必須分發到同一個worker。這里主要是為了防止由于客戶端的重試導致的事務重復或者是兩個事務之間的上下文依賴導致的數據不一致。

2.原子性:用一個事務必須由一個worker負責。相同事務的語句必須使用一個worker處理,否則可能導致一個worker失敗,另一個worker成功引入的數據不一致問題。

1 并行復制策略介紹

注意,這部分是作者丁奇自己寫的并行復制策略,非官方實現策略。

1.1 按表分發策略

按表分發事務的基本思想是:如果兩個事務更新不同的表,他們就可以并行。因為數據是存儲在表里,所以按表分發,可以保證兩個worker不會更新同一行。

如果有跨表的事務,那么就需要把兩張表放在一起考慮。

圖片圖片

每個worker對應一個hash表,用于保存當前正在這個worker的“執行隊列”里的事務所涉及的表。hash表的key是“庫名.表名”,value是一個數字,表示隊列中有多少事務修改這個表。

在有事務分配給 worker 時,事務里面涉及的表會被加到對應的 hash 表中。worker 執行完成后,這個表會被從 hash 表中去掉。

圖 3 中,hash_table_1 表示,現在 worker_1 的“待執行事務隊列”里,有 4 個事務涉及到 db1.t1 表,有 1 個事務涉及到 db1.t2 表;hash_table_2 表示,現在 worker_2 中有一個事務會更新到表 t3 的數據。

假設在圖中的情況下,coordinator 從中轉日志中讀入一個新事務 T,這個事務修改的行涉及到表 t1 和 t3。

現在我們用事務 T 的分配流程,來看一下分配規則:

  1. 由于事務 T 中涉及修改表 t1,而 worker_1 隊列中有事務在修改表 t1,事務 T 和隊列中的某個事務要修改同一個表的數據,這種情況我們說事務 T 和 worker_1 是沖突的。
  2. 按照這個邏輯,順序判斷事務 T 和每個 worker 隊列的沖突關系,會發現事務 T 跟 worker_2 也沖突。
  3. 事務 T 跟多于一個 worker 沖突,coordinator 線程就進入等待。
  4. 每個 worker 繼續執行,同時修改 hash_table。假設 hash_table_2 里面涉及到修改表 t3 的事務先執行完成,就會從 hash_table_2 中把 db1.t3 這一項去掉。
  5. 這樣 coordinator 會發現跟事務 T 沖突的 worker 只有 worker_1 了,因此就把它分配給 worker_1。
  6. coordinator 繼續讀下一個中轉日志,繼續分配事務。

也就是說,每個事務在分發的時候,跟所有 worker 的沖突關系包括以下三種情況:

  1. 如果跟所有 worker 都不沖突,coordinator 線程就會把這個事務分配給最空閑的 woker;
  2. 如果跟多于一個 worker 沖突,coordinator 線程就進入等待狀態,直到和這個事務存在沖突關系的 worker 只剩下 1 個;
  3. 如果只跟一個 worker 沖突,coordinator 線程就會把這個事務分配給這個存在沖突關系的 worker。

這個按表分發的方案,在多個表負載均勻的場景里應用效果很好。但是,如果碰到熱點表,比如所有的更新事務都會涉及到某一個表的時候,所有事務都會被分配到同一個 worker 中,就變成單線程復制了。

1.2 按行分發策略

要解決熱點表的并行復制問題,需要使用按行并行復制的方法。按行并行復制的核心思路就是:如果兩個事務沒有更新相同的行,在備庫上可以并行執行,這時候就要求binlog的格式必須是row。這時候,我們判定事務T和worker沖突的規則是“修改同一行”。

按行復制和按表復制也是為每個worker分配一個hash表,只是按行復制時,在考慮主鍵的同時還要考慮唯一索引的沖突。

CREATE TABLE `t1` (
  `id` int(11) NOT NULL,
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `a` (`a`)
) ENGINE=InnoDB;


insert into t1 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5);

圖片這兩個事務的主鍵不一致,但是如果分到不同worker,有可能出現sessionB先行,這時候id=1對應的a值還是1,就會出現唯一鍵沖突的問題。因此,基于行的策略,需要考慮唯一鍵,即key為:“庫名+表名+索引a的名字+a的值”;

因此,上表例子中,表t1執行sessionB語句,在binlog記錄了數據行修改前后各個字段的值,coordinator解析語句時,這個事務的hash表有三個項:

  • key=hash_func(db1+t1+"PRIMARY"+2),value=2;這里的value=2是因為修改前后的id值不變,出現了兩次;
  • key=hash_func(db1+t1+"a"+2),value=1;表示會影響到表a=2的數據行;
  • key=hash_func(db1+t1+"a"+1),value=1;表示會影響到表a=1的數據行;

相比于按表并行分發策略,按行并行策略在決定線程分發的時候:

  • 需要消耗更多的計算資源;
  • 要能夠從 binlog 里面解析出表名、主鍵值和唯一索引的值。也就是說,主庫的 binlog 格式必須是 row;
  • 表必須有主鍵;
  • 不能有外鍵。表上如果有外鍵,級聯更新的行不會記錄在 binlog 中,這樣沖突檢測就不準確。

對比按表分發和按行分發這兩個方案的話,按行分發策略的并行度更高。不過,如果是要操作很多行的大事務的話,按行分發的策略有兩個問題:

  • 耗費內存。比如一個語句要刪除 100 萬行數據,這時候 hash 表就要記錄 100 萬個項。
  • 耗費 CPU。解析 binlog,然后計算 hash 值,對于大事務,這個成本還是很高的。

所以,我在實現這個策略的時候會設置一個閾值,單個事務如果超過設置的行數閾值(比如,如果單個事務更新的行數超過 10 萬行),就暫時退化為單線程模式,退化過程的邏輯大概是這樣的:

  • coordinator 暫時先 hold 住這個事務;
  • 等待所有 worker 都執行完成,變成空隊列;
  • coordinator 直接執行這個事務;
  • 恢復并行模式。

2 各數據庫版本并行復制策略

2.1 MySQL5.6并行復制策略

5.6版本開始支持按庫并行復制的策略,由于是按庫,自然粒度比較粗。這個策略的并行效果,取決于壓力模型,如果主庫上有多個DB,并且各個DB的壓力均衡,這個策略還好:

  • 構建hash值只需要庫名,而且一個實例上的DB數不可能會很多,不會出現構建100萬個項這種情況;
  • 不要求binlog格式,因為statement格式的binlog也可以很容易拿到庫名。

但是問題也比較明顯,比如大促項目的數據庫和運營后臺的數據庫一定不是均衡的,因此,策略的應用性有些差。

2.2 MariaDB并行復制策略

MariaDB是基于redo log的組提交(group commit)特性實現:

  • 能夠在一個組內提交的事務,一定不會修改同一行;原因在于說:事務在執行數據更新或者DDL時一定會加鎖,只有事務提交后才會釋放鎖,所以,借助于鎖的互斥性,保證了事務的原子性;
  • 主庫上可以并行執行的事務,備庫上也一定是可以并行執行的;

在實現上:

  • 在一組里面一起提交的事務,有一個相同的commit_id,下一組就是commit_id+1;
  • commit_id直接寫入binlog中;
  • 傳到備庫應用時,相同commit_id事務分發到多個worker執行;
  • 這一組全部執行完成后,coordinator再去取下一批;

MariaDB的目標就是“模擬主庫的并行執行”,但是在具體實現上有些差距,畢竟主庫在一組事務commit時,下一組事務同時處于“執行中”狀態。如圖所示:

圖片圖片

MariaDB的執行過程為:

圖片圖片

在備庫上執行的時候,要等第一組事務完全執行完成后,第二組事務才能開始執行,這樣系統的吞吐量就不夠。

另外,這個方案很容易被大事務拖后腿。假設 trx2 是一個超大事務,那么在備庫應用的時候,trx1 和 trx3 執行完成后,就只能等 trx2 完全執行完成,下一組才能開始執行。這段時間,只有一個 worker 線程在工作,是對資源的浪費。

2.3 MySQL5.7版本并行復制策略

5.7版本提供了類似于MariaDB策略,并增加參數slave-parallel-type控制并行策略:

  • 配置為 DATABASE,表示使用 MySQL 5.6 版本的按庫并行策略;
  • 配置為 LOGICAL_CLOCK,表示的就是類似 MariaDB 的策略。不過,MySQL 5.7 這個策略,針對并行度做了優化。

優化點在于,把階段進行了提前,執行中的事務可能會存在沖突,commit狀態的事務可能又有些延遲,MySQL5.7允許同時處于prepare狀態的事務執行并行操作,因為已經prepare狀態的事務一定也已經通過鎖沖突的檢測:

  • 同時處于prepare狀態的事務在備庫執行時可以并行;
  • 處于prepare狀態的事務與commit狀態的事務之間,可以并行;

binlog 的組提交的時候,介紹過兩個參數:

  • binlog_group_commit_sync_delay 參數,表示延遲多少微秒后才調用 fsync;
  • binlog_group_commit_sync_no_delay_count 參數,表示累積多少次以后才調用 fsync。

這兩個參數是用于故意拉長 binlog 從 write 到 fsync 的時間,以此減少 binlog 的寫盤次數。在 MySQL 5.7 的并行復制策略里,它們可以用來制造更多的“同時處于 prepare 階段的事務”。這樣就增加了備庫復制的并行度。

也就是說,這兩個參數,既可以“故意”讓主庫提交得慢些,又可以讓備庫執行得快些。在 MySQL 5.7 處理備庫延遲的時候,可以考慮調整這兩個參數值,來達到提升備庫復制并發度的目的。

2.4 MySQL5.7.22版本的并行復制策略

MySQL 5.7.22 版本里,MySQL 增加了一個新的并行復制策略,基于 WRITESET 的并行復制,新增了一個參數 binlog-transaction-dependency-tracking,用來控制是否啟用這個新策略。這個參數的可選值有以下三種。

  • COMMIT_ORDER,根據同時進入 prepare 和 commit 來判斷是否可以并行的策略。
  • WRITESET,表示的是對于事務涉及更新的每一行,計算出這一行的 hash 值,組成集合 writeset。如果兩個事務沒有操作相同的行,也就是說它們的 writeset 沒有交集,就可以并行。
  • WRITESET_SESSION,是在 WRITESET 的基礎上多了一個約束,即在主庫上同一個線程先后執行的兩個事務,在備庫執行的時候,要保證相同的先后順序。

當然為了唯一標識,這個 hash 值是通過“庫名 + 表名 + 索引名 + 值”計算出來的。如果一個表上除了有主鍵索引外,還有其他唯一索引,那么對于每個唯一索引,insert 語句對應的 writeset 就要多增加一個 hash 值。

這跟前面介紹的基于 MySQL 5.5 版本的按行分發的策略是差不多的。不過,MySQL 官方的這個實現還是有很大的優勢:

  • writeset 是在主庫生成后直接寫入到 binlog 里面的,這樣在備庫執行的時候,不需要解析 binlog 內容(event 里的行數據),節省了很多計算量;
  • 不需要把整個事務的 binlog 都掃一遍才能決定分發到哪個 worker,更省內存;
  • 由于備庫的分發策略不依賴于 binlog 內容,所以 binlog 是 statement 格式也是可以的。

因此,MySQL 5.7.22 的并行復制策略在通用性上還是有保證的。當然,對于“表上沒主鍵”和“外鍵約束”的場景,WRITESET 策略也是沒法并行的,也會暫時退化為單線程模型。

責任編輯:武曉燕 來源: 陸隊長
相關推薦

2013-11-13 13:44:48

淘寶雙十一背后

2022-03-09 12:26:04

MySQL高可用性主備延遲

2015-11-10 18:37:59

Taste?Analy

2012-11-13 10:27:49

雙十一技術討論

2014-12-01 10:01:19

2024-05-31 13:55:25

2018-11-12 10:12:45

星圖數據

2019-12-05 16:13:25

雙十一互聯網消費電商

2016-11-15 07:56:13

雙十一云計算科技新聞早報

2014-11-11 14:51:56

2013-08-22 09:36:45

阿里巴巴王堅阿里云

2024-08-20 16:13:52

2015-11-10 20:54:31

網購安全雙十一

2023-11-23 13:17:39

MySQL?數據庫

2012-12-26 10:17:55

大數據雙十一天貓

2015-10-22 11:47:28

E店寶ERP雙十一

2022-02-27 14:37:53

MySQL主備數據

2016-11-10 14:28:16

雙十一阿里網購

2013-11-11 13:30:42

閃存

2013-01-10 11:32:12

阿里云雙十一云計算
點贊
收藏

51CTO技術棧公眾號

亚洲欧美高清在线| 99精品国产高清一区二区| aaaaa级少妇高潮大片免费看| av资源网在线播放| 97精品久久久午夜一区二区三区| 久久天天躁狠狠躁夜夜躁| 天天干天天色天天干| 在线播放免费av| 99国内精品久久| 国产精品视频资源| 青青草精品在线视频| 欧美黄色影院| 欧美精品免费视频| 国产高清av在线播放| 毛片在线能看| 国产寡妇亲子伦一区二区| 欧美精品福利视频| 免费看的黄色网| 影音先锋欧美激情| 91福利国产成人精品照片| 在线免费观看成人网| 人妻丰满熟妇av无码区hd| 日韩专区中文字幕一区二区| 美女av一区二区三区| 小毛片在线观看| 国产精品麻豆成人av电影艾秋| 中文字幕日韩av资源站| 精品在线视频一区二区| 国产精品久久久久久无人区| 国产欧美一级| 欧美日本精品在线| xfplay5566色资源网站| 成人国产激情在线| 亚洲18女电影在线观看| 亚洲一区高清| 飘雪影视在线观看免费观看| 国产精品亚洲а∨天堂免在线| 91精品国产自产91精品| 国内偷拍精品视频| 欧美精美视频| 亚洲成人黄色网| 尤物国产在线观看| 日本免费一区二区三区四区| 亚洲午夜久久久久久久久久久| 日本高清久久一区二区三区| 男人天堂综合网| 黄页视频在线91| 国产精品人成电影| 亚洲天堂视频在线播放| 一区二区激情| 久久久久在线观看| 青青草原国产视频| 亚洲精品成人无限看| 一本色道久久综合狠狠躁篇怎么玩 | 久久丝袜美腿综合| av免费精品一区二区三区| 在线视频 中文字幕| 日韩中文字幕亚洲一区二区va在线| 久久久久久美女| 精品97人妻无码中文永久在线| 久久精品欧美一区| www.亚洲一区| 久久中文免费视频| 久久性感美女视频| 一区二区欧美日韩视频| 在线不卡av电影| 韩国女主播一区二区三区| 日韩欧美一区在线| 欧美精品 - 色网| 宅男噜噜噜66国产精品免费| 欧美日韩激情一区二区三区| 黄色三级视频在线| 成人精品高清在线视频| 欧美少妇bbb| 亚洲第一狼人区| 欧美在线一级| 日韩小视频在线观看专区| 三级黄色片免费观看| 亚洲精品一区二区三区中文字幕 | 亚洲a视频在线观看| 国产一区二区伦理| 亚洲综合成人婷婷小说| 国产91免费看| 不卡av电影在线播放| 激情伦成人综合小说| 色欲av伊人久久大香线蕉影院| 成人免费va视频| 精品综合在线| 成年人视频在线看| 亚洲免费观看高清完整版在线| 国产在线无码精品| 男人av在线播放| 色欧美片视频在线观看在线视频| 黄色国产小视频| 国产精品亚洲综合在线观看| 欧美www视频| 黄色性生活一级片| 久久视频在线| 久久久欧美精品| 香蕉污视频在线观看| 美女看a上一区| 成人激情视频在线观看| 欧美视频一二区| 国产欧美综合在线| 青青在线免费视频| 天堂√中文最新版在线| 欧美日韩精品一区二区天天拍小说 | 婷婷中文字幕一区三区| 美女网站免费观看视频| 欧美日韩午夜电影网| 亚洲欧美制服综合另类| 日本少妇xxxxx| 亚洲视频综合| 国产欧美日韩免费| 空姐吹箫视频大全| 国产精品色在线观看| 国产免费裸体视频| a成人v在线| 亚洲精品久久久久久下一站| 性爱在线免费视频| 一区二区三区四区五区精品视频| 国产综合视频在线观看| 亚洲欧美日韩动漫| 亚洲免费视频成人| 欧美大尺度做爰床戏| 国产精品美女久久久久人| 日韩精品在线第一页| 杨钰莹一级淫片aaaaaa播放| 樱桃成人精品视频在线播放| 国产精品主播视频| 手机福利小视频在线播放| 亚洲精品视频免费看| 免费涩涩18网站入口| 视频小说一区二区| 欧美国产激情18| 亚洲专区在线播放| 国产日产欧产精品推荐色| 97干在线视频| 国产美女亚洲精品7777| 在线看片第一页欧美| 五月天综合激情网| 国产精品99久久久久久久女警| 亚洲欧美日韩精品综合在线观看| av日韩亚洲| 精品国产一区二区三区久久久蜜月 | 黄色日韩网站视频| 欧美lavv| 人人草在线视频| 亚洲黄色大片| 欧美多人乱p欧美4p久久| 999视频在线| www久久久com| 一区免费观看视频| 丝袜制服一区二区三区| 日韩精品福利一区二区三区| 久久久久久久一| 国产黄色大片网站| 亚洲久草在线视频| 亚洲精品在线视频播放| 91久久夜色精品国产按摩| 国产极品精品在线观看| 国产一级网站视频在线| 欧美性生交大片免网| 国产精品无码永久免费不卡| 一本色道精品久久一区二区三区 | 日韩一区二区视频在线观看| 天天看片中文字幕| 国产精品综合av一区二区国产馆| 欧美爱爱视频网站| 国产精品美女久久久久| 久久综合久久美利坚合众国| 国产亚洲欧美在线精品| 国产视频在线观看一区二区三区| 国产精彩免费视频| 色欧美自拍视频| 91久久中文字幕| 天堂av在线电影| 精品播放一区二区| 91蜜桃视频在线观看| 91免费国产在线观看| 91av在线免费播放| 成人影院天天5g天天爽无毒影院| 国产精品视频999| 黄网站在线免费| 日韩写真欧美这视频| 日日骚一区二区三区| 懂色av一区二区三区免费观看| 男人添女人下部高潮视频在观看| 日韩中文av| 国产激情视频一区| 九色porny丨首页在线| 精品剧情v国产在线观看在线| 日韩欧美三级在线观看| 国产性色一区二区| 91视频这里只有精品| 欧美精品三级| 日产国产精品精品a∨| 中文字幕区一区二区三| 国产精品xxx视频| 女同一区二区免费aⅴ| 国产亚洲成av人片在线观看桃| av免费观看网址| 在线亚洲高清视频| 国产精品不卡av| 中文字幕亚洲电影| 一级性生活大片| 豆国产96在线|亚洲| 亚洲精品自拍网| 国产日韩综合| 日本阿v视频在线观看| 91中文字幕精品永久在线| 久久手机视频| 澳门成人av| 亚洲在线观看视频| 成人国产激情| 国产成人av在线| 不卡视频观看| 久久久久久久久国产| www红色一片_亚洲成a人片在线观看_| 亚洲午夜久久久影院| 色屁屁草草影院ccyycom| 91精品国产乱码久久蜜臀| 日批视频免费观看| 色哟哟国产精品免费观看| 国产亚洲小视频| 亚洲免费在线观看| 日本不卡一二区| 国产精品丝袜一区| 99久久精品免费视频| 91日韩在线专区| 日本护士做爰视频| 成人久久视频在线观看| 手机看片国产精品| 国产一区二区伦理片| 拔插拔插华人永久免费| 美洲天堂一区二卡三卡四卡视频| 欧美极品欧美精品欧美图片| 亚洲在线成人| 久久久999免费视频| 亚洲免费大片| 成人黄色av片| 国产一区二区精品| aa在线免费观看| 羞羞答答国产精品www一本| 尤物av无码色av无码| 国产视频一区在线观看一区免费| 很污的网站在线观看| 亚洲区欧美区| 国模吧无码一区二区三区| 亚洲国产日本| 亚洲 高清 成人 动漫| 性娇小13――14欧美| www黄色在线| 美女性感视频久久| 午夜不卡福利视频| 国产一区二区导航在线播放| 久久综合桃花网| 懂色中文一区二区在线播放| av无码一区二区三区| 久久在线免费观看| 卡一卡二卡三在线观看| 国产精品久99| 欧美高清视频一区二区三区| 亚洲二区在线观看| 天天操天天摸天天干| 91福利国产成人精品照片| 一级片在线观看视频| 日韩色在线观看| 午夜性色福利影院| 中文字幕成人精品久久不卡| 欧美成人三区| 欧美激情视频在线观看| 天堂在线中文网官网| 国产精品亚洲片夜色在线| 久久影院一区二区三区| 精品免费国产| 手机亚洲手机国产手机日韩| 国产精品自拍合集| 久久99伊人| 999热精品视频| 91在线精品一区二区| 91麻豆制片厂| 亚洲成人精品在线观看| 波多野结衣黄色| 日韩女优av电影| 国产成人天天5g影院在线观看| 久久国产精品99国产精| 在线播放高清视频www| 成人网欧美在线视频| 亚洲第一论坛sis| a级网站在线观看| 免费视频一区| av在线网站免费观看| 91麻豆swag| 中文乱码字幕高清一区二区| 精品成人av一区| 国产视频aaa| 亚洲欧美国产精品专区久久| 主播国产精品| 国产精品视频久久久久| 欧美理论电影在线精品| 国产av第一区| 日韩电影一区二区三区| 午夜久久久久久久| 亚洲卡通动漫在线| 这里只有精品6| 亚洲天堂男人的天堂| av电影院在线看| 成人精品一区二区三区电影免费| 亚洲精品动态| 国产一区二区三区乱码| 激情另类小说区图片区视频区| 中文字幕一区二区三区人妻电影| 亚洲一区二区三区视频在线| 一级黄色片在线看| 亚洲欧美综合另类中字| 国产在线精彩视频| 成人看片视频| 亚洲精品a级片| www.色就是色.com| 中文字幕精品一区二区精品绿巨人| 国产成人亚洲精品自产在线| 日韩精品一区二区三区四区| 蜜桃视频网站在线观看| 国产精品久久中文| 国产伦精品一区二区三区视频| 国产一区二区四区| 国产suv精品一区二区三区| 一级片一级片一级片| 欧美三级电影在线看| 国产精品久久久久久久龚玥菲 | 欧美h视频在线观看| 日本伊人色综合网| 亚洲自拍偷拍图| 色婷婷综合久久久久中文| 四虎在线免费观看| 2019日本中文字幕| 日韩av黄色在线| 精品视频在线观看一区| 99久久婷婷国产综合精品电影 | 粉嫩av一区二区三区免费观看| 亚洲不卡av不卡一区二区| 亚洲36d大奶网| 国产精品少妇自拍| 国产又爽又黄又嫩又猛又粗| 日韩中文字幕精品| 福利一区视频| 在线免费一区| 国产一区二区精品在线观看| 中文字幕影音先锋| 欧美tickling网站挠脚心| 超碰97免费在线| 精品伊人久久大线蕉色首页| 美女黄网久久| 黄色国产在线播放| 在线不卡一区二区| av片在线观看| 国产精品播放| 亚洲专区一区| 91麻豆精品国产91久久综合| 欧美日韩免费观看一区二区三区| 麻豆91在线| 国产精品久久久久久久久久久久冷 | 国产精品视频在线观看免费| 久久亚洲精品视频| 一区二区三区高清在线观看| 少妇人妻无码专区视频| 久久免费看少妇高潮| 在线免费观看一级片| 欧美区在线播放| 九九热爱视频精品视频| 污污网站免费看| 亚洲国产sm捆绑调教视频| 欧美成人片在线| 成人国产精品日本在线| 伊人蜜桃色噜噜激情综合| 亚洲一区视频在线播放| 91精品久久久久久久99蜜桃| 成av人片在线观看www| 亚洲精品一区二区三| 国产91高潮流白浆在线麻豆| 国产超碰人人爽人人做人人爱| 一区二区三区动漫| 亚洲1区在线| 亚洲国产精品毛片av不卡在线| 亚洲乱码国产乱码精品精可以看 | 两个人的视频www国产精品| 盗摄牛牛av影视一区二区| 久久精品网站视频| 亚洲精品一二三| 国产主播福利在线| 粉嫩av免费一区二区三区| 日韩精品欧美精品| 久久久久久久久久久97| 国产亚洲精品久久久久动| 91亚洲精品视频在线观看| 15—17女人毛片| 欧美日韩中国免费专区在线看| 米奇精品一区二区三区| 久久一区二区三区av|