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

從Linux內(nèi)核角度看InnoDB同步機(jī)制的實(shí)現(xiàn)(上)

運(yùn)維 系統(tǒng)運(yùn)維
InnoDB是符合MVCC(Multi-Version Concurrency Control)規(guī)范的,通俗的講就是寫加鎖,讀不加鎖,讀寫不沖突。有這么一個(gè)前提mysql才能對(duì)并發(fā)有不錯(cuò)的處理能力,但是很多時(shí)候我們不希望多個(gè)線程同時(shí)修改同一個(gè)數(shù)據(jù),我們的做法就是設(shè)置isolation的級(jí)別,保證數(shù)據(jù)的一致性。我們接下來就來探討下InnoDB中的同步機(jī)制。

[[171774]]

一:引子

InnoDB是符合MVCC(Multi-Version Concurrency Control)規(guī)范的,通俗的講就是寫加鎖,讀不加鎖,讀寫不沖突(有些情況下是不符合MVCC的,比如當(dāng)isolation級(jí)別為serializable時(shí),是讀寫沖突的,這又跟autocommit參數(shù)的值有關(guān),這里不展開講)。有這么一個(gè)前提mysql才能對(duì)并發(fā)有不錯(cuò)的處理能力,但是很多時(shí)候我們不希望多個(gè)線程同時(shí)修改同一個(gè)數(shù)據(jù),我們的做法就是設(shè)置isolation的級(jí)別,保證數(shù)據(jù)的一致性。我們接下來就來探討下InnoDB中的同步機(jī)制。

二:為什么要同步機(jī)制

比如我們現(xiàn)在mysql-server上跟客戶端建立里3個(gè)連接,某一時(shí)刻這個(gè)三個(gè)連接同時(shí)發(fā)來了一個(gè)請(qǐng)求,需要把名為"bugall"的用戶的money增加10000,在這個(gè)時(shí)候你不希望別的連接再來修改這個(gè)值,通常我們會(huì)在"bugall"這個(gè)用戶的數(shù)據(jù)上加一把排它鎖,這樣的話所有的對(duì)"bugall"對(duì)應(yīng)數(shù)據(jù)做修改的請(qǐng)求連接都會(huì)被序列化,對(duì)"bugall"做修改的時(shí)候其它修改的請(qǐng)求都會(huì)被阻塞。這個(gè)阻塞過程是怎么實(shí)現(xiàn)的呢?或是說這個(gè)同步機(jī)制是怎么實(shí)現(xiàn)的?我們接著往下看。

三:內(nèi)存模型

內(nèi)存模型決定里CPU怎樣訪問內(nèi)存,以及并發(fā)情況下各CPU之間的影響。但是內(nèi)存模型并不包括虛擬地址轉(zhuǎn)換,因?yàn)樽罱KCPU訪問的內(nèi)存的物理地址,內(nèi)存模型主要關(guān)心的是CPU和內(nèi)存之間數(shù)據(jù)和物理地址的傳輸。不同硬件之間內(nèi)存模型的差異在于硬件是根據(jù)怎樣的順序來執(zhí)行l(wèi)oad和store指令,改變執(zhí)行順序或許有可能帶性能的提升,除此之外,內(nèi)存模型還指定了多個(gè)處理器訪問同一內(nèi)存地址的行為,最簡(jiǎn)單的內(nèi)存模型就是順序內(nèi)存模型(sequential memory model),也稱為strong ordering,在這個(gè)模型下,所有的load和store指令是根據(jù)程序運(yùn)行順序執(zhí)行的。

  1. load %r1,A //將內(nèi)存地址A中的值放入寄存器r1 
  2. load %r2,B //將內(nèi)存地址B中的值放入寄存器r2 
  3. add %r3,%r1,%r2 //將寄存器r1與r2的值相加,并放入寄存器r3 
  4. store %r3,c //將寄存器r3中的值寫入到內(nèi)存地址c中  

在數(shù)序內(nèi)存模型下,執(zhí)行的順序都是按照程序運(yùn)行的順序進(jìn)行的,若還未將內(nèi)存地址A中的值取到,則不能執(zhí)行從內(nèi)存地址B中取值的操作除了要求內(nèi)存操作的順序與程序運(yùn)行順序一致,順序內(nèi)存模型, 還要求從CPU或者I/O設(shè)備中讀取或者寫入操作是原子的,即一旦開始了,這些操作就不能被其他的內(nèi)存操作中斷 。

