• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    DCST:主存空間高效的緩存敏感型T-樹索引研究*

    2017-02-20 10:48:12史太齊秦小麟
    計算機與生活 2017年2期
    關(guān)鍵詞:失配關(guān)鍵字結(jié)點

    史太齊,劉 亮,秦小麟

    南京航空航天大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,南京 210016

    DCST:主存空間高效的緩存敏感型T-樹索引研究*

    史太齊+,劉 亮,秦小麟

    南京航空航天大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,南京 210016

    已有主存索引通過指針消除和預(yù)取機制提升索引結(jié)構(gòu)的緩存感知能力,減少緩存失效次數(shù),但是并沒有有效地利用現(xiàn)代計算機的CPU性能和內(nèi)存空間。為了進一步提升索引結(jié)構(gòu)對內(nèi)存空間以及CPU性能的利用率,提出了DCST-樹索引結(jié)構(gòu)。該索引結(jié)構(gòu)采用數(shù)據(jù)壓縮的方式,對結(jié)點中的關(guān)鍵字進行壓縮,提高索引結(jié)構(gòu)對內(nèi)存空間和緩存空間的利用率,減少內(nèi)存訪問次數(shù),提高緩存命中率。同時,對結(jié)點進行分區(qū),增加結(jié)點容量,提高結(jié)點扇出度,降低樹的高度。實驗結(jié)果表明,所提方案比現(xiàn)有主存索引機制具有更加高效的空間利用率和緩存感知能力,同時具有更加優(yōu)秀的查詢處理能力。

    壓縮;主存索引;緩存敏感

    1 引言

    隨著主存容量不斷增加,主存價格不斷降低,計算機配備超大容量主存成為現(xiàn)實[1-4]。例如,許多數(shù)據(jù)庫服務(wù)器都已經(jīng)使用主存作為數(shù)據(jù)的主要存儲介質(zhì)??梢灶A(yù)見,在不久的將來,所有數(shù)據(jù)都可以存放在主存當(dāng)中,主存數(shù)據(jù)庫也因此得以快速發(fā)展。研究人員已經(jīng)對主存數(shù)據(jù)庫的各個方面進行了研究,索引作為提升數(shù)據(jù)庫查詢性能的重要方式,也是研究人員關(guān)注的重點。

    隨著計算機硬件的發(fā)展,主存的訪問速度成為數(shù)據(jù)庫新的性能瓶頸[5-6]。如圖1所示,在過去的三十幾年,處理器速度的提升速率大于主存速度的提升速率,長期累積下來,不均衡的發(fā)展速度造成了內(nèi)存的存取速度嚴重滯后于處理器的計算速度,內(nèi)存瓶頸導(dǎo)致高性能處理器難以發(fā)揮出應(yīng)有的功效——內(nèi)存墻效應(yīng)[7-10]。因此,現(xiàn)代計算機處理器都配備了高速緩存[11],用于平衡處理器和主存之間的速度差異。緩存是位于處理器和主存之間的低延遲存儲器,存儲了處理器最近訪問過的數(shù)據(jù)。緩存的讀取速率比主存的讀取速率快一到兩個數(shù)量級。因此,提升應(yīng)用程序的緩存感知能力,可以有效提高應(yīng)用程序的執(zhí)行效率。索引技術(shù)是數(shù)據(jù)庫系統(tǒng)的重要組成部分,提升索引技術(shù)的緩存感知能力,對于提升數(shù)據(jù)庫系統(tǒng)性能是十分重要的[12-16]。

    Fig.1 Comparison of process-memory performance圖1 處理器和主存性能發(fā)展對比

    現(xiàn)有的緩存感知型索引結(jié)構(gòu),都是通過調(diào)整索引的數(shù)據(jù)結(jié)構(gòu)來減少緩存失配的次數(shù),與傳統(tǒng)的磁盤數(shù)據(jù)庫索引相比有了很大的性能提升[16-20]。但是這些索引結(jié)構(gòu)并沒有高效利用主存空間,當(dāng)索引數(shù)據(jù)較多時,會消耗大量的存儲空間。高速緩存的容量是十分有限的,通常只有主存容量的幾百分之一,甚至幾千分之一。在進行查找時,會造成很多次緩存失配,需要頻繁地訪問主存。Gray提出“主存是新的磁盤”。類似的,在主存數(shù)據(jù)庫中,緩存就是新形式的主存,緩存與主存之間的關(guān)系十分類似于主存與磁盤之間的關(guān)系。在傳統(tǒng)數(shù)據(jù)庫中,基于磁盤的索引結(jié)構(gòu)使用壓縮的方式減少磁盤的訪問次數(shù)[21]。在主存數(shù)據(jù)庫中,可以采用壓縮的方式減少主存的訪問次數(shù)。在緩存的層次上對數(shù)據(jù)壓縮,雖然要消耗CPU指令,但可以顯著地減少緩存失效次數(shù),提高緩存命中率,降低主存的訪問頻率[3,12]。與十分有限的緩存容量相比,索引結(jié)構(gòu)經(jīng)常包含幾百萬甚至幾億的數(shù)據(jù),此時,內(nèi)存墻效應(yīng)會更加顯著,索引性能的發(fā)揮主要受限于主存訪問次數(shù)。Rao等人[18]提出當(dāng)索引結(jié)點大小接近緩存塊大小時,索引樹的總體性能接近最優(yōu)。因此,大多數(shù)緩存感知型索引都將結(jié)點大小設(shè)置成緩存塊大小,但是這樣就限制了結(jié)點容量,增加了樹的高度,使得從根結(jié)點到葉結(jié)點的查找過程,會產(chǎn)生更多的緩存失配次數(shù)。

    針對以上問題,在現(xiàn)有的緩存感知型索引結(jié)構(gòu)——CST-樹(cache-sensitive T-tree)的基礎(chǔ)上,采用壓縮和分區(qū)的方法,提出了DCST-樹。與CST-樹相比,DCST-樹主要具有以下特點:

    (1)結(jié)點壓縮。對CST-樹結(jié)點中存儲的關(guān)鍵字進行壓縮,減少索引數(shù)據(jù)對存儲空間的消耗,提高結(jié)點對緩存空間的利用率,減少主存訪問次數(shù)。

    (2)結(jié)點分區(qū)。把CST-樹結(jié)點分成幾個連續(xù)的分區(qū),將結(jié)點中的查找操作限制在特定的分區(qū)中進行。通過分區(qū),可以增加結(jié)點容量,提高結(jié)點的扇出度,并降低索引樹的高度。

    本文組織結(jié)構(gòu)如下:第2章介紹相關(guān)工作;第3章研究DCST-樹的結(jié)構(gòu)和特點;第4章討論DCST-樹的相關(guān)算法;第5章給出實驗評估和結(jié)果分析;第6章進行總結(jié)并介紹未來工作。

    2 相關(guān)工作

    計算機處理器從緩存中讀取數(shù)據(jù)的速度快于從主存中讀取的速度。因此,在主存數(shù)據(jù)庫中,提升程序的緩存感知能力是非常重要的。這里首先介紹緩存行為特點,隨后介紹緩存感知型主存索引的相關(guān)工作。

    2.1 緩存

    緩存是介于CPU和主存之間的隨機存取存儲器,CPU以一個或者數(shù)個緩存塊的大小讀寫數(shù)據(jù)。緩存能夠保存處理器最近訪問過的數(shù)據(jù),根據(jù)程序局部性原理[5-7,20],這些數(shù)據(jù)以后還可能會被處理器再次訪問。此時,處理器可以直接從緩存中讀取數(shù)據(jù),不再需要訪問主存,因此可以提升程序性能。處理器需要的數(shù)據(jù)在緩存中,稱之為一次緩存命中(cache hit),數(shù)據(jù)以近似處理器的速度得到處理。如果訪問的數(shù)據(jù)不在緩存中,稱之為一次緩存失配(cache miss)。一次緩存失配就會造成一次主存訪問。緩存只有在緩存命中的情況下才能夠提升主存數(shù)據(jù)庫的性能,緩存命中率主要取決于應(yīng)用程序的數(shù)據(jù)存取模式。索引性能的表現(xiàn)也深受緩存行為的影響。提升索引的緩存感知能力,其本質(zhì)就是減少緩存失配次數(shù)以及提高緩存空間利用率[3,18]。

    2.2 緩存感知型索引

    CSB+-樹[18](cache-sensitive B+-tree)及其變種:B+-樹在傳統(tǒng)數(shù)據(jù)庫中占據(jù)著重要的地位,為了提升B+-樹的緩存感知能力,Rao提出了它的變種CSB+-樹。CSB+-樹的更新操作類似于B+-樹,與B+-樹不同的是,CSB+-樹的每一個結(jié)點只保留了很少的指針。通過減少結(jié)點中指針的數(shù)量,相同的緩存空間可以保留更多的關(guān)鍵字,從而表現(xiàn)出更加優(yōu)秀的性能。

    CST-樹:T-樹的總體性能表現(xiàn)優(yōu)良,自問世以來就被大部分主存數(shù)據(jù)庫所采用。但是,正如前文所述,T-樹的緩存感知能力不如B+樹。在對T-樹進行搜索時,首先比較結(jié)點中的最大值和最小值,然后再決定搜索左右子樹。當(dāng)T-樹的一個結(jié)點被放在緩存中時,CPU訪問其中的最大值和最小值,而緩存塊中剩余的關(guān)鍵字不再被訪問。由此可以看出T-樹的緩存空間利用率非常低。T-樹已經(jīng)無法適應(yīng)處理器速度和主存訪問速度發(fā)展不平衡的狀況。Lee等人[17]通過建立結(jié)點組(node group)和數(shù)據(jù)結(jié)點(data node),將T-樹結(jié)點中的最大值和最小值提取出來和結(jié)點中剩余的關(guān)鍵字分別存放的方式,增強被頻繁訪問數(shù)據(jù)的局部性特性。如圖2所示,結(jié)點組包含對應(yīng)的數(shù)據(jù)結(jié)點中的最大值,并且結(jié)點組是用數(shù)組表示的二分查找樹。而數(shù)據(jù)結(jié)點則是原來T-樹結(jié)點中的關(guān)鍵字,兩者分開存儲。遍歷CST-樹時,首先遍歷結(jié)點組,定位到相應(yīng)的關(guān)鍵字之后,再到關(guān)鍵字對應(yīng)的數(shù)據(jù)結(jié)點中搜索。在結(jié)點組中搜索時,每一個關(guān)鍵字都是有價值的,提高了緩存空間的利用率,減少了緩存失配次數(shù),改善了T-樹的性能。

    Fig.2 CST-tree圖2 CST-樹

    3 DCST-樹

    CST-樹中的結(jié)點設(shè)置為緩存塊大小,為的是在結(jié)點中查找時,不會造成緩存失配,但是這樣會導(dǎo)致CST-樹的高度增加,增加從根結(jié)點到葉結(jié)點查找過程中的緩存失配次數(shù)。同時,CST-樹沒有高效地利用主存空間,當(dāng)索引數(shù)據(jù)較大時,需要很多次主存訪問才能查找到需要的數(shù)據(jù),尤其當(dāng)今正步入大數(shù)據(jù)時代,這種問題更加顯著。針對以上問題,DCST-樹在CST-樹的基礎(chǔ)上,對CST-樹中的結(jié)點進行分區(qū),并添加結(jié)點內(nèi)索引的方式,提高結(jié)點的扇出度,增大索引結(jié)點的容量,降低索引樹的高度。同時,對分區(qū)內(nèi)部存儲的關(guān)鍵字進行壓縮,提高結(jié)點對緩存空間的利用率,增加緩存塊可以存儲的關(guān)鍵字數(shù)量,提高緩存命中率。同時,對關(guān)鍵字進行壓縮,可以進一步降低樹的高度,減少查詢過程中從根結(jié)點到葉結(jié)點查找時造成的緩存失配次數(shù)。

    3.1 兩級結(jié)點布局

    DCST-樹結(jié)點采用兩層結(jié)構(gòu),是為了便于對CST-樹結(jié)點進行分區(qū)和管理。通過對CST-樹結(jié)點進行分區(qū),可以將查找過程限制在特定的分區(qū)中,減少查找范圍。同時,對結(jié)點進行分區(qū)可以提高結(jié)點的容量,增加結(jié)點的扇出度,降低索引樹的高度。

    第一層結(jié)構(gòu)稱之為結(jié)點內(nèi)頭部索引區(qū),第二層結(jié)構(gòu)是由多個分區(qū)組成的區(qū)域。將原來T-樹中的結(jié)點分成幾個分區(qū),每個分區(qū)都保存原來結(jié)點中部分關(guān)鍵字信息。這些分區(qū)稱之為結(jié)點內(nèi)分區(qū)。結(jié)點內(nèi)分區(qū)之間以及結(jié)點內(nèi)分區(qū)中的關(guān)鍵字均是有序排列,保留了原有結(jié)點中關(guān)鍵字的順序。圖3展示了采用兩層結(jié)構(gòu)的DCST-樹結(jié)點的結(jié)構(gòu)特征。

    Fig.3 DCST-tree node structure圖3 DCST-樹結(jié)點結(jié)構(gòu)

    結(jié)點內(nèi)頭部索引區(qū)存儲的是沒有壓縮的關(guān)鍵字〈H1,H2,…,H13>,這些關(guān)鍵字有序排列,并且編號為k的結(jié)點內(nèi)分區(qū)中的任一關(guān)鍵字都小于Hk,編號為k+1的分區(qū)中的任一關(guān)鍵字都大于或者等于Hk。假設(shè)Keyk,i代表編號為k的結(jié)點內(nèi)分區(qū)中的任意關(guān)鍵字,Keyk+1,j代表編號為k+1的結(jié)點內(nèi)分區(qū)中的任意關(guān)鍵字,則有Keyk,i〈Hk≤Keyk+1,j。因此,結(jié)點內(nèi)頭部索引區(qū)如果包含n個索引項,則結(jié)點中最多包含n+1個結(jié)點內(nèi)分區(qū)。對結(jié)點內(nèi)部分區(qū),是為了限制查找的范圍。在結(jié)點中查找關(guān)鍵字時,如果能夠限定在某一個分區(qū)中,就可以減少查找數(shù)量,提高查找效率,也可以減少緩存失效次數(shù)。如果不對結(jié)點進行分區(qū),當(dāng)結(jié)點大于一個緩存塊容量時,由于無法將結(jié)點一次全部裝入緩存中,在結(jié)點中查找就會造成比較多的緩存失配。位于結(jié)點頭部的索引區(qū),能夠快速定位到需要查找的分區(qū),加快查找速度。在訪問結(jié)點時,首先訪問結(jié)點頭部的索引區(qū),定位到某一個索引項,再通過該索引項可以直接定位到與之對應(yīng)的結(jié)點內(nèi)部分區(qū)。圖3中虛線箭頭表示的指針指向與索引區(qū)中Hk對應(yīng)的結(jié)點內(nèi)分區(qū),只是在DCST-樹中,這些結(jié)點內(nèi)部的指針不是直接存儲在結(jié)點中。分區(qū)地址是結(jié)合結(jié)點基地址,通過計算得到的。結(jié)點內(nèi)頭部索引區(qū)和結(jié)點內(nèi)分區(qū)的大小均設(shè)置為兩個緩存塊大小。因為在現(xiàn)代計算機硬件中,高速緩存在從主存空間中讀取一個緩存塊大小的空間時,可以緊接著從相鄰的主存空間中再連續(xù)讀取一個緩存塊大小的空間。采用這種預(yù)取機制后,可以減少緩存失效次數(shù),提高緩存命中率。頭部索引區(qū)和結(jié)點內(nèi)分區(qū)設(shè)置成兩個緩存塊大小后,可以通過一次主存訪問將頭部索引區(qū)或者結(jié)點內(nèi)分區(qū)裝入緩存中。在結(jié)點中查找時,除了第一次訪問頭部索引區(qū)或者結(jié)點內(nèi)分區(qū)會造成緩存失效并導(dǎo)致該區(qū)域被裝入緩存之外,在頭部索引區(qū)或者結(jié)點內(nèi)分區(qū)中進行查找時,就不會造成緩存失效。

    3.2 數(shù)據(jù)壓縮機制

    對索引結(jié)點中的關(guān)鍵字進行壓縮,可以減少索引結(jié)點對空間的消耗,提高索引結(jié)點對緩存空間的利用率。在緩存塊層次上對索引結(jié)點進行壓縮,可以增大緩存塊中存儲的關(guān)鍵字數(shù)量,提高查找過程中的緩存命中率,減少對主存的訪問次數(shù)。在多數(shù)應(yīng)用場景中,索引中的關(guān)鍵字都是數(shù)值型數(shù)據(jù),比如4 Byte整型數(shù)據(jù)。本文以數(shù)值型數(shù)據(jù)為基礎(chǔ),討論如何對關(guān)鍵字進行壓縮存儲。

    如圖4所示,在一個緩存塊中存儲的關(guān)鍵字,其類型是4 Byte的整型數(shù)據(jù),緩存塊大小為64 Byte。假設(shè)一個結(jié)點中的關(guān)鍵字個數(shù)為n(K[0,1,2,…,n-1]),如果存儲完整的關(guān)鍵字,緩存塊中最多存儲16個關(guān)鍵字。當(dāng)結(jié)點中的關(guān)鍵字個數(shù)超過16時,在一個結(jié)點中遍歷,就會引起多次緩存失配,觸發(fā)主存訪問。在對整型數(shù)據(jù)進行壓縮的方法中,最常用的就是差分編碼(delta encoding)。對一個結(jié)點中的數(shù)據(jù),除了最后一個數(shù)值最大的關(guān)鍵字外,其余的關(guān)鍵字并不是存儲本身完整的關(guān)鍵字,而是存儲剩余的關(guān)鍵字和最大關(guān)鍵字之間的差值。即對關(guān)鍵字序列K[0,1, 2,…,n-1],除了K[n-1]之外,剩下的關(guān)鍵字K[x]都是存儲其與K[n-1]之間的差值D[x]。式(1)給出了D[x]的計算方式。

    Fig.4 Keys in a cache line圖4 一個緩存塊中存儲的關(guān)鍵字

    式(1)中,D[x]由結(jié)點中最大關(guān)鍵字數(shù)值減去原始關(guān)鍵字數(shù)值得到,因此D[x]≥0。在計算機系統(tǒng)中,一個字節(jié)可以表示的正整數(shù)范圍是[0,255],即28-1。同時,一個整型數(shù)值,不論數(shù)值大小,在計算機中均占用4 Byte。因此當(dāng)數(shù)值范圍較小時,可以通過存儲字節(jié)形式,降低存儲數(shù)值消耗的存儲空間,提升緩存行的空間利用率。

    D[x]可以用低于4 Byte的空間進行存儲,D[x]所占用的最少儲存空間可以通過函數(shù)space(x)進行計算。式(2)是space(x)的計算方式:

    假設(shè)D[x]需要占用的最少字節(jié)數(shù)為n,則n應(yīng)滿足28×n≥D[x],即,經(jīng)過變形可得式(2)。

    由space(x)的計算公式可知,D[x]所占用的實際存儲空間可能為1 Byte、2 Byte或者4 Byte,由于D[x]的長度是一個變量,沒有固定大小,為了方便對經(jīng)過編碼的關(guān)鍵字進行查詢,需要在結(jié)點內(nèi)分區(qū)中的關(guān)鍵字序列前面加上索引信息。索引信息中記錄了不同長度的D[x]的個數(shù),分別表示為x、y、z。其中,x代表D[x]長度為1 Byte的差值個數(shù),y代表D[x]長度為2 Byte的差值個數(shù),z代表D[x]長度為4 Byte的差值個數(shù)。如圖5所示,分區(qū)內(nèi)部的儲存結(jié)構(gòu)分為兩部分:第一部分是分區(qū)內(nèi)頭部,存儲關(guān)鍵字編碼信息。其中的3個字段分別記錄了不同長度的差值個數(shù),用來定位第二部分內(nèi)容區(qū)域中相應(yīng)的關(guān)鍵字。當(dāng)需要查詢時,首先計算查詢關(guān)鍵字數(shù)值在本結(jié)點中的差值D[x]。然后查找頭部索引信息,通過累加小于D[x]的差值個數(shù),就可以根據(jù)不同差值對應(yīng)的空間大小,計算出D[x]在當(dāng)前結(jié)點的偏移量,并從該偏移量開始查找與D[x]相等的數(shù)值。

    Fig.5 Adelta coded node key structure圖5 編碼后結(jié)點內(nèi)部關(guān)鍵字序列結(jié)構(gòu)

    從圖5中可以看出,在內(nèi)容區(qū)域存儲的不再是關(guān)鍵字原始數(shù)值本身,而是其與最大關(guān)鍵字數(shù)值之間的差值。如果不存儲關(guān)鍵字50,而是存儲它和最大值191之間的差值,并且兩者之間的差值可以用1 Byte的空間進行表示。假設(shè)一個緩存塊大小為64 Byte,一個關(guān)鍵字為4 Byte,則緩存塊中最多存儲16個關(guān)鍵字。但是,在采用壓縮機制后,一個緩存塊最多可以存儲56個關(guān)鍵字。當(dāng)結(jié)點中的關(guān)鍵字之間的差值都在127之內(nèi)時,差值D[x]可以用一個字節(jié)表達,與存儲完整關(guān)鍵字相比,采用壓縮機制后,結(jié)點內(nèi)部可以存放3.8倍的數(shù)據(jù)。即存儲完整關(guān)鍵字比存儲編碼后的關(guān)鍵字要多消耗3.8倍的存儲空間,從而造成更多的緩存失配,降低了索引的性能表現(xiàn)。

    3.3 復(fù)雜度分析

    本節(jié)將對DCST-樹的插入、刪除、查找的時間復(fù)雜度進行分析。假設(shè)一個數(shù)據(jù)結(jié)點中包含s個關(guān)鍵字,DSCT-樹結(jié)點組中包含m個結(jié)點。若存儲n個關(guān)鍵字,則DCST-樹的高度為height≥logmn/s。結(jié)點組是一個數(shù)組表示的二叉樹,樹的高度為lbm。查找操作需要從DCST-樹的根結(jié)點組遍歷到葉結(jié)點組,并在相應(yīng)的數(shù)據(jù)結(jié)點中查找關(guān)鍵字key。因此,查找操作需要花費lbm×lbn/s定位到特定的數(shù)據(jù)結(jié)點,并花費lbs用以在數(shù)據(jù)結(jié)點中搜索關(guān)鍵字。綜上,在DCST-樹中查找關(guān)鍵字的時間復(fù)雜度為O(lbm×logmn/s× lbs)=O(lbn)。

    DCST-樹的插入操作首先需要定位到關(guān)鍵字要插入的數(shù)據(jù)結(jié)點。如果該數(shù)據(jù)結(jié)點已經(jīng)滿了,就需要將最小的關(guān)鍵字移除并插入到該結(jié)點的左子樹的數(shù)據(jù)結(jié)點中。在最壞情況下,定位到要插入的數(shù)據(jù)結(jié)點的時間為lbn,通過二分查找需耗時lbs從數(shù)據(jù)結(jié)點中刪除最小關(guān)鍵字,同時需要lbn時間將刪除的最小關(guān)鍵字插入到左子樹數(shù)據(jù)結(jié)點中。因此,整個插入操作的時間復(fù)雜度為O(lbn)+O(lbs)+O(lbn)=O(lbn)。

    DCST-樹的刪除操作也需要定位到包含關(guān)鍵字的數(shù)據(jù)結(jié)點,然后才能在數(shù)據(jù)結(jié)點中搜索關(guān)鍵字并刪除該關(guān)鍵字。與插入操作類似,DCST-樹的刪除操作的時間復(fù)雜度也為O(lbn)+O(lbs)+O(lbn)=O(lbn)。

    4 算法

    4.1 查找操作

    DCST-樹的查找過程分為兩個部分:第一部分是在結(jié)點組中進行查找。結(jié)點組是用數(shù)組表示的二叉樹,存儲的是原T-樹中每個結(jié)點的最大關(guān)鍵字。在一個結(jié)點組中查找時,并不會造成緩存失配,因為結(jié)點組的大小設(shè)置成一個緩存塊的大小。查找到結(jié)點組中某一個關(guān)鍵字時,就利用該關(guān)鍵字定位到相應(yīng)的數(shù)據(jù)結(jié)點。數(shù)據(jù)結(jié)點中存儲原來T-樹中相對應(yīng)結(jié)點的全部關(guān)鍵字,然后再在數(shù)據(jù)結(jié)點中進行搜索,直至找到查找的關(guān)鍵字或者返回失敗,即沒有找到要查找的關(guān)鍵字。遍歷結(jié)點組的算法如算法1所示。

    算法1結(jié)點組查找算法search(key,tree)

    結(jié)點組是用數(shù)組表示的二叉樹,里面存放的是原T-樹結(jié)點中的最大關(guān)鍵字數(shù)值。結(jié)點組中的每一個結(jié)點都對應(yīng)著一個數(shù)據(jù)結(jié)點,數(shù)據(jù)結(jié)點中存放著編碼之后的關(guān)鍵字序列,相當(dāng)于T-樹的一個結(jié)點。

    算法1第1行首先在第一個結(jié)點組中查找,通過將查找的關(guān)鍵字key與根結(jié)點組中的關(guān)鍵字K比較,找到相應(yīng)的葉結(jié)點組,并最終定位到數(shù)據(jù)結(jié)點。算法1第3行到第7行表示的就是遍歷結(jié)點組并最終定位到相應(yīng)葉結(jié)點組的過程。若結(jié)點組中的關(guān)鍵字K大于查找關(guān)鍵字key,就繼續(xù)遍歷其左子樹,并將該結(jié)點進行標記。如果K小于查找關(guān)鍵字key,則繼續(xù)遍歷該結(jié)點的右子樹,并不做標記。遞歸查找結(jié)點組,直至遍歷至葉結(jié)點組。當(dāng)葉結(jié)點組遍歷完成后,若標記結(jié)點不為空,則根據(jù)葉結(jié)點組中標記結(jié)點定位到相應(yīng)的數(shù)據(jù)結(jié)點。

    算法1第9行表示在結(jié)點組中查找完成,并通過最后一次比較得到的關(guān)鍵字定位到相應(yīng)的數(shù)據(jù)結(jié)點。接下來開始在數(shù)據(jù)結(jié)點中查找關(guān)鍵字。由于數(shù)據(jù)結(jié)點采用兩層結(jié)構(gòu),并且對結(jié)點進行了壓縮,在數(shù)據(jù)結(jié)點中的查找過程和CST-樹不一樣,具體算法如算法2所示。

    算法2數(shù)據(jù)結(jié)點關(guān)鍵字查詢算法

    算法2第1、第2行主要是為了定位到包含關(guān)鍵字key的結(jié)點內(nèi)分區(qū)。第1行表示在數(shù)據(jù)結(jié)點頭部索引區(qū)中查找,找到索引項Hk(Hk-1〈key〈Hk)。第2行表示通過索引Hk計算包含關(guān)鍵字key的結(jié)點內(nèi)分區(qū)的位置。第3行計算關(guān)鍵字key與結(jié)點中最大關(guān)鍵字之間的差值de。如果de小于0,則表明查找的關(guān)鍵字大于數(shù)據(jù)結(jié)點中最大鍵值,查找的鍵值不在數(shù)據(jù)結(jié)點中,不需要再遍歷結(jié)點,直接返回。若key小于最大鍵值,則首先計算差值de所占用的最小字節(jié)數(shù)space(de),同時檢查數(shù)據(jù)結(jié)點頭部中的x、y、z字段。如果space對應(yīng)的字段中記錄的數(shù)目不等于0,表明數(shù)據(jù)結(jié)點中有和de占用同樣大小字節(jié)數(shù)的差值,通過頭部索引信息可以計算出de在結(jié)點中的偏移量,并定位到相應(yīng)的區(qū)域進行查找,如果找到,返回關(guān)鍵字記錄,否則返回失敗。如果space對應(yīng)的字段,比如x,其值為0,則表明占用space大小的差值不存在,直接返回查找失敗。

    4.2 插入算法

    插入操作與CST-樹類似,數(shù)據(jù)結(jié)點中當(dāng)最大關(guān)鍵字被取代時,需要對結(jié)點進行重構(gòu)。對于給定的關(guān)鍵字key,首先需要定位到要插入的數(shù)據(jù)結(jié)點,然后將關(guān)鍵字key插入到該數(shù)據(jù)結(jié)點中。如果該數(shù)據(jù)結(jié)點沒有滿,則直接插入關(guān)鍵字。如果數(shù)據(jù)結(jié)點空間已滿,則需要刪除最小的關(guān)鍵字,然后將key插入到數(shù)據(jù)結(jié)點,并將刪除的最小關(guān)鍵字插入到樹中。具體過程如算法3所示。

    算法3插入算法insert(key,tree)

    算法3第1行表示在結(jié)點組中查找關(guān)鍵字key,在最終的葉結(jié)點組中查找完成后,根據(jù)標記可以定位到數(shù)據(jù)結(jié)點。查找過程的詳細步驟如算法1所示。算法3第3行首先根據(jù)數(shù)據(jù)結(jié)點的最大關(guān)鍵字數(shù)值計算出key對應(yīng)的差值D[x],并根據(jù)D[x]定位到相應(yīng)的結(jié)點位置,然后插入數(shù)據(jù)。

    算法3第11行表示將刪除的最小關(guān)鍵字插入到子樹中。如果數(shù)據(jù)結(jié)點沒有對應(yīng)的左子樹,就需要添加一個新的數(shù)據(jù)結(jié)點,然后將關(guān)鍵字插入其中。當(dāng)創(chuàng)建新的數(shù)據(jù)結(jié)點時就必須要創(chuàng)建一個新的結(jié)點組。而這樣的操作可能會造成DCST-樹的不平衡,此時就需要平衡操作來保證樹左右子樹的高度相對平衡。

    5 實驗結(jié)果與分析

    本章主要對所提方案進行驗證和評估,測試DCST-樹和當(dāng)前主流緩存感知型索引結(jié)構(gòu)之間的性能對比。首先介紹實驗環(huán)境及實驗數(shù)據(jù)設(shè)置,然后根據(jù)實驗結(jié)果進行分析。

    5.1 實驗環(huán)境設(shè)置

    所有實驗都運行在同一臺機器上,處理器是Intel?CoreTMi3-2120 3.3 GHz,主存為4 GB DDR3,裝載Ubuntu 12.04操作系統(tǒng),該機器擁有〈256 KB,64 B, 8〉(緩存容量、緩存塊大小、路數(shù))L2緩存。

    實驗中,關(guān)鍵字和指針均設(shè)計為4 Byte無符號整型數(shù)據(jù)。索引包含的信息數(shù)據(jù)來源于某市采集的交通數(shù)據(jù)。

    5.2 實驗結(jié)果

    本實驗首先測試了DCST-樹的查找性能。使用了不同數(shù)量的鍵數(shù)分別進行了測試,插入的鍵值是按照上文描述的交通數(shù)據(jù)中隨機產(chǎn)生的整型數(shù)據(jù)。實驗將DCST-樹與CST-樹和文獻[16]提出的ART-樹進行對比,測試它們在不同鍵數(shù)下分別進行200 000次關(guān)鍵字查找所消耗的時間,每次查找的關(guān)鍵字都是從預(yù)先生產(chǎn)的關(guān)鍵字里面隨機挑選的。如圖6所示,在查找性能上,DCST-樹的查找性能表現(xiàn)最好,比CST-樹和ART-樹分別提升23%和11%。隨著鍵數(shù)的增大,DCST-樹的優(yōu)勢更加顯著。

    Fig.6 Performance comparison of index search圖6 索引查找性能對比

    隨后,測試了在隨機查找關(guān)鍵字過程中造成的緩存失配次數(shù)。如圖7所示,DCST-樹在查找過程中造成的緩存失配次數(shù)是最少的,并且隨著記錄的增加,其優(yōu)勢也越來越明顯。DCST-樹對結(jié)點中的關(guān)鍵字采用了壓縮機制,相同存儲空間可以存儲更多的關(guān)鍵字,如前文所述,在最好的情況下可以多存儲3倍的數(shù)據(jù),從而顯著提高對緩存空間的利用率。同時,單個結(jié)點數(shù)據(jù)存儲量的增大,也降低了索引樹的高度,使得遍歷索引結(jié)點引起的緩存失配次數(shù)減少,從而提升了索引的查找性能。

    Fig.7 Comparison of cache misses圖7 緩存失配次數(shù)對比

    圖8 是壓縮后的索引結(jié)構(gòu)和沒有壓縮的索引結(jié)構(gòu)之間空間消耗的對比。本次實驗分別測試了不同的鍵數(shù)下,索引結(jié)構(gòu)的空間消耗。從圖中可以看出,DCST-樹的空間利用率是最高的。與CST-樹、ART-樹相比,DCST-樹對存儲空間的消耗分別降低了30%和26%。

    Fig.8 Comparison of space consumption of index圖8 索引空間消耗對比

    圖9 是各個索引結(jié)構(gòu)插入操作的實驗對比。在本次實驗中,預(yù)先建立包含100萬關(guān)鍵字的索引樹,然后對其分別插入不同數(shù)量的鍵值,并計算時間。從圖中可以看出,CST-樹和DCST-樹的插入效率低于ART-樹,是因為這兩種樹在插入的時候需要保持樹的平衡而要增加額外的旋轉(zhuǎn)操作。但DCST-樹依然快于CST-樹,并且隨著鍵數(shù)的增加,DCST-樹與ART-樹之間差距逐漸變小。

    Fig.9 Performance comparison of index insertion圖9 索引插入性能對比

    6 結(jié)束語

    為了提高主存索引結(jié)構(gòu)的緩存感知能力,本文在CST-樹的基礎(chǔ)上,通過調(diào)整結(jié)點結(jié)構(gòu),改進關(guān)鍵字存儲方式,提出了DCST-樹。DCST-樹對結(jié)點進行分區(qū),把結(jié)點劃分成連續(xù)的存儲區(qū)間,并建立結(jié)點內(nèi)頭部索引,以便快速定位包含查找關(guān)鍵字的特定分區(qū)。通過對結(jié)點劃分分區(qū),增加了結(jié)點容量,提高了結(jié)點的扇出度,降低了樹的高度。同時,對于分區(qū)內(nèi)的關(guān)鍵字進行壓縮,可以減少數(shù)據(jù)消耗的存儲空間,提高結(jié)點對緩存空間的利用率,減少失配次數(shù)。在實驗驗證階段,從索引查詢、更新等性能方面進行測試,并統(tǒng)計索引查詢過程中造成的緩存失配次數(shù)以及索引對儲存空間的消耗。實驗結(jié)果表明,本文提出的DCST-樹索引結(jié)構(gòu),可以高效地利用儲存空間,提高了索引結(jié)構(gòu)的緩存感知能力,提升了索引的查詢處理能力。

    隨著信息化的發(fā)展,各個領(lǐng)域產(chǎn)生的數(shù)據(jù)與日俱增,索引結(jié)構(gòu)的不斷擴展,加劇了對儲存空間的消耗。在保證查詢效率的同時,降低空間消耗依然有著迫切需求。在未來的工作中,將繼續(xù)研究其他的壓縮策略,進一步降低對存儲空間的消耗。同時,研究基于字符串的壓縮機制,將DCST-樹應(yīng)用在更廣泛的場景中。

    [1]Bernstein P,Brodie M,Ceri S,et al.The asilomar report on database research[J].ACM SIGMOD Record,1998,27(4): 74-80.

    [2]Ailamaki A,DeWitt D J,Hill M D,et al.DBMSs on a modern processor:where does time go?[C]//Proceedings of the 25th International Conference on Very Large Data Bases, Edinburgh,UK,Sep 7-10,1999.San Francisco,USA:Morgan Kaufmann Publishers Inc,1999:266-277.

    [3]Silva J,Sklyarov V,Skliarova I.Comparison of on-chip communications in Zynq-7000 all programmable systemson-chip[J].Embedded Systems Letters,2015,7(1):31-34.

    [4]Shi Yanan,Su Wenjie.Research and implementation of an inverted index cache replacement algorithm[J].Computer Technology and Development,2015,25(5):60-63.

    [5]Kocberber O,Grot B,Picorel J,et al.Meet the walkers: accelerating index traversals for in-memory databases[C]// Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture,Davis,USA,Dec 7-11, 2013.New York:ACM,2013:468-479.

    [6]Ding Chen,Li Pengcheng.Cache-conscious memory management[C]//Proceedings of the 2014 ACM SIGPLAN Workshop on Memory System Performance and Correctness,Edinburgh,UK,Jun 9-11,2014.NewYork:ACM,2014.

    [7]Yang Tianming,Feng Dan,Chou Wenkuang,et al.A study on disk index design for large scale de-duplication storage systems[J].International Journal of Computational Science and Engineering,2015,10(1/2):171-180.

    [8]Chen S,Gibbons P B,Mowry T C.Improving index performance through prefetching[J].ACM SIGMOD Record,2002, 30(2):235-246.

    [9]Yang Zhaohui,Wang Lisong.Prefetching T-tree:a cacheoptimized main memory database index structure[J].Computer Science,2011,38(10):161-165.

    [10]Zhou J,Cieslewicz J,Ross K A,et al.Improving database performance on simultaneous multithreading processors [C]//Proceedings of the 31st International Conference on Very Large Data Bases,Trondheim,Norway,Aug 30-Sep 2, 2005.New York:ACM,2005:49-60.

    [11]Leis V,Kemper A,Neumann T.The adaptive radix tree: ARTful indexing for main-memory databases[C]//Proceedings of the 29th IEEE International Conference on Data Engineering, Brisbane,Australia,Apr 8-12,2013.Washington:IEEE Computer Society,2013:38-49.

    [12]Binna R,Pacher D,Meindl T,et al.The DCB-tree:a spaceefficient delta coded cache conscious B-tree[C]//LNCS 8921: Proceedings of the 1st and 2nd International Workshops on In Memory Data Management and Analysis,IMDM 2013, Riva del Garda,Italy,Aug 26,2013,IMDM 2014,Hongzhou,China,Sep 1,2014.Switzerland:Springer International Publishing,2015:126-138.

    [13]Rogers T G,O'Connor M,Aamodt T M.Cache-conscious thread scheduling for massively multithreaded processors[J].IEEE Micro,2013,33(3):78-85.

    [14]Xi Fang,Mishima T,Yokota H.CARIC-DA:core affinity with a range index for cache-conscious data access in a multicore environment[C]//LNCS 8421:Proceedings of the 19th International Conference on Database Systems for Advanced Applications,Bali,Indonesia,Apr 21-24,2014.Switzerland: Springer International Publishing,2014:282-296.

    [15]Kim H,Koltsidas I,Ioannou N,et al.Flash-conscious cache population for enterprise database workloads[C]//Proceedings of the 2014 International Workshop on Accelerating Data Management Systems Using Modern Processor and StorageArchitectures,Hangzhou,China,Sep 1,2014.

    [16]Kwon S J.A cache-based flash translation layer for TLC-based multimedia storage devices[J].ACM Transactions on Embedded Computing Systems,2016,15(1):11.

    [17]Lee I,Shim J,Lee S,et al.CST-trees:cache sensitive T-trees [C]//LNCS 4443:Advances in Databases:Concepts,Systems and Applications,Proceedings of the 12th International Conference on Database Systems for Advanced Applications,Bangkok,Thailand,Apr 9-12,2007.Berlin,Heidelberg:Springer,2007:398-409.

    [18]Rao J,Ross K A.Making B+-trees cache conscious in main memory[J].ACM SIGMOD Record,2000,29(2):475-486.

    [19]You Xiaorong,Cao Sheng.Storage research of small files in massive education resource[J].Computer Science,2015, 42(10):76-80.

    [20]Wang Guoqing,Huang Tao,Liu Jiang,et al.A new cache policy based on sojourn time in content-centric networking [J].Chinese Journal of Computers,2015,38(3):472-482.

    [21]Wu Qiuping,Liu Bo,Lin Weiwei.Adaptive replacement cache mechanism for fault tolerance in cloud storage[J]. Computer Science,2015,42(S1):332-336.

    附中文參考文獻:

    [4]時亞南,束文杰.一種倒排索引緩存替代算法的研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2015,25(5):60-63.

    [9]楊朝輝,王立松.pT-樹:高速緩存優(yōu)化的主存數(shù)據(jù)庫索引結(jié)構(gòu)[J].計算機科學(xué),2011,38(10):161-165.

    [19]游小容,曹晟.海量教育資源中小文件的存儲研究[J].計算機科學(xué),2015,42(10):76-80.

    [20]王國卿,黃韜,劉江,等.一種基于逗留時間的新型內(nèi)容中心網(wǎng)絡(luò)緩存策略[J].計算機學(xué)報,2015,38(3):472-482.

    [21]伍秋平,劉波,林偉偉.一種面向云存儲數(shù)據(jù)容錯的ARC緩存淘汰機制[J].計算機科學(xué),2015,42(S1):332-336.

    SHI Taiqi was born in 1992.He is an M.S.candidate at Nanjing University of Aeronautics and Astronautics.His research interests include index in database,cache conscious and main memory database,etc.

    史太齊(1992—),男,安徽淮南人,南京航空航天大學(xué)計算機科學(xué)與技術(shù)學(xué)院碩士研究生,主要研究領(lǐng)域為數(shù)據(jù)庫查詢,緩存感知,主存數(shù)據(jù)庫等。

    LIU Liang was born in 1985.He is a lecturer at Nanjing University of Aeronautics and Astronautics.His research interests include sensor network database and distributed database,etc.

    劉亮(1985—),男,江西景德鎮(zhèn)人,南京航空航天大學(xué)講師、博士后,主要研究領(lǐng)域為傳感器網(wǎng)絡(luò)數(shù)據(jù)庫,分布式數(shù)據(jù)庫等。

    QIN Xiaolin was born in 1953.He is a professor and Ph.D.supervisor at Nanjing University of Aeronautics and Astronautics,and the senior member of CCF.His research interests include spatial and spatio-temporal databases, data management and security in distributed environment,etc.

    秦小麟(1953—),男,江蘇南京人,南京航空航天大學(xué)教授、博士生導(dǎo)師,CCF高級會員,主要研究領(lǐng)域為空間與時空數(shù)據(jù)庫,分布式數(shù)據(jù)管理與安全等。

    DCST:Main Memory Space-Efficient Delta Coded Cache Conscious T-tree*

    SHI Taiqi+,LIU Liang,QIN Xiaolin
    College of Computer Science and Technology,Nanjing University of Aeronautics and Astronautics,Nanjing 210016, China
    +Corresponding author:E-mail:stqhappy@qq.com

    Existing main-memory index structures use pointer elimination and prefetching mechanism to improve the cache consciousness of index structure and reduce the number of cache invalidation,but do not make efficient use of main-memory space and CPU performance.To make index structure utilize memory and CPU much better, this paper proposes DCST-tree.DCST-tree implements data compression to use memory and cache space more effectively.This can reduce the number of swap between memory and cache,and improve the rate of cache hit eventually. Meanwhile,node is partitioned into buckets to increase node size and improve the fan-out degree of node,such that the height of index tree can be reduced.The experimental results show that the proposed index structure has higher cache consciousness and space utilization,compared with existing index structures.

    compression;main-memory index;cache consciousness

    10.3778/j.issn.1673-9418.1603029

    A

    TP311

    *The National Natural Science Foundation of China under Grant Nos.61373015,61300052,41301047(國家自然科學(xué)基金);the PriorityAcademic Development Program of Jiangsu Higher Education Institutions(江蘇高校優(yōu)勢學(xué)科建設(shè)工程資助項目).

    Received 2016-03,Accepted 2016-05.

    CNKI網(wǎng)絡(luò)優(yōu)先出版:2016-05-19,http://www.cnki.net/kcms/detail/11.5602.TP.20160519.1513.004.html

    SHI Taiqi,LIU Liang,QIN Xiaolin.DCST:main memory space-efficient delta coded cache conscious T-tree. Journal of Frontiers of Computer Science and Technology,2017,11(2):221-230.

    猜你喜歡
    失配關(guān)鍵字結(jié)點
    基于無差拍電流預(yù)測控制的PMSM電感失配研究
    履職盡責(zé)求實效 真抓實干勇作為——十個關(guān)鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
    華人時刊(2022年1期)2022-04-26 13:39:28
    成功避開“關(guān)鍵字”
    基于特征分解的方位向多通道SAR相位失配校正方法
    Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點個數(shù)估計
    殘留應(yīng)變對晶格失配太陽電池設(shè)計的影響
    交錯采樣技術(shù)中的失配誤差建模與估計
    基于Raspberry PI為結(jié)點的天氣云測量網(wǎng)絡(luò)實現(xiàn)
    基于用戶反饋的關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)
    誘導(dǎo)性虛假下載鏈接不完全評測
    亚洲五月色婷婷综合| 亚洲精品国产av成人精品| 女人爽到高潮嗷嗷叫在线视频| 亚洲自偷自拍图片 自拍| 我要看黄色一级片免费的| 欧美日韩亚洲高清精品| 亚洲精品一二三| 99精国产麻豆久久婷婷| 69精品国产乱码久久久| 免费一级毛片在线播放高清视频 | 亚洲情色 制服丝袜| 国产免费一区二区三区四区乱码| 中文字幕制服av| 国产精品二区激情视频| 亚洲人成电影免费在线| 国产成人免费无遮挡视频| 建设人人有责人人尽责人人享有的| 一区福利在线观看| 高清黄色对白视频在线免费看| 亚洲av男天堂| 热99国产精品久久久久久7| 新久久久久国产一级毛片| 日韩熟女老妇一区二区性免费视频| 国产精品一区二区在线观看99| av在线app专区| 人人澡人人妻人| 91麻豆av在线| 亚洲精品国产一区二区精华液| 亚洲成国产人片在线观看| 精品国产乱码久久久久久小说| 18在线观看网站| 欧美精品一区二区大全| 久久精品国产亚洲av高清一级| 大话2 男鬼变身卡| 十八禁网站网址无遮挡| 国产精品国产av在线观看| 日韩精品免费视频一区二区三区| 亚洲国产av新网站| 少妇人妻 视频| 一区在线观看完整版| 国产色视频综合| 一区在线观看完整版| 欧美精品一区二区免费开放| 国产女主播在线喷水免费视频网站| 亚洲人成77777在线视频| 久久鲁丝午夜福利片| 国产不卡av网站在线观看| 另类亚洲欧美激情| 国产野战对白在线观看| 中国国产av一级| 亚洲,一卡二卡三卡| 大片电影免费在线观看免费| 丰满人妻熟妇乱又伦精品不卡| 国产精品 欧美亚洲| 亚洲av男天堂| 一级毛片电影观看| 色精品久久人妻99蜜桃| 人人妻人人爽人人添夜夜欢视频| 国产欧美亚洲国产| 久久ye,这里只有精品| 一本久久精品| 国产黄色视频一区二区在线观看| 狂野欧美激情性bbbbbb| 久久免费观看电影| 大型av网站在线播放| 男的添女的下面高潮视频| 国产一区二区三区av在线| 十八禁人妻一区二区| 青春草亚洲视频在线观看| 又粗又硬又长又爽又黄的视频| 69精品国产乱码久久久| 别揉我奶头~嗯~啊~动态视频 | 精品视频人人做人人爽| 天天躁狠狠躁夜夜躁狠狠躁| 精品久久蜜臀av无| 国产精品免费大片| av国产精品久久久久影院| 日本欧美国产在线视频| av电影中文网址| 国产黄色视频一区二区在线观看| 丝袜脚勾引网站| 久久国产精品影院| 成人国产一区最新在线观看 | 国产高清不卡午夜福利| 五月开心婷婷网| 黄片小视频在线播放| 夫妻性生交免费视频一级片| 免费女性裸体啪啪无遮挡网站| 亚洲黑人精品在线| 日韩大码丰满熟妇| 精品福利永久在线观看| 国产精品秋霞免费鲁丝片| 最新在线观看一区二区三区 | 男男h啪啪无遮挡| 亚洲国产最新在线播放| 午夜福利视频精品| 欧美人与性动交α欧美软件| 9色porny在线观看| 一区二区三区四区激情视频| 亚洲 欧美一区二区三区| 两人在一起打扑克的视频| 久久性视频一级片| 久久久久久亚洲精品国产蜜桃av| 亚洲五月婷婷丁香| 亚洲人成电影免费在线| 777米奇影视久久| 欧美国产精品一级二级三级| 亚洲综合色网址| 男女高潮啪啪啪动态图| 真人做人爱边吃奶动态| 欧美乱码精品一区二区三区| 久久精品亚洲熟妇少妇任你| 999精品在线视频| 亚洲中文日韩欧美视频| www.熟女人妻精品国产| 成人18禁高潮啪啪吃奶动态图| 国产激情久久老熟女| 一级片'在线观看视频| 久久久久视频综合| 大片电影免费在线观看免费| 久久综合国产亚洲精品| 欧美精品啪啪一区二区三区 | 亚洲久久久国产精品| 一区福利在线观看| 90打野战视频偷拍视频| 人成视频在线观看免费观看| 欧美精品一区二区免费开放| 啦啦啦在线观看免费高清www| 久9热在线精品视频| 日本wwww免费看| e午夜精品久久久久久久| 色综合欧美亚洲国产小说| 一级毛片女人18水好多 | a级片在线免费高清观看视频| 国产欧美日韩精品亚洲av| 美女高潮到喷水免费观看| 日韩av不卡免费在线播放| 美女主播在线视频| 亚洲欧洲国产日韩| 高清av免费在线| 真人做人爱边吃奶动态| 99国产精品99久久久久| 久久精品亚洲熟妇少妇任你| 女人爽到高潮嗷嗷叫在线视频| av在线播放精品| 亚洲欧美一区二区三区久久| 少妇 在线观看| 男人舔女人的私密视频| 亚洲人成网站在线观看播放| 午夜福利,免费看| 少妇裸体淫交视频免费看高清 | 国产男女内射视频| 精品久久蜜臀av无| 国产成人免费无遮挡视频| 水蜜桃什么品种好| 精品亚洲乱码少妇综合久久| 久久久久精品人妻al黑| 亚洲一区二区三区欧美精品| 亚洲综合色网址| 婷婷色综合www| av天堂在线播放| 1024香蕉在线观看| 亚洲一卡2卡3卡4卡5卡精品中文| 色婷婷av一区二区三区视频| 久久国产精品人妻蜜桃| 一区二区三区乱码不卡18| 亚洲精品国产区一区二| 嫩草影视91久久| 国产欧美日韩一区二区三 | 好男人视频免费观看在线| 久久国产亚洲av麻豆专区| 亚洲,一卡二卡三卡| av不卡在线播放| 国产精品一区二区精品视频观看| 婷婷色av中文字幕| 欧美激情 高清一区二区三区| 十八禁人妻一区二区| 丰满迷人的少妇在线观看| 热re99久久精品国产66热6| 亚洲伊人色综图| 国产精品国产三级国产专区5o| 国产免费又黄又爽又色| 欧美激情极品国产一区二区三区| 91国产中文字幕| 丰满迷人的少妇在线观看| 日韩 亚洲 欧美在线| 搡老岳熟女国产| 欧美日韩综合久久久久久| 成人黄色视频免费在线看| 国产精品人妻久久久影院| 高清不卡的av网站| 亚洲精品第二区| 亚洲国产日韩一区二区| 两性夫妻黄色片| 中文字幕最新亚洲高清| 国产黄色视频一区二区在线观看| 婷婷成人精品国产| 尾随美女入室| 免费观看人在逋| 日本wwww免费看| 在线观看免费高清a一片| 妹子高潮喷水视频| 人妻 亚洲 视频| 母亲3免费完整高清在线观看| 最新在线观看一区二区三区 | 9热在线视频观看99| 精品人妻在线不人妻| 男人舔女人的私密视频| 国产日韩欧美视频二区| 欧美亚洲日本最大视频资源| 午夜福利视频在线观看免费| 欧美日韩综合久久久久久| 黄色片一级片一级黄色片| 夫妻午夜视频| 亚洲自偷自拍图片 自拍| 丝瓜视频免费看黄片| 性高湖久久久久久久久免费观看| 男人操女人黄网站| 男女高潮啪啪啪动态图| 中文字幕制服av| 亚洲精品美女久久久久99蜜臀 | 国产欧美亚洲国产| 91国产中文字幕| 国产日韩一区二区三区精品不卡| 亚洲专区国产一区二区| 午夜免费男女啪啪视频观看| 国产精品 国内视频| 日韩大片免费观看网站| 男女高潮啪啪啪动态图| 亚洲自偷自拍图片 自拍| 久久人人97超碰香蕉20202| 久久天堂一区二区三区四区| 亚洲一码二码三码区别大吗| 国产一区二区在线观看av| 久久国产精品人妻蜜桃| 免费日韩欧美在线观看| 每晚都被弄得嗷嗷叫到高潮| 精品人妻在线不人妻| 中文字幕另类日韩欧美亚洲嫩草| 亚洲七黄色美女视频| 日本wwww免费看| netflix在线观看网站| 国产精品国产三级国产专区5o| 三上悠亚av全集在线观看| 午夜免费男女啪啪视频观看| 男女之事视频高清在线观看 | 欧美日韩视频精品一区| √禁漫天堂资源中文www| 久久精品国产综合久久久| 国产亚洲一区二区精品| 亚洲成人免费av在线播放| 女人久久www免费人成看片| 91国产中文字幕| 久久国产精品人妻蜜桃| 天堂俺去俺来也www色官网| 国产91精品成人一区二区三区 | 99久久人妻综合| 女人久久www免费人成看片| 国产麻豆69| 国产熟女午夜一区二区三区| 国产激情久久老熟女| 黄色视频在线播放观看不卡| 国产真人三级小视频在线观看| 亚洲人成77777在线视频| bbb黄色大片| 一区在线观看完整版| av网站在线播放免费| 美女福利国产在线| 成人国产一区最新在线观看 | 久久天躁狠狠躁夜夜2o2o | 日韩视频在线欧美| 最近最新中文字幕大全免费视频 | 99热全是精品| 欧美黑人精品巨大| 一级,二级,三级黄色视频| www.精华液| 99久久99久久久精品蜜桃| 婷婷色av中文字幕| 熟女av电影| 制服诱惑二区| 国产成人精品久久二区二区免费| 精品人妻1区二区| 人成视频在线观看免费观看| 色婷婷av一区二区三区视频| 五月开心婷婷网| 最新在线观看一区二区三区 | 婷婷成人精品国产| 国产精品九九99| 可以免费在线观看a视频的电影网站| 欧美日韩av久久| 人妻一区二区av| 两人在一起打扑克的视频| 国产日韩欧美视频二区| 亚洲精品一二三| 色婷婷av一区二区三区视频| 美女国产高潮福利片在线看| 亚洲av美国av| 免费观看a级毛片全部| 精品高清国产在线一区| 无遮挡黄片免费观看| 中文欧美无线码| 免费日韩欧美在线观看| 亚洲国产日韩一区二区| 日韩中文字幕视频在线看片| av一本久久久久| 亚洲精品国产区一区二| 亚洲国产日韩一区二区| 成人国语在线视频| 欧美日韩av久久| videosex国产| 高清av免费在线| 久久人人爽人人片av| 国产精品九九99| 婷婷丁香在线五月| 欧美亚洲日本最大视频资源| 女性生殖器流出的白浆| 少妇人妻久久综合中文| 午夜激情av网站| 尾随美女入室| 国产熟女午夜一区二区三区| 精品少妇久久久久久888优播| 色播在线永久视频| 日日爽夜夜爽网站| 一本综合久久免费| 国产成人系列免费观看| 电影成人av| 欧美久久黑人一区二区| 狂野欧美激情性bbbbbb| 欧美老熟妇乱子伦牲交| 久久精品亚洲av国产电影网| 青青草视频在线视频观看| 国产高清视频在线播放一区 | 午夜福利视频在线观看免费| 啦啦啦在线免费观看视频4| 国产视频首页在线观看| 韩国高清视频一区二区三区| 国产一区二区激情短视频 | 99精品久久久久人妻精品| av不卡在线播放| 少妇被粗大的猛进出69影院| 国产黄色免费在线视频| 国产免费视频播放在线视频| 日韩视频在线欧美| 观看av在线不卡| 又黄又粗又硬又大视频| 欧美老熟妇乱子伦牲交| 18禁黄网站禁片午夜丰满| a 毛片基地| 国产一区二区三区综合在线观看| 国产97色在线日韩免费| 丝袜美足系列| 搡老岳熟女国产| 高清黄色对白视频在线免费看| 男女国产视频网站| 妹子高潮喷水视频| 亚洲七黄色美女视频| 亚洲精品国产色婷婷电影| 热re99久久精品国产66热6| 国产在线视频一区二区| 嫁个100分男人电影在线观看 | 涩涩av久久男人的天堂| 在线看a的网站| 久久影院123| 女人高潮潮喷娇喘18禁视频| 视频在线观看一区二区三区| 丁香六月欧美| 日本欧美视频一区| 汤姆久久久久久久影院中文字幕| 在线观看免费高清a一片| 午夜福利视频在线观看免费| 一区二区三区精品91| 国产成人精品久久二区二区免费| 亚洲av成人不卡在线观看播放网 | 国产成人精品久久久久久| 免费久久久久久久精品成人欧美视频| 妹子高潮喷水视频| 天天添夜夜摸| 亚洲精品乱久久久久久| 成年人午夜在线观看视频| 丝袜喷水一区| 满18在线观看网站| 丰满人妻熟妇乱又伦精品不卡| 亚洲五月色婷婷综合| 叶爱在线成人免费视频播放| 免费在线观看日本一区| 国产淫语在线视频| 国产精品一国产av| 一本综合久久免费| 亚洲精品美女久久久久99蜜臀 | 亚洲av成人不卡在线观看播放网 | 99精品久久久久人妻精品| 亚洲五月色婷婷综合| 丝袜在线中文字幕| 在线观看免费日韩欧美大片| 女人被躁到高潮嗷嗷叫费观| 国产一区二区在线观看av| 亚洲少妇的诱惑av| 啦啦啦在线观看免费高清www| 精品亚洲成a人片在线观看| e午夜精品久久久久久久| 女人被躁到高潮嗷嗷叫费观| 一级,二级,三级黄色视频| 咕卡用的链子| 日韩精品免费视频一区二区三区| 99精品久久久久人妻精品| 亚洲欧美清纯卡通| 国产91精品成人一区二区三区 | 亚洲 国产 在线| 国产福利在线免费观看视频| 久久久久久久精品精品| 国产又爽黄色视频| 亚洲一卡2卡3卡4卡5卡精品中文| 一边摸一边抽搐一进一出视频| 国产亚洲欧美在线一区二区| 国产成人啪精品午夜网站| 人人妻,人人澡人人爽秒播 | 高清不卡的av网站| 五月开心婷婷网| 99久久99久久久精品蜜桃| 香蕉丝袜av| www日本在线高清视频| 男女下面插进去视频免费观看| 午夜激情av网站| 国产成人影院久久av| 国产无遮挡羞羞视频在线观看| 亚洲天堂av无毛| www.自偷自拍.com| 各种免费的搞黄视频| 国产精品香港三级国产av潘金莲 | 成年人免费黄色播放视频| 高清不卡的av网站| 你懂的网址亚洲精品在线观看| 色婷婷久久久亚洲欧美| 色精品久久人妻99蜜桃| 性色av一级| 别揉我奶头~嗯~啊~动态视频 | 国产男女超爽视频在线观看| 中文字幕高清在线视频| 亚洲av美国av| 一边亲一边摸免费视频| 欧美 日韩 精品 国产| 精品国产一区二区三区久久久樱花| 亚洲av电影在线观看一区二区三区| 国产深夜福利视频在线观看| 男女下面插进去视频免费观看| 欧美精品亚洲一区二区| 亚洲av成人精品一二三区| 免费日韩欧美在线观看| 精品国产一区二区三区四区第35| 国产国语露脸激情在线看| 久热爱精品视频在线9| 性色av乱码一区二区三区2| 高清不卡的av网站| 尾随美女入室| 日本猛色少妇xxxxx猛交久久| av在线老鸭窝| 午夜老司机福利片| 美女视频免费永久观看网站| 亚洲精品久久久久久婷婷小说| 丝袜脚勾引网站| 亚洲七黄色美女视频| 国语对白做爰xxxⅹ性视频网站| 美女高潮到喷水免费观看| 成人18禁高潮啪啪吃奶动态图| 亚洲国产毛片av蜜桃av| 久久精品成人免费网站| 热99国产精品久久久久久7| 国产精品二区激情视频| 成人国语在线视频| 一级a爱视频在线免费观看| 国产成人精品久久久久久| 亚洲国产精品一区三区| 男女午夜视频在线观看| 久久久精品国产亚洲av高清涩受| 精品国产超薄肉色丝袜足j| 交换朋友夫妻互换小说| 王馨瑶露胸无遮挡在线观看| 九草在线视频观看| 天堂8中文在线网| 国产91精品成人一区二区三区 | 国产精品久久久久久精品古装| 性色av乱码一区二区三区2| 王馨瑶露胸无遮挡在线观看| 亚洲国产日韩一区二区| 夫妻午夜视频| 欧美精品高潮呻吟av久久| 青草久久国产| 在线 av 中文字幕| 精品国产一区二区三区久久久樱花| 国产日韩一区二区三区精品不卡| 美女午夜性视频免费| 亚洲av男天堂| 老熟女久久久| 国产麻豆69| 亚洲国产精品国产精品| 菩萨蛮人人尽说江南好唐韦庄| 伊人久久大香线蕉亚洲五| 免费在线观看黄色视频的| 午夜精品国产一区二区电影| 亚洲人成电影免费在线| 亚洲精品国产av蜜桃| 精品熟女少妇八av免费久了| 亚洲 国产 在线| 性少妇av在线| 在线观看人妻少妇| 91麻豆av在线| 精品国产一区二区三区四区第35| 午夜激情久久久久久久| 国产一区有黄有色的免费视频| 99久久精品国产亚洲精品| 精品亚洲成a人片在线观看| 成人国产av品久久久| av网站免费在线观看视频| 免费日韩欧美在线观看| 亚洲欧美精品自产自拍| 亚洲自偷自拍图片 自拍| 久久av网站| 欧美日韩综合久久久久久| 国产成人av激情在线播放| 蜜桃在线观看..| √禁漫天堂资源中文www| 午夜精品国产一区二区电影| 女警被强在线播放| 自线自在国产av| 亚洲精品久久成人aⅴ小说| 日本午夜av视频| 男人爽女人下面视频在线观看| 性色av乱码一区二区三区2| 女人爽到高潮嗷嗷叫在线视频| www.av在线官网国产| av一本久久久久| 午夜免费男女啪啪视频观看| 一级片'在线观看视频| 美女午夜性视频免费| 成人国产av品久久久| 国产在线观看jvid| 黄色片一级片一级黄色片| 午夜精品国产一区二区电影| 视频区图区小说| 亚洲 国产 在线| 欧美日韩福利视频一区二区| 婷婷色av中文字幕| 久久精品亚洲av国产电影网| 久热爱精品视频在线9| 亚洲激情五月婷婷啪啪| 午夜两性在线视频| 69精品国产乱码久久久| 免费在线观看影片大全网站 | 午夜免费鲁丝| 啦啦啦 在线观看视频| 91精品国产国语对白视频| 国产精品一区二区在线观看99| netflix在线观看网站| 黄频高清免费视频| 精品福利观看| 十八禁人妻一区二区| 亚洲精品国产区一区二| 国产色视频综合| 欧美 日韩 精品 国产| 人成视频在线观看免费观看| 下体分泌物呈黄色| 男女边摸边吃奶| 免费在线观看视频国产中文字幕亚洲 | 午夜免费鲁丝| 男女床上黄色一级片免费看| 成人影院久久| 日韩精品免费视频一区二区三区| 激情五月婷婷亚洲| 国产主播在线观看一区二区 | 丝袜喷水一区| 久久久国产一区二区| av视频免费观看在线观看| 搡老乐熟女国产| 五月开心婷婷网| 久久久久国产精品人妻一区二区| 精品久久久久久电影网| 熟女av电影| 国产成人免费无遮挡视频| 亚洲成色77777| 2021少妇久久久久久久久久久| 日本a在线网址| av国产久精品久网站免费入址| 久久国产精品大桥未久av| 久久久久久久精品精品| 亚洲成色77777| 丰满少妇做爰视频| 欧美xxⅹ黑人| 国语对白做爰xxxⅹ性视频网站| 在线看a的网站| 久久久久网色| 交换朋友夫妻互换小说| 国产精品久久久久久精品电影小说| 婷婷色麻豆天堂久久| 欧美日韩黄片免| 日本一区二区免费在线视频| 亚洲精品一区蜜桃| 久久久久国产一级毛片高清牌| 日韩欧美一区视频在线观看| 国产日韩一区二区三区精品不卡| 亚洲人成77777在线视频| 久久久久久免费高清国产稀缺| 一级片'在线观看视频| 90打野战视频偷拍视频| 久久精品久久久久久久性| 成人三级做爰电影| 国产精品.久久久| 亚洲三区欧美一区| 日本vs欧美在线观看视频| 青春草视频在线免费观看| 成人18禁高潮啪啪吃奶动态图| 19禁男女啪啪无遮挡网站| netflix在线观看网站| 国产成人精品久久二区二区91| 久热爱精品视频在线9| 成年人黄色毛片网站|