亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于兩級緩存的高效時(shí)序數(shù)據(jù)庫系統(tǒng)

        2022-04-18 02:58:32郭亮亮彭甫镕
        測試技術(shù)學(xué)報(bào) 2022年2期
        關(guān)鍵詞:壓縮算法數(shù)據(jù)庫系統(tǒng)壓縮比

        郭亮亮,靳 燕,楊 博,彭甫镕

        (1.山西省信息產(chǎn)業(yè)技術(shù)研究院有限公司,山西 太原 030006;2.山西大學(xué) 大數(shù)據(jù)科學(xué)與產(chǎn)業(yè)研究院,山西 太原 030006)

        0 引 言

        時(shí)間序列數(shù)據(jù)是一種很重要的數(shù)據(jù)類型,廣泛存在于工業(yè)控制、金融分析和物聯(lián)網(wǎng)等領(lǐng)域[1].對時(shí)間序列數(shù)據(jù)進(jìn)行分析[2]可以發(fā)現(xiàn)數(shù)據(jù)潛在的結(jié)構(gòu)和知識,形成對設(shè)備、網(wǎng)絡(luò)、市場的監(jiān)控與預(yù)警.近些年來,隨著大數(shù)據(jù)時(shí)代的到來和工業(yè)物聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,時(shí)序數(shù)據(jù)的采集、存儲(chǔ)、分析應(yīng)用已經(jīng)形成了一套完整的體系[3].時(shí)序數(shù)據(jù)存儲(chǔ)作為時(shí)間序列分析的一個(gè)重要環(huán)節(jié),寫入速度、并發(fā)能力和存儲(chǔ)效率是存儲(chǔ)技術(shù)的幾大重點(diǎn)問題.現(xiàn)有時(shí)序數(shù)據(jù)庫系統(tǒng)在面對海量時(shí)序數(shù)據(jù)存儲(chǔ)時(shí)也會(huì)體現(xiàn)出明顯的不足之處,主要體現(xiàn)在存儲(chǔ)速度慢和空間利用率較低,這兩個(gè)方面也是衡量時(shí)序數(shù)據(jù)庫性能的重要指標(biāo).在實(shí)際應(yīng)用中通常會(huì)結(jié)合具體應(yīng)用場景對現(xiàn)有時(shí)序數(shù)據(jù)庫做進(jìn)一步優(yōu)化[4].

        基于兩級緩存的高效時(shí)序數(shù)據(jù)庫系統(tǒng)通過對OpenTSDB[5]時(shí)序數(shù)據(jù)庫系統(tǒng)的分析,對影響數(shù)據(jù)存儲(chǔ)速度的因素進(jìn)行了優(yōu)化.通過對比OpenTSDB,Gorilla[6]等壓縮算法的穩(wěn)定性、適用性,選擇Gorilla壓縮算法提升OpenTSDB在空間利用率方面的不足.該系統(tǒng)創(chuàng)新性地加入了兩級緩存機(jī)制,使得存儲(chǔ)速率得到了極大的增強(qiáng).此外,利用Socket[7]的Server/Client模式進(jìn)行數(shù)據(jù)接收,可以實(shí)現(xiàn)多數(shù)據(jù)源的同時(shí)接入,提高了系統(tǒng)的并發(fā)性.在對數(shù)據(jù)查詢做可視化處理后,最終在OpenTSDB的基礎(chǔ)上形成一個(gè)寫入速度快、空間利用率高、穩(wěn)定性好的時(shí)序數(shù)據(jù)庫系統(tǒng).

        1 相關(guān)工作

        伴隨著大量時(shí)間序列數(shù)據(jù)的采集與應(yīng)用,工業(yè)領(lǐng)域普遍的做法是使用商業(yè)實(shí)時(shí)數(shù)據(jù)庫軟件,如OSIsoft PI[8],Wonderware Insql[9],GE IHistorian[10]等作為時(shí)序數(shù)據(jù)的存儲(chǔ)和讀取工具.隨著大數(shù)據(jù)技術(shù)的發(fā)展,近年來也有一些基于HBase[11],MongoDB[12]等大數(shù)據(jù)平臺的研究.目前使用較多的時(shí)序數(shù)據(jù)庫有InfluxDB[13],OpenTSDB等,InfluxDB是一款使用Go語言開發(fā)的時(shí)序數(shù)據(jù)庫,主要使用基于Google的Bigtable[14]架構(gòu)的LSM tree[15]進(jìn)行數(shù)據(jù)存儲(chǔ),也是最為流行的一種工業(yè)時(shí)序數(shù)據(jù)庫.OpenTSDB是基于Hbase的分布式可伸縮時(shí)序數(shù)據(jù)庫,具有良好的分布式存儲(chǔ)優(yōu)勢,易于列擴(kuò)展,是一款流行的開源時(shí)序數(shù)據(jù)庫.時(shí)序數(shù)據(jù)庫的使用彌補(bǔ)了關(guān)系型數(shù)據(jù)庫在面對時(shí)間序列數(shù)據(jù)存儲(chǔ)時(shí)在性能和穩(wěn)定性方面的劣勢,優(yōu)化了存儲(chǔ)結(jié)構(gòu),使得數(shù)據(jù)的插入和查詢更加便捷.然而,通過對現(xiàn)有時(shí)序數(shù)據(jù)庫的對比發(fā)現(xiàn),當(dāng)前所使用的時(shí)序數(shù)據(jù)庫在單機(jī)上的數(shù)據(jù)寫入速度停留在幾萬條/s的級別.為此,本文通過深入研究OpenTSDB的數(shù)據(jù)通訊原理和存儲(chǔ)方式,提出了一種兩級緩存的方案,對寫入速度進(jìn)行優(yōu)化.同時(shí),引入時(shí)序數(shù)據(jù)壓縮算法,在數(shù)據(jù)存儲(chǔ)效率方面進(jìn)一步提高性能.

        2 OpenTSDB的并發(fā)訪問與壓縮分析

        OpenTSDB的關(guān)鍵字包含metric(測度)、timestamp(時(shí)間戳)、value(值)、tag(標(biāo)簽),其寫入過程是將各關(guān)鍵字的值轉(zhuǎn)換成一條行記錄Rowkey(包含metric,tag和時(shí)間分區(qū)),調(diào)用Hbase的寫入接口將Rowkey當(dāng)作行鍵值,時(shí)間偏移當(dāng)作列名,時(shí)序值當(dāng)作數(shù)據(jù)值寫入數(shù)據(jù)庫.OpenTSDB在啟動(dòng)時(shí)首先需要加載配置文件,之后初始化Netty對象生成一個(gè)HTTP服務(wù),用于接收HTTP請求,最后初始化TSDB對象進(jìn)行數(shù)據(jù)寫入.

        在面對海量數(shù)據(jù)時(shí),OpenTSDB有自己的壓縮策略:將Rowkey相同的一行多列的數(shù)據(jù)合并為一行一列數(shù)據(jù).具體做法是將同一個(gè)Rowkey對應(yīng)的所有列(時(shí)間偏移)和所有值(時(shí)間序列值)分別合并為一個(gè)數(shù)組進(jìn)行存儲(chǔ).因?yàn)樗袝r(shí)間偏移的長度一樣,合并后的數(shù)組長度除以單個(gè)時(shí)間偏移的長度即可對合并后數(shù)據(jù)進(jìn)行切分,獲得單個(gè)時(shí)間偏移.對合并后的數(shù)據(jù)值做同樣操作也可以得到相應(yīng)的元素.通過將一行多列合并為一行一列,可以有效減少Rowkey的數(shù)量,提高數(shù)據(jù)的存儲(chǔ)效率.

        OpenTSDB在構(gòu)建Rowkey的時(shí)候并不是直接使用原始值,而是將metric, timestamp, tagk, tagv分別用了一個(gè)3 B的uid做了替代,可以減少Rowkey的存儲(chǔ)空間.所以這里需要一個(gè)表來做uid和真實(shí)值之間的轉(zhuǎn)換,這個(gè)表就是tsdb-uid表.uid表中有兩個(gè)family,分別是uid-name的映射(name family)和name-uid的映射(uid family).另外還有一行特殊的數(shù)據(jù),就是uid已分配情況記錄表.tsdb-uid表會(huì)在執(zhí)行OpenTSDB創(chuàng)建表的腳本時(shí)創(chuàng)建.

        通過對以上OpenTSDB的寫入和壓縮方案的介紹可以看出,OpenTSDB還有很多需要進(jìn)行優(yōu)化的方面,其采用基于Netty[16]的Web服務(wù),會(huì)導(dǎo)致數(shù)據(jù)傳輸性能下降,同時(shí)OpenTSDB為保證線程安全,面對數(shù)據(jù)高速寫入時(shí)異步機(jī)制會(huì)產(chǎn)生高度頻繁的數(shù)據(jù)壓棧操作,導(dǎo)致性能下降.在壓縮算法方面,OpenTSDB自帶的壓縮算法只是將源數(shù)據(jù)進(jìn)行了簡單的合并操作,相比Gorilla壓縮算法將數(shù)據(jù)轉(zhuǎn)換為字節(jié)碼進(jìn)行存儲(chǔ),OpenTSDB的壓縮算法在壓縮效率上有明顯的不足,所以,會(huì)導(dǎo)致其空間利用率較低.在面對海量時(shí)序數(shù)據(jù)的存儲(chǔ)時(shí),針對OpenTSDB暴露出的在吞吐量和空間利用率方面的不足,本文設(shè)計(jì)了基于兩級緩存優(yōu)化與Gorilla壓縮算法的高效數(shù)據(jù)庫系統(tǒng).

        3 基于兩級緩存的寫入速度優(yōu)化

        為了提高寫入效率和系統(tǒng)穩(wěn)定性,提出采用兩級緩存機(jī)制進(jìn)行數(shù)據(jù)存儲(chǔ)優(yōu)化.針對大量數(shù)據(jù)源并發(fā)寫入對服務(wù)器資源占用問題,提出基于消息網(wǎng)關(guān)的一級數(shù)據(jù)緩存機(jī)制.通過消息網(wǎng)關(guān)保證系統(tǒng)接受大量數(shù)據(jù)源傳來的數(shù)據(jù)之前對數(shù)據(jù)進(jìn)行臨時(shí)緩沖,減少網(wǎng)絡(luò)系統(tǒng)I/O數(shù)量,提高系統(tǒng)通訊效率.第二級緩存用于寫入數(shù)據(jù)的批處理,在執(zhí)行數(shù)據(jù)寫入前建立緩存區(qū),當(dāng)緩存區(qū)的數(shù)據(jù)達(dá)到一定量的時(shí)候進(jìn)行一次批量寫入,以此節(jié)省因頻繁執(zhí)行寫入操作帶來的磁盤索引消耗.

        一級緩存建立在數(shù)據(jù)采集與時(shí)序數(shù)據(jù)庫之間,在做數(shù)據(jù)緩存的同時(shí)可以將數(shù)據(jù)源傳來的數(shù)據(jù)做格式轉(zhuǎn)化,將采用不同協(xié)議采集到的數(shù)據(jù)轉(zhuǎn)化為時(shí)序數(shù)據(jù)庫寫入接口所接受的格式.一級緩存使用Flume[17]作為緩存器,F(xiàn)lume是一個(gè)提供緩存機(jī)制的日志處理工具,用于數(shù)據(jù)采集,并對數(shù)據(jù)做簡單處理后轉(zhuǎn)發(fā)到指定接收端.Flume的每一個(gè)處理單元為一個(gè)Agent,其中包含數(shù)據(jù)源Source、緩存區(qū)Channel和輸出Sink.Source將單個(gè)或多個(gè)事件推入緩存區(qū)Channel中供Sink對數(shù)據(jù)做持久化處理,緩存區(qū)Channel大小可以通過配置文件進(jìn)行設(shè)定,Channel中的數(shù)據(jù)會(huì)保存到Sink完成對數(shù)據(jù)持久化操作,并將數(shù)據(jù)以固定的格式傳輸?shù)皆撓到y(tǒng)的寫入接口.一級緩存的工作流程如圖1 所示.

        圖1 一級緩存工作流程圖

        在引入基于消息網(wǎng)關(guān)的數(shù)據(jù)緩存機(jī)制以后,可以避免收集到的所有數(shù)據(jù)一次性涌入數(shù)據(jù)庫,OpenTSDB原有的Netty服務(wù)會(huì)因?yàn)楫惒秸{(diào)用產(chǎn)生的堆棧和壓棧操作導(dǎo)致高頻次的緩存,極其浪費(fèi)CPU資源.為此,本文提出建立TCP直連機(jī)制,建立消費(fèi)者-生產(chǎn)者模式的隊(duì)列機(jī)制,以此來最大程度地利用CPU和內(nèi)存資源.

        二級緩存是在時(shí)序數(shù)據(jù)庫內(nèi)部,在數(shù)據(jù)接收與寫入Hbase之間.當(dāng)有數(shù)據(jù)需要寫入Hbase時(shí),若頻繁調(diào)用寫入接口則會(huì)產(chǎn)生大量的磁盤索引消耗[18].本文提出在調(diào)用Hbase寫入接口之前設(shè)立緩存區(qū),可以使數(shù)據(jù)進(jìn)行批量寫入,當(dāng)數(shù)據(jù)條數(shù)不滿足設(shè)定的閾值時(shí),則會(huì)將數(shù)據(jù)存入緩存區(qū),等到緩存區(qū)內(nèi)數(shù)據(jù)達(dá)到一定條數(shù)時(shí),會(huì)進(jìn)行批量寫入.若數(shù)據(jù)量較小無法達(dá)到緩存區(qū)閾值,則根據(jù)數(shù)據(jù)停留時(shí)間進(jìn)行強(qiáng)制性寫入,以確保時(shí)序數(shù)據(jù)處理時(shí)的時(shí)效性.二級緩存工作流程如圖2 所示.

        圖2 二級緩存工作流程圖

        4 基于Gorilla的扇區(qū)壓縮算法引入

        OpenTSDB當(dāng)前支持HBase作為其主要存儲(chǔ)后端,為了利用HBase的排序和區(qū)域分布,所有OpenTSDB數(shù)據(jù)點(diǎn)都存儲(chǔ)在一個(gè)表中(默認(rèn)情況下表名為tsdb),所有值都存儲(chǔ)在t列族中.OpenTSDB將metric,tags,timestamp屬于同一時(shí)間段內(nèi)的所有數(shù)據(jù)放到一個(gè)扇區(qū)中.傳統(tǒng)OpenTSDB只是根據(jù)metric將所有同一扇區(qū)中的數(shù)據(jù)合并存放,沒有進(jìn)行任何壓縮,導(dǎo)致數(shù)據(jù)寫入后的壓縮比在4∶1左右.為此,針對時(shí)序數(shù)據(jù)的特點(diǎn),對時(shí)序數(shù)據(jù)提出壓縮后存儲(chǔ).

        Gorilla壓縮算法使用單個(gè)字符串鍵識別時(shí)間序列,并依賴更高級別的工具來提取和識別時(shí)間序列的元數(shù)據(jù).算法的主要作用是對8 B的double類型數(shù)據(jù)進(jìn)行壓縮,轉(zhuǎn)換為字節(jié)流,按照一定的格式不斷追加.Gorilla壓縮算法采用依據(jù)時(shí)間序列中數(shù)據(jù)點(diǎn)的壓縮策略,使得其壓縮過程中不必對整個(gè)時(shí)間序列進(jìn)行壓縮,可以節(jié)約大量的壓縮成本.Gorilla壓縮算法將時(shí)間序列的每個(gè)數(shù)據(jù)點(diǎn)表示為一對64 b的值,代表時(shí)間戳和當(dāng)時(shí)的值.時(shí)間戳和值分別使用關(guān)于時(shí)間序列之前值的信息進(jìn)行差異性存儲(chǔ)和壓縮.Gorilla壓縮算法將這個(gè)數(shù)據(jù)流壓縮成按時(shí)間劃分的塊,存儲(chǔ)在一個(gè)2 b 的報(bào)頭中,值以7位存儲(chǔ),總大小只有9 b.然后用一個(gè)2 b頭進(jìn)行編碼,編碼為有11個(gè)前導(dǎo)零、1個(gè)有意義的位和實(shí)際值.總共以14 b存儲(chǔ).相比于OpenTSDB的壓縮算法只改變數(shù)據(jù)格式進(jìn)行存儲(chǔ),Gorilla壓縮算法采用字節(jié)碼的壓縮方式可以實(shí)現(xiàn)更高的壓縮效率.Gorilla壓縮算法的壓縮流程如圖3 所示.其中Gorilla壓縮器的原理如圖4 所示.

        圖3 Gorilla壓縮算法壓縮流程

        圖4 Gorilla壓縮器原理[19]

        為了在基于兩級緩存的高效時(shí)序數(shù)據(jù)庫系統(tǒng)中引入Gorilla壓縮機(jī)制,將同一扇區(qū)的數(shù)據(jù)進(jìn)行合并,使用Gorilla進(jìn)行壓縮再寫入HBase.為區(qū)分Gorilla壓縮后的數(shù)據(jù)與未壓縮數(shù)據(jù),在OpenTSDB的Quantifier中加入標(biāo)志信息.為了讓加入壓縮機(jī)制的OpenTSDB能夠兼容原有數(shù)據(jù)格式,在SaltScanner類子類ScannerCB的call回調(diào)函數(shù)中對返回的塊數(shù)據(jù)進(jìn)行解壓替換處理.先判斷Quantifier中是否含有Gorilla的壓縮標(biāo)志,并根據(jù)壓縮情況采用Gorilla算法進(jìn)行解壓,將解壓后的數(shù)據(jù)重新返回到ScannerCB子類的call回調(diào)函數(shù)中,以此實(shí)現(xiàn)對查詢結(jié)果的解壓.加入Gorilla壓縮算法后的OpenTSDB不僅提高了存儲(chǔ)效率,還完全兼容原有的寫入與查詢方法.

        5 系統(tǒng)測試

        實(shí)驗(yàn)對原OpenTSDB的寫入速度做了測試,并與改進(jìn)后的時(shí)序數(shù)據(jù)庫系統(tǒng)的寫入速度進(jìn)行對比測試.實(shí)驗(yàn)所用設(shè)備配置信息為:主頻:2.20 GHz,處理器:i7-8750H,內(nèi)存16.00GB,硬盤:SSD固態(tài)硬盤.

        5.1 單機(jī)環(huán)境寫入速度

        為驗(yàn)證本文所提出的時(shí)序數(shù)據(jù)庫系統(tǒng)在寫入速度方面的改進(jìn)效果,對主要改進(jìn)步驟對寫入速度的影響進(jìn)行實(shí)驗(yàn)測試.實(shí)驗(yàn)設(shè)置生成20個(gè)測試文件,其中每個(gè)文件中包含200萬條數(shù)據(jù).寫入過程中先根據(jù)線程個(gè)數(shù)將數(shù)據(jù)讀入內(nèi)存,之后進(jìn)行對應(yīng)線程的并發(fā)寫入.原始OpenTSDB的寫入速度和每一步優(yōu)化后的時(shí)序數(shù)據(jù)庫系統(tǒng)的寫入速度如圖5 所示.

        圖5 OpenTSDB寫入速度對比

        通過實(shí)驗(yàn)對比測試可以看出,相比于OpenTSDB的寫入速度,建立兩級緩存機(jī)制的數(shù)據(jù)寫入速度增加了近20倍,這是因?yàn)樵诿鎸Υ罅繑?shù)據(jù)時(shí),該系統(tǒng)中特有的二級緩存機(jī)制對數(shù)據(jù)進(jìn)行了批量寫入,相比OpenTSDB,該系統(tǒng)對Hbase的寫入接口調(diào)用次數(shù)更少,節(jié)約了大量的系統(tǒng)資源,同時(shí)將原來基于Netty的HTTP服務(wù)改為了基于Socket的TCP服務(wù)也會(huì)節(jié)約大量的系統(tǒng)資源,達(dá)到提高寫入速度的目的[20].

        5.2 壓縮比分析

        OpenTSDB利用一種特殊的表結(jié)構(gòu)作為索引,將同一metric的數(shù)據(jù)按時(shí)間戳排列進(jìn)行合并存儲(chǔ),壓縮策略的核心是數(shù)據(jù)合并,其壓縮比在4:1左右.在引入Gorilla壓縮算法后,該系統(tǒng)的壓縮比達(dá)到了接近25∶1,Gorilla壓縮算法使用的策略是將原數(shù)據(jù)轉(zhuǎn)換為字節(jié)碼進(jìn)行存儲(chǔ),可以節(jié)省大量的存儲(chǔ)空間,在數(shù)據(jù)查詢時(shí)只需要將原字節(jié)碼轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)即可.

        壓縮比測試一共進(jìn)行了10輪,首先生成一批數(shù)據(jù),記錄數(shù)據(jù)文件的大小為a(MB),再記錄未寫入數(shù)據(jù)前數(shù)據(jù)庫表結(jié)構(gòu)文件的大小b(MB)和寫入數(shù)據(jù)以后數(shù)據(jù)庫表結(jié)構(gòu)文件的大小c(MB),設(shè)壓縮比為φ,則壓縮比

        為保證寫入環(huán)境一致,在每一次壓縮比測試過程中先對數(shù)據(jù)庫表做清空,所以b為常數(shù),經(jīng)測試b=0.002 507(MB).具體測試結(jié)果如表1 所示.

        表1 壓縮比測試結(jié)果表

        引入Gorilla壓縮算法后,在該系統(tǒng)的第二級緩存中,系統(tǒng)會(huì)對接收到的數(shù)據(jù)先打包為數(shù)據(jù)塊,當(dāng)數(shù)據(jù)塊的個(gè)數(shù)達(dá)到一定閾值時(shí)進(jìn)行一次批量寫入,這樣就確保了數(shù)據(jù)寫入Hbase的效率,使得調(diào)用Hbase寫入接口的次數(shù)減少,節(jié)約因頻繁調(diào)用寫入接口產(chǎn)生的大量的磁盤索引時(shí)間,在節(jié)約了系統(tǒng)資源的同時(shí)還會(huì)提高系統(tǒng)穩(wěn)定性.

        6 結(jié) 論

        本文通過對OpenTSDB的分析和研究,實(shí)現(xiàn)了一種基于兩級緩存的高速時(shí)序數(shù)據(jù)庫系統(tǒng).該系統(tǒng)應(yīng)用于數(shù)據(jù)源和Hbase之間,實(shí)現(xiàn)了時(shí)序數(shù)據(jù)的高性能寫入和存儲(chǔ),其兩級緩存機(jī)制有效地解決了當(dāng)大量數(shù)據(jù)同時(shí)進(jìn)行存儲(chǔ)時(shí)數(shù)據(jù)庫系統(tǒng)的效率問題,引入的Gorilla壓縮算法解決了Hbase在數(shù)據(jù)存儲(chǔ)上的空間消耗量大的問題,同時(shí)數(shù)據(jù)的批量寫入也解決了OpenTSDB在數(shù)據(jù)存儲(chǔ)時(shí)頻繁調(diào)用Hbase寫入接口造成的時(shí)間和系統(tǒng)資源損耗問題.該系統(tǒng)的使用極大地提高了時(shí)序數(shù)據(jù)存儲(chǔ)的穩(wěn)定性和并發(fā)性,為解決工業(yè)時(shí)序數(shù)據(jù)的存儲(chǔ)和分析提供了一種新的可靠的方法.

        猜你喜歡
        壓縮算法數(shù)據(jù)庫系統(tǒng)壓縮比
        質(zhì)量比改變壓縮比的辛烷值測定機(jī)
        軟件(2020年3期)2020-04-20 01:45:24
        基于參數(shù)識別的軌道電路監(jiān)測數(shù)據(jù)壓縮算法研究
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        電子測試(2018年14期)2018-09-26 06:04:24
        微細(xì)銑削工藝數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)與開發(fā)
        更正聲明
        實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)安全采集方案
        核反應(yīng)堆材料數(shù)據(jù)庫系統(tǒng)及其應(yīng)用
        PMU數(shù)據(jù)預(yù)處理及壓縮算法
        低溫廢氣再循環(huán)及低壓縮比對降低歐6柴油機(jī)氮氧化物排放的影響
        高幾何壓縮比活塞的燃燒室形狀探討
        性夜夜春夜夜爽aa片a| 四季极品偷拍一区二区三区视频| 国产精品久久久三级18| 美女脱了内裤张开腿让男人桶网站| 日本成本人三级在线观看| 精品免费福利视频| 日本少妇爽的大叫高潮了| 青青草激情视频在线播放| 无遮挡18禁啪啪羞羞漫画| 欧美疯狂做受xxxxx高潮| 国产一起色一起爱| 久久九九精品国产不卡一区| 一区二区三区精品少妇| 精品久久久久香蕉网| 毛片24种姿势无遮无拦| 亚洲综合色成在线播放| 亚洲乱码一区二区三区成人小说 | 全部孕妇毛片丰满孕妇孕交| 日本一区二区精品88| 人妻人妻少妇在线系列| 亚洲处破女av一区二区| 激情五月天色婷婷久久| 中文字幕 亚洲精品 第1页| 国产超碰人人爽人人做人人添| 韩国19禁无遮挡啪啪无码网站| 日韩二三区| 日韩极品视频在线观看免费| 成人免费毛片立即播放| 日本国产亚洲一区二区| 特级精品毛片免费观看| 失禁大喷潮在线播放| 国内精品人妻无码久久久影院94 | 国产黄片一区二区三区| 华人免费网站在线观看| 中文区中文字幕免费看 | 成人免费丝袜美腿视频| 亚洲一区二区三区av天堂| 九一免费一区二区三区偷拍视频| 一本色道久久爱88av| 久久无码专区国产精品s| 十八岁以下禁止观看黄下载链接|