四:臨界區(qū)與互斥

雖然順序內(nèi)存模型的執(zhí)行順序是根據(jù)程序的運(yùn)行順序,但是多個(gè)CPU對(duì)同一個(gè)內(nèi)存地址的訪問順序確實(shí)不確定的,而正是因?yàn)樯倮镌L問的確定性從而導(dǎo)致競(jìng)爭(zhēng)(race condition)條件的發(fā)生。為了說明這個(gè)問題,假設(shè)有一個(gè)全局的計(jì)數(shù)器counter,CPU操作每次將該值加1,同時(shí)要求該計(jì)數(shù)器需要非常精確的展示當(dāng)前CPU的操作次數(shù) 。

  1. load %r1,counter //將計(jì)數(shù)器counter的值讀取到寄存器r1 
  2. add %r1,1 //將寄存器r1中的值加1 
  3. store %r1,counter //并存放到計(jì)數(shù)器counter中 

 接下來有兩種CPU順序的執(zhí)行累加操作

 在該順序下,兩個(gè)CPU執(zhí)行的時(shí)間交錯(cuò),沒有發(fā)生race condition,因此***得到的值符合之前的預(yù)期,然而,還有一種可能性。

 

可以發(fā)現(xiàn):若當(dāng)兩個(gè)CPU同時(shí)進(jìn)行l(wèi)oad操作時(shí),那么最終將會(huì)產(chǎn)生錯(cuò)誤的結(jié)果。因?yàn)槊總€(gè)CPU在自增前讀到的數(shù)據(jù)都是0,那么不管之后的操作順尋如何,得到的結(jié)果永遠(yuǎn)會(huì)是1,而正確的值應(yīng)為2。 

在兩個(gè)或者多個(gè)CPU之間更新共享的數(shù)據(jù)結(jié)構(gòu)指令序列會(huì)產(chǎn)生race condition,指令序列本身稱為臨界區(qū)(critical section),操作的數(shù)據(jù)稱為臨界資源(critical resource)。如上面代碼中的三個(gè)指令序列可視為臨界區(qū),為里消除多個(gè)CPU并發(fā)訪問臨界區(qū)而導(dǎo)致的race condition,故需要限制同一個(gè)時(shí)刻只允許一個(gè)CPU執(zhí)行臨界區(qū),而這就是互斥(mutex exclusion)。

五:原子操作

為了保證同一時(shí)刻只允許一個(gè)CPU執(zhí)行臨界區(qū),當(dāng)前硬件都提供里基于原子的read-modify-write操作。read-modify-write操作允許一個(gè)CPU讀取一個(gè)值,修改該值,并將修改完成的值寫回到內(nèi)存的三個(gè)操作作為一個(gè)原子總線操作,其在CPU中是一個(gè)特別的指令,并且只有在需要同步的時(shí)候才使用。對(duì)于具體進(jìn)行怎樣的modify操作每個(gè)實(shí)現(xiàn)標(biāo)準(zhǔn)可能并不相同,但通常來說,目前的CPU都支持test-and-set(TAS)指令,該指令從內(nèi)存中讀取一個(gè)字節(jié)或者一個(gè)word(4個(gè)字節(jié)),然后和0進(jìn)行比較,并且無條件的將其在內(nèi)存中的值設(shè)置為1,所有這些操作都是原子操作。一旦CPU在執(zhí)行test-and-set操作,其它任何CPU和I/O設(shè)備都不能使用總線,通過test-and-set指令,操作系統(tǒng)或者數(shù)據(jù)庫系統(tǒng)可以構(gòu)造更高級(jí)別的同步操作,如spin lock(自旋鎖),semephore(信號(hào)量)。

六:自旋鎖

在TAS的基礎(chǔ)上,可以實(shí)現(xiàn)很多互斥的數(shù)據(jù)結(jié)構(gòu),而spin lock則是使用最為廣泛,也最為簡(jiǎn)單的一種互斥結(jié)構(gòu)。spin lock使用來對(duì)short-term critical section進(jìn)行互斥的數(shù)據(jù)結(jié)構(gòu),特別需要注意的是,spin lock用來互斥的critical section的代碼應(yīng)該比較少,即一般可以較快執(zhí)行完代碼,并釋放spin lock,因?yàn)閟pin lock會(huì)使其它需要獲取鎖的線程進(jìn)入忙等,占用CPU。為在多CPU環(huán)境中利用test_and_set指令實(shí)現(xiàn)進(jìn)程互斥,硬件需要提供進(jìn)一步的支持,以保證test_and_set指令執(zhí)行的原子性。這種支持目前多以"鎖總線"(bus locking)的形式提供的,由于test_and_set指令對(duì)內(nèi)存的兩次操作都需要經(jīng)過總線,在執(zhí)行test_and_set指令之前鎖住總線,在執(zhí)行test_and_set指令后鎖定總線,即可保證test_and_set指令執(zhí)行的原子性。

七:自旋鎖實(shí)現(xiàn)

實(shí)現(xiàn)最基本的TAS指令就是使用swap-atomic操作。該操作僅僅將寄存器中的值與內(nèi)存的值進(jìn)行交換,通過swap-atomic 可以用來構(gòu)造test-and-set操作,首先將寄存器中的值設(shè)置為1,然后執(zhí)行atomic swap,***和寄存器中的值進(jìn)行比較。

  1. int 
  2.   test_and_set(volatile int* addr){ 
  3.       int old_value; 
  4.       old_value = swap_atomic(addr,1); 
  5.       if(old_value==0){ 
  6.           return 0; 
  7.       } 
  8.       return 1; 
  9.   }   

變量addr的類型是init,表明需要操作的單位是word.volatile修飾詞告訴編譯器從內(nèi)存中讀取addr的值,因?yàn)榧词贡静僮鳑]有修改addr的值,其它CPU也可能修改該值,那么在這中情況下,可能會(huì)導(dǎo)致執(zhí)行test_and_set得到錯(cuò)誤的結(jié)果。swap_atomic函數(shù)執(zhí)行swap-atomic的硬件指令,并返回交換前內(nèi)存中addr的值,test-and-set操作是由兩個(gè)獨(dú)立的操作組合為一個(gè)指令,***個(gè)階段是將addr中的值設(shè)置為1,第二階段比較之前取得的結(jié)果。初始化時(shí),將其值設(shè)置為0 。

  1. typedef init lock_t 
  2.    void 
  3.    initlock(volatile lock_t *lock_status){ 
  4.        *lock_status =  0; 
  5.    }  

使用前面的TAS方法講一個(gè)spin lock對(duì)象上鎖 

  1. void 
  2.     lock(volatile lock_t* lock_statue){ 
  3.         while(test_and_set(lock_status)==1); 
  4.     }  

當(dāng)lock_status的值為0時(shí),test_and_set返回的結(jié)果為0,上鎖成功。若該對(duì)象已經(jīng)被使用,那么需要在while中循環(huán)(spin),知道對(duì)象釋放鎖。這也是spin lock名字的由來。

 

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2017-12-15 10:20:56

MySQLInnoDB同步機(jī)制

2025-03-31 00:01:12

2025-11-05 03:00:00

Linux內(nèi)核TCP粘包

2019-05-27 14:40:43

Java同步機(jī)制多線程編程

2024-07-25 11:53:53

2024-07-05 08:32:36

2021-06-26 07:04:24

Epoll服務(wù)器機(jī)制

2025-09-05 07:13:13

2024-06-28 08:45:58

2012-07-09 09:25:13

ibmdw

2011-11-23 10:09:19

Java線程機(jī)制

2019-04-28 16:10:50

設(shè)計(jì)Redux前端

2022-03-03 08:01:41

阻塞與非阻塞同步與異步Netty

2012-07-27 10:02:39

C#

2009-08-12 13:37:01

Java synchr

2010-03-15 16:31:34

Java多線程

2015-05-05 11:04:31

CoreOS自動(dòng)化運(yùn)維

2021-07-07 23:38:05

內(nèi)核IOLinux

2024-07-08 12:51:05

2020-02-04 09:53:05

數(shù)據(jù)安全數(shù)據(jù)泄漏信息安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一本色道久久综合狠狠躁篇的优点| 亚洲人成在线播放网站岛国| 欧美在线视频播放| 99久久人妻精品免费二区| 欧美videosex性极品hd| jvid福利写真一区二区三区| 日韩av免费网站| 天堂av免费在线| 在线成人免费| 性做久久久久久| 亚洲精品久久久久久久久久久| 国产高清精品软男同| www.av日韩| 亚洲最黄网站| 最近2019年好看中文字幕视频| 色一情一区二区| 男人添女人下部高潮视频在线观看 | 亚洲国产美女| 精品久久久久一区| www.日日操| 在线观看男女av免费网址| 99久久久精品| 国产91免费观看| 成年人一级黄色片| 国产不卡av一区二区| 欧美精品在线视频| 国产成人精品视频免费看| 黄色网在线免费看| 99视频超级精品| 国产精品揄拍500视频| 国产在线免费视频| 欧美成人自拍| 亚洲欧洲一区二区三区久久| 中文字幕免费高清在线| 中文不卡1区2区3区| 国产精品婷婷午夜在线观看| 国模精品一区二区三区| 一级淫片免费看| 免费国产自线拍一欧美视频| 欧美人在线观看| 欧美老女人性生活视频| 久久电影在线| 日韩欧美电影一二三| 亚洲天堂av线| 三级在线观看视频| 一区二区在线免费| 欧美午夜精品久久久久久蜜| 亚洲精品久久久狠狠狠爱| 老司机免费视频一区二区| 欧美裸体男粗大视频在线观看| 日本综合在线观看| 国产在视频线精品视频www666| 欧美变态凌虐bdsm| 在线黄色免费看| 桃色一区二区| 一本色道**综合亚洲精品蜜桃冫| 99色这里只有精品| 午夜dj在线观看高清视频完整版| 亚洲欧美影音先锋| 四虎一区二区| 精品视频一二区| 91美女蜜桃在线| 精品一区二区三区日本| 狠狠躁夜夜躁av无码中文幕| 国产二区国产一区在线观看| 久久九九电影| 欧美日韩在线一区二区| 茄子视频成人免费观看| 国产夫妻在线播放| 亚洲国产一区在线观看| 久久在线中文字幕| 国产在线xxx| 香蕉成人啪国产精品视频综合网 | 欧美国产一区二区| 欧美日韩一区二区视频在线| 亚洲 欧美 精品| 99精品视频在线观看| 久久av一区二区三区亚洲| 色一情一乱一区二区三区| 成人教育av在线| 久久久久久久久久久久久久久久av | 亚洲综合在线播放| 国产国语亲子伦亲子| 精东粉嫩av免费一区二区三区| 成人av在线天堂| www.看毛片| 成av人片一区二区| 欧美日韩在线播放一区二区| 精华区一区二区三区| 中文无字幕一区二区三区| 一区精品在线| 污的网站在线观看| 欧美日韩免费在线| 欧美 日韩 国产 激情| 欧美成人毛片| 欧美精品一区二区三区在线播放 | 日韩精品日韩在线观看| 91视频在线网站| 色综合咪咪久久网| 久久人人爽人人爽人人片av高请| 69精品久久久| 日韩专区中文字幕一区二区| 成人网页在线免费观看| 91久久精品国产91性色69| 成人综合激情网| 农村寡妇一区二区三区| 国产一二三区在线视频| 亚洲欧美日韩中文播放 | 午夜小视频在线| 综合分类小说区另类春色亚洲小说欧美 | 久久99亚洲热视| 中文字幕69页| 国产精品69毛片高清亚洲| 精品产品国产在线不卡| 在线观看免费版| 亚洲一区二区精品视频| 欧美精品aaaa| 老司机精品在线| 色哟哟亚洲精品一区二区| 国产 日韩 欧美 成人| 日本人妖一区二区| 国产精品青青草| 香蕉视频国产在线观看| 欧美视频中文在线看| 91看片破解版| 精品国产精品国产偷麻豆| 久久精品99久久久香蕉| 精品欧美一区二区三区免费观看| 日本视频一区二区三区| 久久99精品久久久久久三级| 韩国中文字幕在线| 色呦呦网站一区| 香蕉在线观看视频| 国产精品一线天粉嫩av| 97香蕉久久超级碰碰高清版| 国产免费av观看| 国产欧美一区二区三区鸳鸯浴| 欧美视频在线观看视频| 国产激情综合| 国产一区二区三区精品久久久| 国产少妇在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 精品无码久久久久国产| av资源网在线播放| 日韩一级二级三级精品视频| 伊人影院综合网| 性娇小13――14欧美| 91麻豆国产精品| √新版天堂资源在线资源| 黑人精品xxx一区| 久久性爱视频网站| 国内精品福利| www.久久久| av网站免费在线观看| 欧美精品 国产精品| 免费人成又黄又爽又色| 亚洲尤物精选| 久久riav| 欧美片第一页| 日韩精品久久久久久久玫瑰园| 顶臀精品视频www| 国产曰批免费观看久久久| 一区二区三区在线视频看| jizz欧美| 最新日韩中文字幕| 伊人久久亚洲综合| 中文字幕永久在线不卡| 亚洲国产成人va在线观看麻豆| 青青草成人影院| 国产日韩在线观看av| 黄色网址在线免费观看| 日韩免费一区二区三区在线播放| 久久久久久久久久久久久女过产乱| 国内精品视频一区二区三区八戒| 天天干天天操天天干天天操| 久久久国产精品入口麻豆| 久久久精品网站| 色哟哟中文字幕| 欧美最新大片在线看| 国产色无码精品视频国产| 丰满少妇久久久久久久| 蜜臀久久99精品久久久酒店新书| 欧美大黑bbbbbbbbb在线| 粉嫩av四季av绯色av第一区| 成人性生交大片免费网站| 久久精品电影一区二区| 日韩一级中文字幕| 欧美午夜视频网站| 九九热国产在线| 久久精品视频一区| 熟妇无码乱子成人精品| 国产午夜精品一区二区三区欧美 | 欧美另类综合| 免费不卡亚洲欧美| 福利一区三区| 国产91九色视频| 最新av在线播放| 亚洲一区二区久久久| 亚洲a视频在线| 欧美伊人久久久久久久久影院| 男女性高潮免费网站| 国产日韩精品视频一区| www.com日本| 麻豆成人久久精品二区三区小说| 日韩人妻无码精品久久久不卡| 日韩精品欧美| 欧美一区二区三区电影在线观看| 久久伊人精品| 国产精品免费一区豆花| 9765激情中文在线| 久久精品国产96久久久香蕉| 欧美人体大胆444www| 欧美成人video| 羞羞色院91蜜桃| 狠狠色香婷婷久久亚洲精品| 中文字幕av久久爽av| 国产欧美日韩久久| 熟妇高潮一区二区| 国产精品一区二区不卡| 欧美婷婷精品激情| 免费亚洲视频| 国产97在线 | 亚洲| 欧美a级片一区| 一区二区三区四区欧美| 欧美精品momsxxx| 久久久综合亚洲91久久98| 中文字幕av一区二区三区四区| 国产精品久久一区| 欧美片第一页| 国产aⅴ夜夜欢一区二区三区| 第四色日韩影片| 欧美国产日韩一区二区三区| 久久99精品久久| 中文字幕久热精品在线视频| 精品美女视频在线观看免费软件| 亚洲精品国产精品国产自| 国模私拍视频在线| 欧美一区二区三区不卡| 国产片在线播放| 欧美精品国产精品| 国产精品爽爽久久| 7878成人国产在线观看| 国产一区二区三区在线观看| 欧美日韩一区三区四区| 中文字幕无码乱码人妻日韩精品| 91成人免费在线| 国产成人无码专区| 色视频成人在线观看免| 久久久精品视频网站 | 色综合色综合网色综合| 3d玉蒲团在线观看| 久久国产精品久久久| a毛片在线看免费观看| 美日韩丰满少妇在线观看| 国产高清一区二区三区视频| 欧美久久精品午夜青青大伊人| 1stkiss在线漫画| 欧美日韩国产成人| av资源在线看片| 日本成人在线视频网址| 成人午夜精品| 国产精品视频免费在线| 99re8精品视频在线观看| 51精品国产人成在线观看| 成人自拍在线| 免费国产在线精品一区二区三区| 中国av一区| 一本久道久久综合| 在线免费观看日本欧美爱情大片| 日韩激情视频一区二区| 亚洲永久免费| 亚洲欧美日韩综合网| 国产精品原创巨作av| 日本69式三人交| 欧美—级在线免费片| 一区二区在线观看免费视频| 欧美日韩另类视频| 中文字幕一区二区三区人妻四季 | 视频二区在线| 日韩色av导航| 9999热视频在线观看| 国产精品精品一区二区三区午夜版| 色8久久久久| 国产伦精品一区二区三区照片91| 深爱激情综合网| 欧美少妇一级片| 国产欧美日韩一区二区三区在线| 亚洲精品怡红院| 国产成人av资源| 美女被到爽高潮视频| 亚洲欧美日本在线| 国产精品久久久久久99| 欧美精品粉嫩高潮一区二区| 亚洲欧美日本在线观看| 久久久久99精品久久久久| 黄色aa久久| 91精品久久久久久久久久久久久 | 日韩精品极品在线观看| 精品孕妇一区二区三区| 亚洲**2019国产| 国产区一区二| 日本不卡在线观看| 黄色在线成人| 污色网站在线观看| 99精品国产热久久91蜜凸| 免费在线观看a级片| 精品久久久国产| 国产成人毛毛毛片| 在线亚洲男人天堂| 成人片免费看| 激情久久av| 你懂的网址国产 欧美| 亚洲第一中文av| 97aⅴ精品视频一二三区| 唐朝av高清盛宴| 欧美精品自拍偷拍动漫精品| 久草福利在线| 69视频在线播放| eeuss鲁片一区二区三区| 99热一区二区三区| 麻豆精品一区二区| 亚洲久久久久久久| 欧美日韩精品在线| 黑人精品一区二区三区| 久久99精品久久久久久青青91| 激情中国色综合| 日韩国产欧美一区| 天堂久久久久va久久久久| 北岛玲一区二区| 亚洲一级二级三级在线免费观看| 国产强伦人妻毛片| 久久精品久久久久电影| 国产精品天堂蜜av在线播放| 日韩一区二区三区资源| 久久久久国产一区二区| 波多野结衣先锋影音| 亚洲一区二区视频| 亚洲精品国偷拍自产在线观看蜜桃| 欧美精品一区三区| 韩国一区二区三区视频| 成人短视频在线看| 激情深爱一区二区| 午夜国产福利一区二区| 欧美一区二区二区| а√中文在线8| 成人av片网址| 99riav1国产精品视频| 久久精品女同亚洲女同13| 亚洲大型综合色站| 亚洲aaa在线观看| 欧美自拍视频在线| 国产精品亚洲二区| 污污网站免费看| 国产精品久久久久影视| 亚洲图片中文字幕| 欧美成人一区二区三区电影| 久久视频免费| 国产伦精品一区二区三区四区视频_| 成人亚洲一区二区一| 日韩免费视频一区二区视频在线观看| 国产视频精品自拍| 久久久人成影片一区二区三区在哪下载 | 欧美国产高清| 韩国三级hd两男一女| 日韩欧美视频一区二区三区| 成年人在线免费观看| 国产欧美日韩最新| 欧美全黄视频| 手机av免费看| 欧美三日本三级三级在线播放| 精品51国产黑色丝袜高跟鞋| 超碰在线97av| 裸体素人女欧美日韩| 老司机精品免费视频| 日韩亚洲欧美高清| 日产福利视频在线观看| 五月天综合网| 国产精品911| 国产情侣自拍av| 最好看的2019年中文视频| 97色成人综合网站| 激情视频综合网| 亚洲激情自拍偷拍| 欧洲毛片在线| 92国产精品视频| 欧美中文日韩| 一区二区三区四区五区| 日韩精品中文字幕视频在线| 亚洲日本免费电影| 欧美爱爱视频免费看| 国产精品国产精品国产专区不蜜| 亚洲精品久久久狠狠狠爱| 国产精品视频白浆免费视频| 国产综合精品一区| 91无套直看片红桃在线观看| 精品国产百合女同互慰| 国产91亚洲精品久久久| 天堂…中文在线最新版在线| 亚洲欧洲精品成人久久奇米网| 秋霞视频一区二区|