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

    向量分組聚集計(jì)算技術(shù)研究

    2021-06-11 10:16:02張延松
    關(guān)鍵詞:哈希分組向量

    張 宇,張延松

    1.國(guó)家衛(wèi)星氣象中心,北京100081 2.中國(guó)人民大學(xué) 信息學(xué)院,北京100872

    數(shù)據(jù)庫(kù)的OLAP查詢主要由選擇、投影、連接、分組、聚集等基本關(guān)系操作組成,其中分組聚集操作需要對(duì)海量的事實(shí)數(shù)據(jù)按指定的屬性進(jìn)行分組并執(zhí)行聚集計(jì)算,是一個(gè)典型的數(shù)據(jù)密集型負(fù)載,也是一個(gè)對(duì)查詢性能有較大影響的操作符,但OLAP查詢性能并不是簡(jiǎn)單的關(guān)系操作符性能的疊加。通過(guò)實(shí)驗(yàn)測(cè)試發(fā)現(xiàn),GPU數(shù)據(jù)庫(kù)MapD在連接、分組聚集等主要操作符的性能上較其CPU版本具有顯著的優(yōu)勢(shì),但對(duì)于查詢操作整體而言,即使在查詢的數(shù)據(jù)量低于GPU本地內(nèi)存的情況下,GPU版本的查詢性能也要低于CPU版本。單純提高關(guān)系操作符在GPU上的執(zhí)行性能并不能最大化GPU數(shù)據(jù)庫(kù)整體性能,需要以異構(gòu)計(jì)算平臺(tái)作為數(shù)據(jù)庫(kù)新的硬件假設(shè),優(yōu)化設(shè)計(jì)面向異構(gòu)計(jì)算平臺(tái)的查詢處理模型。通過(guò)定制面向異構(gòu)計(jì)算平臺(tái)特征的操作符優(yōu)化查詢算法以提高查詢算法與硬件特性的適應(yīng)性來(lái)提升查詢性能。

    本文以O(shè)LAP中重要的分組聚集操作為研究對(duì)象,將傳統(tǒng)查詢處理模型中位于查詢樹末端的分組聚集操作拆分為分組和聚集計(jì)算兩個(gè)操作,分組操作采用“早分組(early grouping)”策略下推到表掃描階段并與維表綁定,聚集計(jì)算操作采用“晚聚集(late aggregation)”策略保留在查詢樹末端并與事實(shí)表綁定。分組操作融合到連接操作中,通過(guò)向量索引實(shí)現(xiàn)分組與聚集計(jì)算之間的映射。向量索引聚集技術(shù)將數(shù)據(jù)密集型的聚集計(jì)算從計(jì)算密集型的連接操作中分離出來(lái),將傳統(tǒng)流水線查詢處理模型中的計(jì)算密集型操作與數(shù)據(jù)密集型操作分離,同時(shí)建立了聚集計(jì)算性能測(cè)試基準(zhǔn),以便更加準(zhǔn)確地評(píng)估聚集計(jì)算性能并匹配最佳的計(jì)算平臺(tái),實(shí)現(xiàn)在異構(gòu)計(jì)算平臺(tái)上負(fù)載的優(yōu)化分配。

    本文的貢獻(xiàn)主要體現(xiàn)在以下幾個(gè)方面:

    (1)提出了基于私有向量的向量分組聚集算法和基于共享向量的向量分組聚集算法,設(shè)計(jì)了cache-conscious vector grouping benchmark,分析了算法性能與硬件參數(shù)之間的關(guān)聯(lián)性,提出了算法優(yōu)化選擇策略。

    (2)提出了將分組聚集操作從傳統(tǒng)的流水線中分離的策略,通過(guò)向量聚集技術(shù)實(shí)現(xiàn)數(shù)據(jù)密集型負(fù)載與計(jì)算密集型負(fù)載的分離,為準(zhǔn)確評(píng)估聚集計(jì)算代價(jià)和優(yōu)化配置硬件資源提供必要的條件。

    (3)對(duì)比了向量分組聚集算法與當(dāng)前最優(yōu)的內(nèi)存數(shù)據(jù)庫(kù)Hyper、GPU數(shù)據(jù)庫(kù)MapD在不同分組勢(shì)集參數(shù)下的向量分組聚集操作性能,揭示了算法的性能特征,通過(guò)量化的向量分組聚集基準(zhǔn)性能測(cè)試提供硬件平臺(tái)最優(yōu)匹配策略。

    1 相關(guān)工作

    當(dāng)前高性能數(shù)據(jù)庫(kù)以內(nèi)存數(shù)據(jù)庫(kù)和基于硬件加速器的數(shù)據(jù)庫(kù)(如GPU數(shù)據(jù)庫(kù))為代表,其性能的關(guān)鍵影響因素包括:關(guān)鍵算法性能、查詢處理模型性能、異構(gòu)平臺(tái)協(xié)同計(jì)算性能等。

    在傳統(tǒng)的關(guān)系操作中,連接是查詢性能重要的影響因素,近年研究熱點(diǎn)問題之一是如何通過(guò)面向硬件特性的優(yōu)化技術(shù)提高連接操作性能。NPO(No-partitioning hash join)[1]、PRO(Radix-partitioning hash join)[2]和sortmerge[3]等代表了當(dāng)前最優(yōu)的內(nèi)存連接技術(shù),其中以hardware-conscious的PRO算法性能最優(yōu)。哈希連接是數(shù)據(jù)庫(kù)中通用的算法,算法優(yōu)化涉及較多的影響因素,加大了優(yōu)化的難度[4]。Array Join[5]和AIR[6]是面向外鍵特性的定制化連接技術(shù),針對(duì)OLAP特性的定制將哈希表簡(jiǎn)化為數(shù)組,將哈希探測(cè)操作優(yōu)化為數(shù)組地址訪問,通過(guò)面向負(fù)載與數(shù)據(jù)特征的定制優(yōu)化進(jìn)一步提高連接性能。

    進(jìn)一步地,連接優(yōu)化技術(shù)從通用的多核CPU平臺(tái)擴(kuò)展到硬件加速器平臺(tái),利用專用硬件的高性能來(lái)加速連接操作。近年來(lái)一系列面向?qū)S糜布铀倨鳎鏕PU[7-9]、Phi[10]、FPGA[11-12]以及多異構(gòu)加速器的連接優(yōu)化技術(shù)研究深入探索了如何基于硬件加速器的物理特性加速連接性能的優(yōu)化技術(shù)。已有的研究主要聚焦于如何挖掘特定硬件加速器的計(jì)算特性,但對(duì)硬件加速器存儲(chǔ)空間利用率在算法中的影響未賦予足夠的權(quán)重。當(dāng)前研究中性能最優(yōu)的PRO分區(qū)哈希連接算法需要付出額外的數(shù)據(jù)分區(qū)存儲(chǔ)和計(jì)算代價(jià)來(lái)?yè)Q取較高的性能,這在CPU平臺(tái)的內(nèi)存模式下以內(nèi)存足夠大的默認(rèn)假設(shè)為前提,但在硬件加速器平臺(tái),較小的內(nèi)存容量破壞了這一基礎(chǔ)假設(shè),使其理想性能可支持的數(shù)據(jù)量大幅削減。在文獻(xiàn)[13]中通過(guò)實(shí)驗(yàn)測(cè)試發(fā)現(xiàn)基于分區(qū)技術(shù)的PRO算法在Phi加速器上所支持的數(shù)據(jù)量是不分區(qū)技術(shù)的NPO算法的一半,而且性能低于面向OLAP定制的AIR算法。從硬件的發(fā)展趨勢(shì)來(lái)看,硬件加速器內(nèi)存與連接通道帶寬性能始終存在較大差距,提高硬件加速器內(nèi)存利用率、提高關(guān)鍵算法的數(shù)據(jù)局部性是兩個(gè)重要的優(yōu)化維度。連接技術(shù)的深入研究證明了在多核CPU和GPU等硬件加速器平臺(tái)上的性能優(yōu)化方法的效果,但這些研究通常面向獨(dú)立的連接操作,對(duì)于OLAP場(chǎng)景下的多表星形連接以及整個(gè)查詢執(zhí)行計(jì)劃中計(jì)算密集型的連接操作與數(shù)據(jù)密集型的分組聚集操作之間的優(yōu)化匹配涉及較少,而連接技術(shù)的選擇受分組聚集操作技術(shù)的影響較大,需要綜合考慮性能、數(shù)據(jù)效率、數(shù)據(jù)局部性等影響因素。

    當(dāng)前的GPU連接優(yōu)化技術(shù)研究關(guān)注于連接操作性能問題,而在關(guān)系數(shù)據(jù)庫(kù)的Volcano查詢處理模型中連接操作處于查詢流水線中間,其性能受其他操作符影響較大。文獻(xiàn)[14]指出在實(shí)際的TPC-H查詢中單獨(dú)連接操作執(zhí)行時(shí)間占比僅為10%~15%,通過(guò)GPU僅加速連接操作對(duì)于提升整體查詢處理性能的作用受到一定限制。

    分組聚集是OLAP查詢中另一個(gè)重要的操作符,主要的分組聚集方法包括排序分組聚集和哈希分組聚集兩大類。排序分組聚集適合于非常大的分組勢(shì)集并且需要將查詢樹前端的連接結(jié)果物化下來(lái)才能執(zhí)行,不適合流水查詢處理模型。哈希分組聚集適合OLAP查詢中分組勢(shì)集較小的場(chǎng)景,而且適應(yīng)流水線查詢模式,在數(shù)據(jù)庫(kù)中應(yīng)用較廣。哈希聚集又分為基于共享哈希表、獨(dú)立哈希表和分區(qū)哈希表三種方法[15],其優(yōu)化技術(shù)原理也與哈希連接算法類似,不同之處在于分組聚集操作中的哈希分組表遠(yuǎn)小于哈希連接操作中的哈希表,而且分組聚集操作涉及的數(shù)據(jù)集遠(yuǎn)大于連接操作。除通用的哈希分組聚集算法之外,文獻(xiàn)[6]中使用了面向OLAP負(fù)載定制化的多維數(shù)組聚集計(jì)算方法,通過(guò)將各維表上的分組屬性映射為一個(gè)多維數(shù)組實(shí)現(xiàn)通過(guò)簡(jiǎn)單的多維數(shù)組代替哈希表的聚集計(jì)算。在Oracle內(nèi)存數(shù)據(jù)庫(kù)中使用的內(nèi)存聚集IMA算法[16]也使用了類似的方法,通過(guò)Key Vector映射連接鍵值和分組編碼,通過(guò)多維聚集器進(jìn)行分組聚集計(jì)算。從算法實(shí)現(xiàn)技術(shù)來(lái)看,哈希分組聚集方法通用性較強(qiáng),多維數(shù)組和IMA算法面向OLAP負(fù)載特征定制化設(shè)計(jì),在性能、代碼執(zhí)行效率等方面具有顯著的優(yōu)勢(shì)。

    分組聚集計(jì)算也是GPU數(shù)據(jù)庫(kù)的重要操作,在GPU平臺(tái)上的分組聚集計(jì)算方法因GPU存儲(chǔ)層次的多樣性而產(chǎn)生不同的優(yōu)化技術(shù)[17],分組聚集計(jì)算是典型的數(shù)據(jù)密集型負(fù)載,其綜合性能評(píng)估還需要增加PCIe通道數(shù)據(jù)傳輸代價(jià)。從處理模型來(lái)看,CPU平臺(tái)完成了從一次一列處理模型[18]向一次一向量[19]、實(shí)時(shí)編譯[20]查詢處理模型升級(jí),但GPU數(shù)據(jù)庫(kù)通常采用一次一操作(一次一列)的處理模式,產(chǎn)生較高的中間結(jié)果物化代價(jià),降低了GPU內(nèi)存的利用率。同時(shí),傳統(tǒng)的流水處理模式中,分組聚集操作位于連接操作之后,難以從查詢計(jì)劃中有效地分離計(jì)算密集型與數(shù)據(jù)密集型負(fù)載。文獻(xiàn)[21]提出一種整合MOLAP多維計(jì)算與ROLAP關(guān)系存儲(chǔ)的OLAP實(shí)現(xiàn)技術(shù),并將傳統(tǒng)的OLAP查詢計(jì)劃分解合為維映射、多維計(jì)算與聚集計(jì)算三個(gè)處理階段,實(shí)現(xiàn)以負(fù)載為粒度的異構(gòu)查詢處理。本文在此基礎(chǔ)上進(jìn)一步研究基于向量分組聚集計(jì)算實(shí)現(xiàn)技術(shù),探索硬件參數(shù)對(duì)向量分組聚集算法性能的影響因素,以及分組聚集計(jì)算在CPU與GPU平臺(tái)的執(zhí)行策略。

    2 異構(gòu)平臺(tái)OLAP計(jì)算框架

    在CPU-GPU異構(gòu)平臺(tái)上,GPU并行計(jì)算能力強(qiáng)大,顯存帶寬更高,但容量相對(duì)較小,CPU與GPU之間的PCIe通道帶寬性能遠(yuǎn)低于內(nèi)存帶寬和GPU顯存帶寬。對(duì)于異構(gòu)平臺(tái)上的計(jì)算負(fù)載來(lái)說(shuō),數(shù)據(jù)有多大,算得有多快,數(shù)據(jù)是否具有共享性等因素都是決定計(jì)算負(fù)載執(zhí)行場(chǎng)地的影響因素。

    本章首先討論以分組聚集計(jì)算為中心的查詢處理策略,然后介紹面向異構(gòu)計(jì)算平臺(tái)的OLAP計(jì)算框架,實(shí)現(xiàn)基于負(fù)載特征和異構(gòu)計(jì)算平臺(tái)特征的定制化OLAP查詢處理模型。

    2.1 以分組聚集計(jì)算為中心的查詢處理策略

    在OLAP應(yīng)用中,分組聚集計(jì)算是在龐大的事實(shí)表上按GROUP BY屬性分組后進(jìn)行聚集計(jì)算,其依賴的數(shù)據(jù)集較大,而且分組操作依賴于前面連接操作的結(jié)果集,在CPU-GPU混合平臺(tái)上執(zhí)行時(shí)其執(zhí)行場(chǎng)地的選擇既受數(shù)據(jù)量的影響又受連接操作場(chǎng)地的影響。關(guān)系數(shù)據(jù)庫(kù)采用流水迭代查詢處理模型,在查詢優(yōu)化中主要采用將選擇、投影等操作下推到底層表掃描節(jié)點(diǎn)的優(yōu)化策略,分組操作涉及不同的表而通常采用后物化方式在連接操作之后實(shí)時(shí)執(zhí)行哈希分組并與聚集計(jì)算合并。OLAP查詢中分組數(shù)量遠(yuǎn)低于記錄數(shù)量的特征決定了后物化分組方法增加了重復(fù)的哈希分組探測(cè)計(jì)算代價(jià)并且與連接操作形成強(qiáng)依賴關(guān)系,連接操作的執(zhí)行場(chǎng)地通常就是分組聚集操作的執(zhí)行場(chǎng)地。在CPU-GPU異構(gòu)計(jì)算平臺(tái)上若連接操作與分組聚集操作分布于不同的處理器平臺(tái)時(shí),在異構(gòu)計(jì)算平臺(tái)上連接結(jié)果物化后再執(zhí)行分組聚集操作方法產(chǎn)生較高的連接結(jié)果物化代價(jià)。

    基于異構(gòu)計(jì)算平臺(tái)的存儲(chǔ)與計(jì)算資源不均衡的特性,本文采用以數(shù)據(jù)局部性優(yōu)化為中心、以計(jì)算獨(dú)立性為基礎(chǔ)的異步OLAP查詢優(yōu)化策略,通過(guò)反向查詢樹優(yōu)化方法優(yōu)化異構(gòu)計(jì)算平臺(tái)上的關(guān)系操作實(shí)現(xiàn)技術(shù)。分組聚集操作應(yīng)用于事實(shí)表大數(shù)據(jù)集,在CPU-GPU混合平臺(tái)數(shù)據(jù)移動(dòng)代價(jià)最高,從數(shù)據(jù)局部性的角度來(lái)看最優(yōu)的計(jì)算平臺(tái)是CPU;從性能的角度來(lái)看,關(guān)鍵問題是CPU分組聚集計(jì)算最優(yōu)性能在什么負(fù)載區(qū)間能超過(guò)GPU計(jì)算以及分組聚集計(jì)算選擇CPU或GPU作為計(jì)算平臺(tái)的優(yōu)化選擇策略。本節(jié)介紹了分組聚集計(jì)算的優(yōu)化方法,以及受優(yōu)化的分組聚集計(jì)算反向傳播而影響的相關(guān)關(guān)系操作實(shí)現(xiàn)技術(shù),提出了以分組聚集計(jì)算為核心的OLAP查詢優(yōu)化方法,并在實(shí)驗(yàn)部分給出了分組聚集計(jì)算對(duì)CPU和GPU平臺(tái)的優(yōu)化選擇策略。

    (1)分組聚集優(yōu)化

    從OLAP邏輯數(shù)據(jù)模型的角度來(lái)看,OLAP操作可以抽象為在事實(shí)數(shù)據(jù)上按給定的選擇策略和分組策略進(jìn)行聚集計(jì)算。從關(guān)系角度看,OLAP操作最理想的方法是直接執(zhí)行事實(shí)表上的索引分組聚集計(jì)算,即每一條事實(shí)記錄根據(jù)一種特定的索引結(jié)構(gòu)確定自己是否參與查詢的聚集計(jì)算,并且可以直接訪問用于聚集計(jì)算的累加器地址。從索引實(shí)現(xiàn)技術(shù)的角度看,實(shí)現(xiàn)理想的分組聚集計(jì)算需要將分組屬性向量化并且將分組向量映射到事實(shí)表位圖索引中實(shí)現(xiàn)直接的分組聚集計(jì)算。

    圖1為向量分組聚集計(jì)算操作示意圖,右側(cè)分組向量為基于SQL命令中GROUP BY語(yǔ)句構(gòu)造的分組向量,每個(gè)分組值對(duì)應(yīng)向量中的一個(gè)單元,分組ID為向量單元地址(數(shù)組下標(biāo))。相應(yīng)地,事實(shí)記錄上的向量分組聚集操作基于向量索引實(shí)現(xiàn)。左側(cè)為向量索引結(jié)構(gòu)示意圖,向量索引是一種多位位圖結(jié)構(gòu),非空值代表相應(yīng)位置的事實(shí)記錄參與查詢最終的分組聚集計(jì)算,向量索引值為最終分組向量單元ID,通過(guò)向量索引實(shí)現(xiàn)對(duì)事實(shí)記錄按位置訪問并按向量索引值直接映射到分組向量單元聚集計(jì)算。向量索引的基本結(jié)構(gòu)為與事實(shí)記錄等長(zhǎng)的定長(zhǎng)向量,向量寬度最小為向量索引中非空值數(shù)量(分組向量勢(shì)集)對(duì)應(yīng)的最小二進(jìn)制位,即lb|分組向量|,向量索引的單元地址與事實(shí)記錄地址為一一映射關(guān)系。當(dāng)向量索引中非空值數(shù)量較少,即查詢選擇率較低時(shí),向量索引可以采用壓縮的二元組key/value結(jié)構(gòu),key值為非空向量索引單元的記錄位置,value為該向量索引單元存儲(chǔ)的分組ID。在應(yīng)用中,定長(zhǎng)向量索引可以選擇一個(gè)適合的公共寬度,如int_16(對(duì)應(yīng)最大216個(gè)分組),不同的OLAP查詢可以共享該向量索引結(jié)構(gòu),減少多查詢處理時(shí)的動(dòng)態(tài)內(nèi)存分配代價(jià)。壓縮向量索引在低選擇率查詢執(zhí)行時(shí)降低了向量索引掃描代價(jià),不同查詢需要生成不同長(zhǎng)度的壓縮向量索引,需要為壓縮向量索引動(dòng)態(tài)分配內(nèi)存。

    圖1 向量分組聚集操作

    從算法設(shè)計(jì)的角度來(lái)看,本文提出的向量分組聚集操作在分組向量存儲(chǔ)結(jié)構(gòu)上達(dá)到了最小化存儲(chǔ)空間,直接映射到分組向量單元的聚集計(jì)算達(dá)到了分組計(jì)算的最小化CPU計(jì)算時(shí)間,在聚集數(shù)據(jù)掃描操作上通過(guò)壓縮向量索引達(dá)到最高訪問效率,在獨(dú)立的分組聚集操作實(shí)現(xiàn)技術(shù)上達(dá)到了局部最優(yōu)。從數(shù)據(jù)庫(kù)查詢處理模型的角度來(lái)看,關(guān)鍵問題是如何優(yōu)化數(shù)據(jù)庫(kù)查詢處理模型以創(chuàng)建最優(yōu)的分組聚集計(jì)算所需的分組向量和壓縮向量索引數(shù)據(jù)結(jié)構(gòu),來(lái)最大化分組聚集操作性能,從而為分組聚集操作的執(zhí)行場(chǎng)地選擇提供支持。

    向量分組聚集操作基于向量索引順序掃描和事實(shí)數(shù)據(jù)按位置訪問操作,是一種線性的處理方式,適合于多核CPU并行處理。圖2顯示多核并行向量聚集操作的基本實(shí)現(xiàn)方法:若向量索引為定長(zhǎng)向量,按線程數(shù)量邏輯劃分向量索引分區(qū),并按相同的位置邏輯劃分事實(shí)數(shù)據(jù)分區(qū),每個(gè)線程并行掃描向量索引分區(qū)并執(zhí)行在對(duì)應(yīng)事實(shí)數(shù)據(jù)分區(qū)上的向量聚集操作;若向量索引為壓縮格式,采用與定長(zhǎng)向量索引相同的邏輯分區(qū)一方面需要掃描壓縮向量索引的key值確定分區(qū)位置,另一方面當(dāng)向量索引中非空值分布不均衡時(shí)定長(zhǎng)邏輯分區(qū)導(dǎo)致不同線程中實(shí)際執(zhí)行的聚集計(jì)算代價(jià)不同,負(fù)載難以均衡,采用在壓縮向量索引上均衡邏輯分區(qū)策略,簡(jiǎn)化邏輯分區(qū)的位置計(jì)算并使各線程對(duì)應(yīng)邏輯分區(qū)上的聚集計(jì)算代價(jià)較為均衡。

    圖2 多核并行向量分組聚集操作

    在本文提出的在并行向量分組聚集操作執(zhí)行時(shí)實(shí)現(xiàn)技術(shù)中,可以采用三種聚集計(jì)算方法:多線程共享統(tǒng)一的分組向量,執(zhí)行基于并發(fā)控制機(jī)制的全局分組聚集計(jì)算;每個(gè)線程使用私有分組向量完成本線程邏輯事實(shí)數(shù)據(jù)分片上的分組聚集計(jì)算操作,各線程處理完畢后執(zhí)行線程間分組向量的歸并計(jì)算,生成最終的分組向量;當(dāng)分組向量勢(shì)值非常大時(shí),采用基于分組向量ID的Radix分區(qū)方法對(duì)分組向量和相應(yīng)的事實(shí)數(shù)據(jù)進(jìn)行分區(qū),使每個(gè)分區(qū)的分組向量小于私有cache,然后在每個(gè)分區(qū)上執(zhí)行基于私有分組向量的向量分組聚集計(jì)算或哈希分組聚集計(jì)算。當(dāng)分組向量比CPU線程私有cache(L1 cache、L2 cache、L3 cache slice)小時(shí),分組聚集計(jì)算具有較高的數(shù)據(jù)局部性,私有分組向量提高了并行計(jì)算效率。當(dāng)分組向量超過(guò)CPU線程私有cache時(shí),私有分組向量產(chǎn)生較高的cache miss,共享分組向量具有較好的效率。基于Radix分區(qū)的分組聚集方法加倍了內(nèi)存開銷,在GPU使用較小內(nèi)存執(zhí)行大數(shù)據(jù)分組聚集計(jì)算時(shí)進(jìn)一步降低了GPU內(nèi)存利用率,因此本文中暫未對(duì)Radix分區(qū)分組聚集計(jì)算進(jìn)行深入的研究,在對(duì)比實(shí)驗(yàn)中主要選擇代表性的GPU數(shù)據(jù)庫(kù)MapD的分組聚集實(shí)現(xiàn)技術(shù)作為GPU上分組聚集操作的代表性實(shí)現(xiàn)技術(shù)。在實(shí)驗(yàn)部分測(cè)試前兩種多核并行向量分組聚集計(jì)算的性能,通過(guò)實(shí)驗(yàn)確定兩種方法的適用范圍。在性能指標(biāo)的選擇上,創(chuàng)造性地設(shè)計(jì)了數(shù)據(jù)處理帶寬指標(biāo),即用分組聚集計(jì)算操作涉及的數(shù)據(jù)量除以查詢處理時(shí)間以獲得數(shù)據(jù)處理的帶寬性能,將PCIe帶寬作為一個(gè)閾值來(lái)決定分組聚集計(jì)算的執(zhí)行場(chǎng)地選擇策略:

    ①當(dāng)數(shù)據(jù)處理帶寬>PCIe帶寬時(shí),分組聚集操作的執(zhí)行場(chǎng)地為CPU。

    ②當(dāng)數(shù)據(jù)處理帶寬

    執(zhí)行場(chǎng)地選擇策略確定了在向量分組聚集操作下選擇CPU作為執(zhí)行場(chǎng)地的規(guī)則,但對(duì)于是否在GPU端執(zhí)行還需要額外的選擇策略,如GPU端分組聚集操作的性能、基于數(shù)據(jù)移動(dòng)的GPU分組聚集操作是否優(yōu)于CPU端分組聚集操作性能、GPU端數(shù)據(jù)存儲(chǔ)策略、GPU分組計(jì)算方法等因素的影響,將在未來(lái)的工作中繼續(xù)深入探索完整的執(zhí)行場(chǎng)地選擇優(yōu)化策略。本文采用的執(zhí)行場(chǎng)地優(yōu)化選擇策略在實(shí)驗(yàn)部分SSB基準(zhǔn)數(shù)據(jù)集上的測(cè)試結(jié)果表明,在典型的OLAP負(fù)載中該規(guī)則已準(zhǔn)確選擇分組聚集操作執(zhí)行的最優(yōu)場(chǎng)地。

    (2)星形連接操作優(yōu)化

    在查詢處理模型的優(yōu)化設(shè)計(jì)中采用反向貪心算法,即從查詢樹末端操作開始設(shè)計(jì)最優(yōu)的實(shí)現(xiàn)方法,然后反向傳播,確定前一操作相對(duì)應(yīng)的最優(yōu)實(shí)現(xiàn)技術(shù),以保證以分組聚集計(jì)算為中心的查詢處理達(dá)到最優(yōu)。

    確定OLAP查詢處理末端分組聚集操作的最優(yōu)模式后,需要反向優(yōu)化前端的星形連接操作,要求星形連接操作輸出向量索引。

    圖3給出星形連接操作的幾種實(shí)現(xiàn)方法。本文的星形連接操作只涉及較小的維表輸出數(shù)據(jù)結(jié)構(gòu)(向量或哈希表)、中等大小的事實(shí)表外鍵和向量索引,不涉及龐大的事實(shí)數(shù)據(jù),在連接操作中消除傳統(tǒng)事實(shí)表和事實(shí)數(shù)據(jù)之間的關(guān)聯(lián)性,從而使連接操作可以在較小的事實(shí)表外鍵列上獨(dú)立執(zhí)行,也使連接操作可以與分組聚集操作分離,成為兩個(gè)獨(dú)立執(zhí)行的操作,在執(zhí)行場(chǎng)地的選擇上消除強(qiáng)關(guān)聯(lián)。當(dāng)維表采用代理鍵(surrogate key,連續(xù)的自然數(shù)列)時(shí),可以使用優(yōu)化的AIR[13](vector referencing[21])算法執(zhí)行連接及星形連接操作,外鍵值直接映射到維向量的數(shù)組地址。當(dāng)維表主鍵不能直接映射為地址時(shí),可以采用傳統(tǒng)的哈希連接方法,為維表(主鍵,維分組ID)創(chuàng)建哈希表。本文采用cube映射方式將GROUP-BY屬性映射為分組向量,即將各維表上的GROUP-BY屬性映射為一個(gè)多維cube的各維ID,當(dāng)一個(gè)維表上存在多個(gè)維屬性時(shí)則通過(guò)降維方法將多個(gè)屬性的distinct值映射為該維的復(fù)合ID。使用該多維cube分組時(shí)稱為cube分組,將該多維cube映射為一個(gè)一維向量分組稱為向量分組,執(zhí)行星形連接時(shí)需要迭代地通過(guò)各維表的分組ID計(jì)算出在多維cube上一維地址,作為后一階段向量分組聚集操作中的分組向量ID。cube分組對(duì)應(yīng)了GROUP-BY屬性映射出的多維空間,在連接操作執(zhí)行時(shí)可能部分單元在事實(shí)表上沒有實(shí)際對(duì)應(yīng)的數(shù)據(jù),可以通過(guò)向量緊縮方式進(jìn)一步壓縮向量大小,生成與最終查詢結(jié)果GROUP-BY屬性對(duì)等的向量分組。具體方法是通過(guò)一個(gè)全局遞增序列在執(zhí)行星形連接時(shí)為每個(gè)實(shí)際向量分組單元分配唯一的ID,并將此ID作為最終向量索引中的分組ID值,原始向量分組作為最終向量與GROUP-BY屬性cube分組的映射表。

    圖3 星形連接操作

    當(dāng)維表不滿足主鍵-地址映射或者使用代理鍵主鍵但維向量很稀疏時(shí)使用哈希連接方法,圖3中哈希分組中的鍵值為各維表分組ID,執(zhí)行星形連接時(shí)基于全局遞增序列為相同分組ID的哈希記錄分配全局分組ID,并作為星形連接的結(jié)果記錄在向量索引對(duì)應(yīng)的單元中,哈希分組中的哈希表作為原始多維cube與分組向量的映射表。

    內(nèi)存數(shù)據(jù)庫(kù)較高的性能支持用戶細(xì)粒度的交互式OLAP查詢,查詢結(jié)果的分組數(shù)量通常較低,采用cube分組可以簡(jiǎn)化星形連接算法實(shí)現(xiàn)并滿足大部分OLAP查詢需求。

    星形連接操作是一個(gè)獨(dú)立的計(jì)算階段,可以獨(dú)立選擇適合的優(yōu)化實(shí)現(xiàn)技術(shù)及執(zhí)行場(chǎng)地。文獻(xiàn)[22]給出了一個(gè)星形連接操作實(shí)現(xiàn)方法,通過(guò)將連接所需的外鍵列駐留存儲(chǔ)于GPU顯存,通過(guò)動(dòng)態(tài)傳入較小的維向量調(diào)用高效的GPU星形連接計(jì)算并輸出較小的向量索引的方法提供了自治的星形連接計(jì)算服務(wù)。該方法可以作為本文所提出的查詢處理模型優(yōu)化的星形連接階段的一個(gè)定制化的實(shí)現(xiàn)方法,可以通過(guò)擴(kuò)展本文所提的哈希表星形連接方法使其進(jìn)一步通用化。

    星形連接階段需要輸出向量索引,向量索引中分組向量的構(gòu)建需要在星形連接之前的維表處理階段實(shí)現(xiàn)GROUP-BY屬性與多維分組cube的映射。

    (3)維處理優(yōu)化

    在維表處理階段,如圖4所示,SQL命令改寫為分解到各維表的選擇、投影操作,過(guò)濾后投影出的GROUP BY屬性通過(guò)字典表壓縮將該維表上的分組值映射到數(shù)組字典表并使用數(shù)組下標(biāo)作為分組ID,分組字典表數(shù)組在邏輯上映射為查詢最終分組多維cube的一個(gè)維度。維表過(guò)濾、投影后的壓縮分組ID構(gòu)成一個(gè)維向量,用于后一階段事實(shí)表與該維表的連接過(guò)濾操作。當(dāng)維向量大小低于CPU的LLC大小或維向量超過(guò)LLC大小且選擇率較低時(shí),維向量連接過(guò)濾性能較高[13],當(dāng)維向量上選擇率很低時(shí),可以將維向量中非空單元通過(guò)key/value二元組存儲(chǔ)為哈希表,通過(guò)哈希連接完成連接過(guò)濾。

    圖4 維處理

    從OLAP查詢特點(diǎn)來(lái)看,分組聚集計(jì)算是邏輯多維數(shù)據(jù)集上的核心操作,而其他關(guān)系操作則為保障分組聚集計(jì)算的輔助及預(yù)處理操作。以分組聚集計(jì)算為中心的優(yōu)化技術(shù)通過(guò)向量索引保證最優(yōu)的按位置事實(shí)數(shù)據(jù)檢索及基于最小向量的分組聚集計(jì)算,而向量索引則反向優(yōu)化星形連接操作,通過(guò)迭代多維cube地址計(jì)算最小化星形連接操作中間結(jié)果集為單一的向量索引列,優(yōu)化了operator(column)-at-a-time查詢處理模型的中間結(jié)果物化代價(jià),星形連接操作中的多維cube機(jī)制反向優(yōu)化了維表處理階段輸出數(shù)據(jù)結(jié)構(gòu),以優(yōu)化的維向量和分組向量?jī)?yōu)化維表輸出數(shù)據(jù)結(jié)構(gòu)大小,也進(jìn)一步優(yōu)化了后一階段的連接性能。

    2.2 面向異構(gòu)計(jì)算平臺(tái)的OLAP計(jì)算框架

    傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中使用基于查詢樹的迭代查詢處理模型,查詢樹中的節(jié)點(diǎn)為表或中間結(jié)果,表上關(guān)系操作的結(jié)果在查詢樹之間流水處理,這種查詢處理模型構(gòu)成了一種強(qiáng)耦合的處理模式,不同節(jié)點(diǎn)之間的操作具有較強(qiáng)的關(guān)聯(lián)性。

    本文通過(guò)對(duì)關(guān)系操作的優(yōu)化設(shè)計(jì),將查詢樹轉(zhuǎn)換為扁平的結(jié)構(gòu),以負(fù)載為粒度將查詢樹劃分為線性的計(jì)算模塊,各模塊之間執(zhí)行以負(fù)載為粒度的異步流水處理模式,將結(jié)構(gòu)緊密的查詢樹分解為松耦合的負(fù)載計(jì)算模塊。從查詢處理過(guò)程來(lái)看,本文提出的OLAP處理框架將傳統(tǒng)的查詢處理過(guò)程分解為三個(gè)獨(dú)立的計(jì)算階段,將同構(gòu)計(jì)算平臺(tái)上以消除物化代價(jià)為目標(biāo)的流水線處理模型轉(zhuǎn)換為適合異構(gòu)CPU-GPU計(jì)算平臺(tái)的、基于物化的向量索引的串行計(jì)算負(fù)載處理過(guò)程,通過(guò)數(shù)據(jù)的優(yōu)化分布策略最大化計(jì)算的數(shù)據(jù)局部性,減少CPU與GPU之間PCIe數(shù)據(jù)傳輸代價(jià)。通過(guò)查詢處理過(guò)程的分解,計(jì)算密集型的星形連接操作和數(shù)據(jù)密集型的分組聚集操作獨(dú)立選擇最適合的處理器平臺(tái),簡(jiǎn)化了異構(gòu)CPUGPU平臺(tái)上的優(yōu)化策略。

    圖5顯示了面向異構(gòu)計(jì)算平臺(tái)的OLAP計(jì)算框架。OLAP典型的邏輯模型是星形模型,由多個(gè)維表和事實(shí)表組成,OLAP查詢是在維表與事實(shí)表多維連接的基礎(chǔ)上執(zhí)行的分組聚集分析處理。傳統(tǒng)的數(shù)據(jù)庫(kù)將OLAP查詢轉(zhuǎn)換為查詢樹,每個(gè)表上的記錄通過(guò)查詢樹流水迭代處理。本文將查詢樹轉(zhuǎn)換為扁平的三個(gè)查詢階段:維處理、星形連接和向量聚集,形成三個(gè)獨(dú)立的計(jì)算階段,分別對(duì)應(yīng)OLAP數(shù)據(jù)庫(kù)中的維表、外鍵和事實(shí)數(shù)據(jù)三個(gè)獨(dú)立的數(shù)據(jù)集,各計(jì)算階段可以根據(jù)計(jì)算特征分配不同的處理器平臺(tái),如本例中使用CPU平臺(tái)執(zhí)行維處理和向量聚集計(jì)算,GPU執(zhí)行星形連接計(jì)算。

    圖5 OLAP處理框架

    以Star Schema Benchmark(SSB)基準(zhǔn)數(shù)據(jù)集為例,在SF=100時(shí)維表、外鍵和事實(shí)數(shù)據(jù)大小分別為1%、19%和80%,而三個(gè)數(shù)據(jù)集上的計(jì)算時(shí)間占比約為7%、85%和8%[6]。在OLAP查詢中分組聚集計(jì)算是一種典型的數(shù)據(jù)密集型負(fù)載,在異構(gòu)OLAP計(jì)算平臺(tái)上不僅需要分析分組聚集計(jì)算的性能,還要將分組聚集計(jì)算的數(shù)據(jù)量作為一個(gè)參數(shù),評(píng)估在PCIe通道的傳輸代價(jià),作為分組聚集計(jì)算平臺(tái)選擇的考慮因素。本文在實(shí)驗(yàn)部分通過(guò)分組聚集操作帶寬性能與PCIe帶寬性能的閾值比較給出了分組聚集操作優(yōu)化執(zhí)行場(chǎng)地的選擇。

    本文將SQL命令中的分組聚集計(jì)算從傳統(tǒng)的查詢樹中分離為獨(dú)立的計(jì)算階段,采用基于共享向量索引的物化機(jī)制降低了operator-at-a-time查詢處理模型的物化代價(jià),最大限度降低了分組聚集操作與其他操作和數(shù)據(jù)的依賴度。同時(shí),向量分組聚集算法只使用簡(jiǎn)單的數(shù)組數(shù)據(jù)結(jié)構(gòu)和數(shù)組地址訪問操作,易于綁定到特定硬件平臺(tái),實(shí)現(xiàn)分組聚集計(jì)算向硬件平臺(tái)的下壓,使計(jì)算更加靠近存儲(chǔ)平臺(tái),提高計(jì)算效率。

    3 實(shí)驗(yàn)與結(jié)果

    本文聚焦于OLAP中計(jì)算代價(jià)較大的分組聚集操作,重點(diǎn)比較本文提出的向量分組聚集算法與主流數(shù)據(jù)庫(kù)的分組聚集實(shí)現(xiàn)技術(shù)在性能上的差異,包括CPU與GPU平臺(tái)數(shù)據(jù)庫(kù)中的分組聚集計(jì)算性能,通過(guò)對(duì)向量分組聚集算法性能的綜合測(cè)試分析分組聚集計(jì)算在CPU和GPU平臺(tái)執(zhí)行的不同策略。

    3.1 實(shí)驗(yàn)平臺(tái)和實(shí)驗(yàn)設(shè)計(jì)

    實(shí)驗(yàn)平臺(tái)為一臺(tái)Supermicro Super Workstation 7047GR-TPRF服務(wù)器,配置一塊Intel Xeon E5-2699 v4@2.2 GHz多核處理器,CPU核心數(shù)量為22,支持44個(gè)物理線程,內(nèi)存為256 GB DDR4。服務(wù)器操作系統(tǒng)為CentOS 7,Linux內(nèi)核版本3.10.0-514.16.1.el7.x86_64,gcc編譯器版本為4.8.5。服務(wù)器配置一塊NVIDIA K80 GPU,cuda核心數(shù)量為4 992,顯存容量為24 GB,顯存帶寬為480 GB/s。

    實(shí)驗(yàn)中使用文獻(xiàn)[3]提供的開源哈希連接代碼為實(shí)驗(yàn)床,使用相同的多線程并行處理和對(duì)共享向量的latch并發(fā)訪問控制機(jī)制。在開源代碼中增加了向量聚集算法,生成兩個(gè)列作為度量列M1、M2,模擬兩個(gè)度量列上的聚集計(jì)算;算法中設(shè)置線程數(shù)量、選擇率和分組數(shù)量參數(shù),用于模擬不同查詢選擇率和分組勢(shì)集下的聚集計(jì)算性能,算法執(zhí)行命令示例腳本如下:

    當(dāng)前實(shí)現(xiàn)了2.1節(jié)中介紹的兩種向量分組聚集算法:多線程共享分組向量聚集算法和線程私有分組向量聚集算法。當(dāng)前分組聚集算法的研究中還沒有較權(quán)威的開源代碼,難以進(jìn)行不同研究之間的橫向比較。Hyper和MapD是內(nèi)存數(shù)據(jù)庫(kù)和GPU數(shù)據(jù)庫(kù)的代表性系統(tǒng),其性能代表了CPU和GPU上關(guān)系操作的最高水平,在實(shí)驗(yàn)中使用Hyper和MapD的CPU與GPU版本作為性能參照,通過(guò)SQL命令模擬分組聚集操作,相對(duì)于Hyper和MapD的性能也可以作為其他相關(guān)研究的量化參考。實(shí)驗(yàn)中使用OLAP測(cè)試基準(zhǔn)SSB(Star Schema Benchmark,SF=100,事實(shí)表記錄行數(shù)為6億條),通過(guò)SQL命令模擬基于不同分組勢(shì)集列的聚集計(jì)算操作。

    如在Hyper數(shù)據(jù)庫(kù)中使用lo_ordertotalprice%512作為分組屬性,分組勢(shì)集為512,使用top 1命令只輸出每一行分組聚集計(jì)算結(jié)果,最小化記錄輸出時(shí)間的影響。Hyper數(shù)據(jù)庫(kù)模擬測(cè)試SQL命令如下:

    在MapD數(shù)據(jù)庫(kù)中使用mod(lo_ordertotalprice,512)函數(shù)對(duì)lo_ordertotalprice列按512生成分組ID.MapD支持CPU-only的純內(nèi)存計(jì)算模式和使用GPU的GPU計(jì)算模式,在實(shí)驗(yàn)中通過(guò)SQL命令分別測(cè)試CPU和GPU模式下的模擬向量分組聚集計(jì)算性能。MapD數(shù)據(jù)庫(kù)模擬測(cè)試SQL命令如下:

    測(cè)試時(shí)每個(gè)查詢連續(xù)執(zhí)行三遍,取最短時(shí)間作為內(nèi)存分組聚集計(jì)算時(shí)間,MapD GPU模式在第一次查詢執(zhí)行時(shí)間較長(zhǎng),主要原因是查詢產(chǎn)生的從CPU內(nèi)存到GPU內(nèi)存的PCIe數(shù)據(jù)傳輸代價(jià),通過(guò)連續(xù)執(zhí)行消除查詢執(zhí)行時(shí)的數(shù)據(jù)傳輸代價(jià),以準(zhǔn)確反映MapD在GPU上的分組聚集計(jì)算性能。

    3.2 分組聚集計(jì)算性能對(duì)比

    實(shí)驗(yàn)首先測(cè)試不同分組勢(shì)集下的基準(zhǔn)分組聚集計(jì)算性能,分組勢(shì)集從32(25)起依次加倍,直到67 108 864(226),分組數(shù)量覆蓋OLAP查詢的應(yīng)用范圍。

    表1 基準(zhǔn)分組聚集操作性能

    分組聚集基準(zhǔn)計(jì)算性能如表1所示,表中下劃線代表當(dāng)前分組數(shù)量下的最短執(zhí)行時(shí)間。從整體上看,向量分組聚集算法優(yōu)于Hyper和MapD數(shù)據(jù)庫(kù)中的分組聚集操作性能,主要原因是數(shù)據(jù)庫(kù)使用哈希分組聚集算法,相對(duì)于向量分組聚集算法使用了更大的哈希表和CPU代價(jià)更高的哈希探測(cè)方法,因此總體性能低于向量分組聚集算法。Hyper采用JIT實(shí)時(shí)編譯技術(shù)和面向寄存器的優(yōu)化技術(shù),相對(duì)于采用向量處理技術(shù)的MapD CPU版本具有更優(yōu)的性能。MapD GPU版本的分組聚集操作性能顯著優(yōu)于CPU版本,體現(xiàn)在了相同的MapD算法框架下GPU對(duì)分組聚集操作的加速能力,MapD GPU版本的分組聚集操作性能在分組數(shù)量界于256(28)和4 194 304(222)之間時(shí)優(yōu)于Hyper,最大性能提升達(dá)到61%。當(dāng)分組勢(shì)集高于8 388 608(223)時(shí),MapD GPU版本的分組聚集操作性能低于Hyper,在本文最大分組測(cè)試用例67 108 864(226)時(shí)分組聚集操作執(zhí)行時(shí)間是Hyper的2.17倍,表明分組聚集計(jì)算在極大分組勢(shì)集時(shí)MapD GPU算法性能低于CPU。

    向量分組聚集算法的性能主要取決于向量大小與CPU cache大小之間的關(guān)系。向量長(zhǎng)度低于524 288(219)時(shí),對(duì)應(yīng)的線程私有向量大小低于2 MB(低于CPU每核心2.5 MB的L3 cache slice),基于線程私有向量的向量分組聚集算法性能優(yōu)于基于共享向量的向量分組聚集算法。當(dāng)向量大小超過(guò)線程私有cache大小時(shí),基于線程私有向量的向量分組聚集算法性能開始低于基于共享向量的向量分組聚集算法,而且較大向量也導(dǎo)致私有向量存儲(chǔ)空間開銷指數(shù)增長(zhǎng),如分組數(shù)為67 108 864(226)時(shí)44線程所需創(chuàng)建的私有向量產(chǎn)生內(nèi)存空間不足錯(cuò)誤。

    總體而言,向量分組聚集算法性能優(yōu)于代表性內(nèi)存數(shù)據(jù)庫(kù)Hyper、GPU數(shù)據(jù)庫(kù)MapD的相應(yīng)性能,最大性能提升分別達(dá)到695%和481%,相對(duì)于最優(yōu)數(shù)據(jù)庫(kù)分組聚集操作性能的最大性能提升達(dá)到481%。

    3.3 分組聚集計(jì)算性能分析

    向量分組聚集算法通過(guò)對(duì)OLAP查詢處理模型的優(yōu)化將分組聚集操作從查詢樹中獨(dú)立出來(lái),基于向量的分組聚集計(jì)算最小化分組聚集器的內(nèi)存空間,最大化分組聚集計(jì)算時(shí)的cache局部性,基于向量地址直接訪問的分組定位機(jī)制最小化分組操作的CPU代價(jià)。向量分組聚集計(jì)算在算法上的簡(jiǎn)化將性能影響因素簡(jiǎn)化為單一的向量大小,與各級(jí)cache大小的相對(duì)關(guān)系決定了其性能特征。

    實(shí)驗(yàn)中設(shè)計(jì)了cache-conscious vector grouping benchmark(cache敏感的向量分組基準(zhǔn)測(cè)試),測(cè)試當(dāng)向量長(zhǎng)度為各級(jí)cache大小不同百分比時(shí)的向量分組聚集計(jì)算性能。實(shí)驗(yàn)中向量設(shè)置為int_32類型,以各級(jí)cache容量的10%為步長(zhǎng)設(shè)置向量長(zhǎng)度,向量大小設(shè)置為各級(jí)cache大小的10%~200%,量化分析向量的cache局部性對(duì)向量分組聚集計(jì)算性能的影響。

    表2顯示了當(dāng)向量大小為L(zhǎng)1 cache大?。?2 KB)的10%~200%時(shí)向量分組聚集與共享向量分組聚集算法性能。當(dāng)向量小于L1 cache大小時(shí),線程私有向量分組聚集算法性能高于共享向量分組聚集算法并且執(zhí)行時(shí)間較為穩(wěn)定;當(dāng)向量較小時(shí),共享向量分組聚集算法各線程并發(fā)訪問共享向量產(chǎn)生較高的向量單元更新的latch并發(fā)訪問控制代價(jià),隨向量長(zhǎng)度的增長(zhǎng)latch并發(fā)訪問控制代價(jià)逐漸降低。共享向量分組聚集算法與向量分組聚集算法執(zhí)行時(shí)間比最大為22.37倍,隨向量長(zhǎng)度的增長(zhǎng)逐漸降低為6.17倍。

    表2 L1 cache大小相關(guān)的向量分組性能

    表3顯示向量大小為L(zhǎng)2 cache大?。?56 KB)的10%~200%時(shí)向量分組聚集與共享向量分組聚集算法性能。10%L2 cache時(shí)向量實(shí)際大小小于L1 cache,向量分組聚集執(zhí)行時(shí)間較短,隨向量長(zhǎng)度的增長(zhǎng),私有向量分組聚集算法時(shí)間逐漸增長(zhǎng),而共享向量分組聚集算法執(zhí)行時(shí)間逐漸減少,二者執(zhí)行時(shí)間倍數(shù)從9.04倍逐漸下降到2.9倍。

    表3 L2 cache大小相關(guān)的向量分組性能

    多核處理器每個(gè)核心直接連接2.5 MB的L3 cache slice,處理核心訪問私有cache slice延遲低于訪問共享L3 cache中其他核心的L3 cache slice,因此L3 cache slice可以看作處理核心的最后一級(jí)私有cache。表4顯示了向量大小為L(zhǎng)3 cache slice的10%~200%時(shí)兩種向量分組聚集算法的性能。當(dāng)私有向量大小超過(guò)L3 cache slice的50%時(shí),私有向量分組聚集算法執(zhí)行時(shí)間開始高于共享向量分組聚集算法,此時(shí)每核心2個(gè)線程私有向量總和達(dá)到L3 cache slice,私有向量訪問cache局部性達(dá)到臨界值,當(dāng)向量繼續(xù)增大時(shí),向量訪問的cache miss增加,查詢延遲增長(zhǎng)。共享分組向量仍然有較高的cache局部性,較大的向量也減少了每個(gè)向量單元并發(fā)訪問沖突,查詢性能逐漸提升。

    表4 L3 cache slice大小相關(guān)的向量分組性能

    當(dāng)向量大小在L3 cache的10%~200%之間時(shí),如表5所示,共享向量分組聚集算法具有一定的cache局部性,兩種算法隨向量長(zhǎng)度的增長(zhǎng)執(zhí)行時(shí)間均增長(zhǎng),算法執(zhí)行時(shí)間比緩慢降低。

    綜上所述,私有向量分組聚集算法在向量具有較高的cache局部性時(shí)有較高的性能,即每線程私有向量長(zhǎng)度小于50%×L3 cache slice時(shí)基于線程私有分組向量的向量分組聚集算法性能較優(yōu),當(dāng)向量長(zhǎng)度繼續(xù)增長(zhǎng)時(shí),基于共享向量的向量分組聚集算法性能逐漸優(yōu)于私有向量分組聚集算法。

    3.4 基于壓縮向量索引的向量分組聚集算法性能

    如圖1所示,當(dāng)查詢選擇率較低時(shí)向量索引中非空值單元較為稀疏,壓縮向量索引不僅減少了向量索引非空單元的存儲(chǔ)空間開銷而且將向量索引的順序掃描轉(zhuǎn)換成更為高效的壓縮向量索引掃描。

    表5 L3 cache大小相關(guān)的向量分組性能

    表6 基于壓縮向量索引的向量分組性能

    表6顯示了不同選擇率下的向量分組聚集算法和基于壓縮向量索引的向量分組聚集算法性能,分組數(shù)固定設(shè)置為65 536,采用私有向量分組聚集算法,壓縮向量索引存儲(chǔ)為key/value序列,key值為非空向量索引單元下標(biāo),value為非空向量索引單元存儲(chǔ)的分組ID。當(dāng)選擇率為100%時(shí),壓縮向量索引實(shí)際存儲(chǔ)空間大于非壓縮向量索引,其執(zhí)行時(shí)間稍長(zhǎng);隨著選擇率的降低,基于壓縮向量索引的向量分組聚集算法執(zhí)行時(shí)間開始低于原始向量分組聚集算法但兩種算法之間的執(zhí)行時(shí)間差異并不顯著,在選擇率為10%時(shí)非壓縮與壓縮向量索引向量分組聚集算法執(zhí)行時(shí)間比為1.63,當(dāng)選擇率為1%時(shí)二者執(zhí)行時(shí)間比為3.62;當(dāng)選擇率繼續(xù)以10倍的速度遞減時(shí),兩種算法執(zhí)行時(shí)間比逐漸增大,但執(zhí)行時(shí)間比增長(zhǎng)速度遠(yuǎn)低于選擇率增長(zhǎng)速度。由實(shí)驗(yàn)結(jié)果可以得到這樣的策略:當(dāng)OLAP查詢選擇率較高時(shí)(大于1%)可以采用定向向量索引策略,定長(zhǎng)向量索引可以被不同的查詢共享以簡(jiǎn)化內(nèi)存管理;當(dāng)OLAP查詢選擇率低于較低時(shí)(低于1‰)使用壓縮向量索引以提高向量分組聚集計(jì)算性能。

    3.5 分組聚集計(jì)算的平臺(tái)選擇策略

    分組聚集計(jì)算是OLAP查詢中重要的操作,也是OLAP查詢性能的主要決定因素之一。分組聚集操作需要在較大的事實(shí)數(shù)據(jù)上執(zhí)行分組與聚集計(jì)算,本文通過(guò)將分組操作下推到維表處理階段實(shí)現(xiàn)基于向量的分組聚集計(jì)算,最小化了分組計(jì)算代價(jià),使分組聚集計(jì)算成為一種數(shù)據(jù)密集型任務(wù),即在大數(shù)據(jù)上的低CPU代價(jià)計(jì)算?;谙蛄康姆纸M操作具有較好的cache局部性,在CPU平臺(tái)也具有較高的性能。

    將查詢中不同的操作優(yōu)化分配給CPU或GPU平臺(tái)以獲得最高的整體性能是GPU查詢優(yōu)化的核心任務(wù),需要設(shè)計(jì)將什么樣的查詢操作及以該查詢操作在什么情況下分配給CPU或GPU的優(yōu)化策略。

    GPU上的計(jì)算包括本地靜態(tài)數(shù)據(jù)計(jì)算和動(dòng)態(tài)數(shù)據(jù)計(jì)算兩種類型:本地靜態(tài)數(shù)據(jù)計(jì)算指通過(guò)數(shù)據(jù)庫(kù)的數(shù)據(jù)分布策略將一部分?jǐn)?shù)據(jù)預(yù)先分配在GPU內(nèi)存,執(zhí)行GPU內(nèi)存上的本地化計(jì)算;動(dòng)態(tài)數(shù)據(jù)計(jì)算指數(shù)據(jù)存儲(chǔ)在CPU端,在計(jì)算時(shí)實(shí)時(shí)通過(guò)PCIe通道傳輸?shù)紾PU內(nèi)存后執(zhí)行GPU數(shù)據(jù)復(fù)本上的計(jì)算,GPU內(nèi)存緩存CPU端數(shù)據(jù)但不持久存儲(chǔ)CPU端數(shù)據(jù)集。

    由于GPU內(nèi)存容量相對(duì)CPU內(nèi)存較小且OLAP數(shù)據(jù)集的事實(shí)數(shù)據(jù)極為龐大,因此在事實(shí)數(shù)據(jù)上的分組計(jì)算操作主要考慮動(dòng)態(tài)數(shù)據(jù)計(jì)算模式。GPU端優(yōu)化執(zhí)行分組聚集計(jì)算時(shí)需要滿足TGPUAgg+TTrans

    圖6 模擬GPU聚集計(jì)算性能

    隨著GPU上算法優(yōu)化技術(shù)的深入和GPU擴(kuò)展性的提升(通過(guò)配置多塊GPU卡),GPU數(shù)據(jù)庫(kù)在GPU端的分組聚集計(jì)算性能可能進(jìn)一步提升,從而使GPU分組聚集計(jì)算代價(jià)模型難以直接應(yīng)用,從PCIe帶寬性能出發(fā)提出GPU分組聚集計(jì)算的選擇策略。圖7給出了私有和共享向量分組聚集算法的數(shù)據(jù)帶寬性能(分組聚集計(jì)算數(shù)據(jù)量/執(zhí)行時(shí)間),虛線為PCIe 3.0的帶寬(16 GB/s),若CPU端的向量分組聚集算法帶寬性能超過(guò)PCIe帶寬性能時(shí),則CPU端執(zhí)行分組聚集計(jì)算性能肯定優(yōu)于GPU端,否則GPU端執(zhí)行分組聚集計(jì)算性能可能優(yōu)于CPU端。

    圖7 向量分組聚集計(jì)算帶寬性能

    從圖7中可以看到,當(dāng)分組數(shù)量低于131 072(217)時(shí),在CPU端執(zhí)行向量分組聚集計(jì)算帶寬性能超過(guò)26 GB/s,遠(yuǎn)高于數(shù)據(jù)從PCIe通道傳輸?shù)紾PU的時(shí)間,因此適合CPU端執(zhí)行。從SSB、TPC-H、TPC-DS等典型OLAP負(fù)載的查詢命令來(lái)看,GROUP-BY屬性通常為低勢(shì)集屬性,適合于向量分組聚集算法的應(yīng)用場(chǎng)景,也適合在CPU執(zhí)行。

    綜上所述,OLAP是適合使用GPU加速的計(jì)算密集型負(fù)載,但使用GPU加速通用的關(guān)系操作和查詢處理模型難以獲得最優(yōu)的性能。通對(duì)OLAP查詢中關(guān)鍵的分組聚集計(jì)算的優(yōu)化設(shè)計(jì),查詢優(yōu)化器可以根據(jù)分組聚集計(jì)算優(yōu)化規(guī)則精確地根據(jù)查詢輸入?yún)?shù)(如分組數(shù)量等)確定分組聚集操作在CPU端還是GPU端執(zhí)行,生成最優(yōu)的異構(gòu)計(jì)算平臺(tái)OLAP查詢執(zhí)行計(jì)劃。

    實(shí)驗(yàn)部分通過(guò)cache-conscious vector grouping benchmark實(shí)驗(yàn)設(shè)計(jì)量化地給出了2.1節(jié)兩種向量分組聚集方法的性能變化區(qū)間和性能變化的閾值,可以根據(jù)分組向量大小以及各級(jí)cache容量參數(shù)確定根據(jù)負(fù)載選擇優(yōu)化向量分組聚集操作方法的策略。進(jìn)一步地,通過(guò)帶寬性能指標(biāo)可以進(jìn)一步明確分組聚集操作選擇CPU作為執(zhí)行場(chǎng)地的分組閾值,實(shí)現(xiàn)了基于硬件參數(shù)確定分組聚集操作執(zhí)行場(chǎng)地優(yōu)化選擇策略。

    4 結(jié)束語(yǔ)

    本文提出了面向異構(gòu)計(jì)算平臺(tái)的OLAP分組聚集計(jì)算實(shí)現(xiàn)技術(shù),通過(guò)向量分組技術(shù)實(shí)現(xiàn)了將數(shù)據(jù)密集型的分組聚集計(jì)算從傳統(tǒng)的查詢處理模型中分離出來(lái),獨(dú)立地根據(jù)算法和硬件參數(shù)特性優(yōu)化選擇適合其執(zhí)行的計(jì)算平臺(tái)?;谙蛄糠纸M的聚集計(jì)算方法通過(guò)“早分組、晚聚集”策略獲得了最優(yōu)的分組聚集計(jì)算性能,與當(dāng)前最優(yōu)的內(nèi)存數(shù)據(jù)庫(kù)Hyper、GPU數(shù)據(jù)庫(kù)MapD相比有顯著的性能提升,基于cache-conscious的向量分組聚集計(jì)算基準(zhǔn)測(cè)試精確地描述了算法的性能特征,使查詢優(yōu)化器可以根據(jù)查詢與硬件參數(shù)準(zhǔn)確地估算其性能及執(zhí)行異構(gòu)計(jì)算平臺(tái)選擇策略。實(shí)驗(yàn)結(jié)果表明,向量分組聚集算法相對(duì)于當(dāng)前主流數(shù)據(jù)庫(kù)的實(shí)現(xiàn)技術(shù)有顯著的性能優(yōu)勢(shì),而且易于在異構(gòu)計(jì)算平臺(tái)上的實(shí)時(shí)OLAP分析處理應(yīng)用中實(shí)現(xiàn)。

    猜你喜歡
    哈希分組向量
    向量的分解
    聚焦“向量與三角”創(chuàng)新題
    分組搭配
    怎么分組
    分組
    向量垂直在解析幾何中的應(yīng)用
    基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
    向量五種“變身” 玩轉(zhuǎn)圓錐曲線
    基于維度分解的哈希多維快速流分類算法
    基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
    亚洲国产毛片av蜜桃av| 国产精品二区激情视频| 欧美日韩亚洲国产一区二区在线观看| 日韩欧美国产在线观看| 久久 成人 亚洲| 国产激情欧美一区二区| 成人国产综合亚洲| 国产午夜福利久久久久久| 一区二区三区激情视频| 精品不卡国产一区二区三区| 日本黄色视频三级网站网址| 亚洲欧美精品综合一区二区三区| 亚洲专区国产一区二区| 久久人人97超碰香蕉20202| 丰满的人妻完整版| 精品久久久久久久毛片微露脸| 免费女性裸体啪啪无遮挡网站| 国产欧美日韩一区二区三区在线| 久久性视频一级片| 亚洲中文字幕一区二区三区有码在线看 | 久久中文字幕一级| 国产精华一区二区三区| 很黄的视频免费| 色综合欧美亚洲国产小说| 美女扒开内裤让男人捅视频| 精品久久久久久久久久免费视频| 国产精品电影一区二区三区| 日本三级黄在线观看| 亚洲国产精品999在线| 亚洲精品中文字幕在线视频| 国产一区在线观看成人免费| 长腿黑丝高跟| 欧美日韩乱码在线| 十八禁人妻一区二区| 久久久久久国产a免费观看| 国产精品影院久久| 韩国精品一区二区三区| 女人被躁到高潮嗷嗷叫费观| 国产精品久久久久久精品电影 | 欧美激情极品国产一区二区三区| 一级,二级,三级黄色视频| 精品无人区乱码1区二区| 精品第一国产精品| 中文字幕精品免费在线观看视频| 麻豆久久精品国产亚洲av| 午夜福利欧美成人| 亚洲狠狠婷婷综合久久图片| 后天国语完整版免费观看| 午夜久久久久精精品| 国产精品野战在线观看| 国产精品乱码一区二三区的特点 | 日本 欧美在线| 男人操女人黄网站| 午夜老司机福利片| 国产亚洲欧美精品永久| 最新美女视频免费是黄的| 夜夜躁狠狠躁天天躁| 亚洲精品av麻豆狂野| 欧美日韩瑟瑟在线播放| 麻豆久久精品国产亚洲av| 日韩欧美国产一区二区入口| 亚洲,欧美精品.| 国产成人精品久久二区二区91| 男人操女人黄网站| 国产成人欧美在线观看| 亚洲色图综合在线观看| 欧美精品亚洲一区二区| 女人被躁到高潮嗷嗷叫费观| 欧美av亚洲av综合av国产av| 在线观看一区二区三区| 91精品三级在线观看| 久久人人97超碰香蕉20202| 欧美日韩亚洲国产一区二区在线观看| 成人国语在线视频| 人人澡人人妻人| 亚洲专区字幕在线| 亚洲精品国产区一区二| 人人妻,人人澡人人爽秒播| 午夜福利一区二区在线看| 国产精品综合久久久久久久免费 | 日本撒尿小便嘘嘘汇集6| 国产精品秋霞免费鲁丝片| 99久久精品国产亚洲精品| 久久久国产成人精品二区| 欧美中文综合在线视频| www国产在线视频色| 午夜免费观看网址| 在线观看免费视频日本深夜| 禁无遮挡网站| 久久九九热精品免费| bbb黄色大片| 一卡2卡三卡四卡精品乱码亚洲| 91老司机精品| netflix在线观看网站| 色综合欧美亚洲国产小说| 免费高清在线观看日韩| 日韩欧美免费精品| 如日韩欧美国产精品一区二区三区| 大香蕉久久成人网| 搡老岳熟女国产| 国产精品一区二区三区四区久久 | 午夜激情av网站| av在线播放免费不卡| 黄频高清免费视频| 无人区码免费观看不卡| 欧美中文综合在线视频| 久久久久久久久中文| 日韩国内少妇激情av| 国产午夜福利久久久久久| 黄片小视频在线播放| 99国产精品一区二区蜜桃av| 在线观看日韩欧美| 怎么达到女性高潮| 久久香蕉精品热| 两个人免费观看高清视频| 精品国产乱码久久久久久男人| 久久久国产成人精品二区| 亚洲欧美日韩无卡精品| 国产av一区二区精品久久| 亚洲无线在线观看| 国产精品美女特级片免费视频播放器 | 国产精品美女特级片免费视频播放器 | 免费搜索国产男女视频| cao死你这个sao货| 午夜亚洲福利在线播放| 搡老妇女老女人老熟妇| 在线观看午夜福利视频| 久久久久国产一级毛片高清牌| 欧美中文综合在线视频| 亚洲中文日韩欧美视频| 亚洲电影在线观看av| 日韩 欧美 亚洲 中文字幕| 黄色视频,在线免费观看| 久久九九热精品免费| 两人在一起打扑克的视频| 免费在线观看完整版高清| 亚洲第一av免费看| АⅤ资源中文在线天堂| 免费搜索国产男女视频| 亚洲五月天丁香| svipshipincom国产片| 一边摸一边做爽爽视频免费| 日韩欧美三级三区| 两性夫妻黄色片| 制服人妻中文乱码| 久久精品亚洲熟妇少妇任你| 亚洲中文字幕一区二区三区有码在线看 | 色综合婷婷激情| 女人被躁到高潮嗷嗷叫费观| 少妇被粗大的猛进出69影院| 人成视频在线观看免费观看| 亚洲精品国产一区二区精华液| 色婷婷久久久亚洲欧美| 久久国产乱子伦精品免费另类| 免费高清视频大片| 在线观看午夜福利视频| 国产精品秋霞免费鲁丝片| 亚洲无线在线观看| 97人妻精品一区二区三区麻豆 | 亚洲国产精品合色在线| 悠悠久久av| 精品国产美女av久久久久小说| 亚洲精品国产精品久久久不卡| 亚洲中文av在线| 久久久久久国产a免费观看| 亚洲五月婷婷丁香| x7x7x7水蜜桃| 99久久综合精品五月天人人| 亚洲 欧美一区二区三区| 国产精品免费视频内射| www日本在线高清视频| 国产成人欧美在线观看| 亚洲午夜理论影院| 黄色 视频免费看| 精品国产美女av久久久久小说| 久久中文字幕人妻熟女| 亚洲人成伊人成综合网2020| 我的亚洲天堂| 亚洲欧美精品综合一区二区三区| 久久久久亚洲av毛片大全| av视频免费观看在线观看| 亚洲性夜色夜夜综合| 最近最新免费中文字幕在线| 大码成人一级视频| 精品国产超薄肉色丝袜足j| 日韩 欧美 亚洲 中文字幕| 久久久久久国产a免费观看| 免费看美女性在线毛片视频| 亚洲欧美日韩另类电影网站| 国产成人系列免费观看| 国产av精品麻豆| 69精品国产乱码久久久| 美女扒开内裤让男人捅视频| 一本大道久久a久久精品| 国产三级在线视频| 国产av精品麻豆| 热99re8久久精品国产| 成熟少妇高潮喷水视频| 午夜福利影视在线免费观看| 国产一区在线观看成人免费| www.www免费av| 中文字幕最新亚洲高清| 成年版毛片免费区| 国产精品久久久人人做人人爽| 桃红色精品国产亚洲av| 精品国内亚洲2022精品成人| 婷婷精品国产亚洲av在线| 女生性感内裤真人,穿戴方法视频| 男人操女人黄网站| 欧美久久黑人一区二区| 999久久久国产精品视频| or卡值多少钱| 99久久综合精品五月天人人| 黑人巨大精品欧美一区二区mp4| 国产免费av片在线观看野外av| 日韩av在线大香蕉| 美女扒开内裤让男人捅视频| 亚洲天堂国产精品一区在线| 18禁美女被吸乳视频| 91国产中文字幕| 国产aⅴ精品一区二区三区波| 亚洲 欧美 日韩 在线 免费| 亚洲 国产 在线| 99国产精品一区二区蜜桃av| 欧美日韩亚洲国产一区二区在线观看| 色老头精品视频在线观看| 巨乳人妻的诱惑在线观看| av视频免费观看在线观看| 亚洲中文字幕日韩| 国产私拍福利视频在线观看| 成年人黄色毛片网站| 中文字幕久久专区| 成人国产一区最新在线观看| 变态另类丝袜制服| 在线观看日韩欧美| 国产99久久九九免费精品| 18禁观看日本| 一a级毛片在线观看| 一边摸一边抽搐一进一出视频| 国产麻豆69| 精品一区二区三区av网在线观看| 国产精品亚洲一级av第二区| 国产成年人精品一区二区| 亚洲aⅴ乱码一区二区在线播放 | 免费观看精品视频网站| 欧美日韩精品网址| 人人妻人人爽人人添夜夜欢视频| 久久久精品国产亚洲av高清涩受| 老司机深夜福利视频在线观看| 一a级毛片在线观看| 欧美色视频一区免费| 成人永久免费在线观看视频| 在线免费观看的www视频| 国产成人av教育| 老司机在亚洲福利影院| 他把我摸到了高潮在线观看| 亚洲五月婷婷丁香| 脱女人内裤的视频| 久久人人97超碰香蕉20202| 天天添夜夜摸| 99久久精品国产亚洲精品| 免费一级毛片在线播放高清视频 | 午夜老司机福利片| 91麻豆av在线| 69精品国产乱码久久久| 咕卡用的链子| 久久国产精品男人的天堂亚洲| 十八禁人妻一区二区| 搡老熟女国产l中国老女人| 久久婷婷人人爽人人干人人爱 | 成人国产综合亚洲| 免费在线观看完整版高清| 无人区码免费观看不卡| 免费在线观看视频国产中文字幕亚洲| 亚洲国产精品sss在线观看| 男女之事视频高清在线观看| 国产精品 国内视频| 国产精品一区二区三区四区久久 | www.自偷自拍.com| 亚洲精品美女久久久久99蜜臀| 亚洲人成电影免费在线| 中文字幕av电影在线播放| 男女午夜视频在线观看| 亚洲人成77777在线视频| 欧美丝袜亚洲另类 | 国产亚洲精品一区二区www| 一进一出抽搐gif免费好疼| 亚洲熟妇中文字幕五十中出| 国产av又大| 欧美一级a爱片免费观看看 | 亚洲欧美日韩另类电影网站| 大型黄色视频在线免费观看| 国产一区二区激情短视频| 欧美中文日本在线观看视频| 免费无遮挡裸体视频| 午夜福利,免费看| 女警被强在线播放| 国产熟女xx| 亚洲精品在线观看二区| 免费高清视频大片| 69精品国产乱码久久久| 麻豆一二三区av精品| 天天躁夜夜躁狠狠躁躁| 午夜亚洲福利在线播放| 欧美国产日韩亚洲一区| 亚洲国产高清在线一区二区三 | 欧美人与性动交α欧美精品济南到| 国产蜜桃级精品一区二区三区| 色综合站精品国产| 久久久精品国产亚洲av高清涩受| 欧美国产精品va在线观看不卡| 国产一卡二卡三卡精品| 日韩高清综合在线| 最近最新中文字幕大全免费视频| 最近最新中文字幕大全电影3 | 免费在线观看亚洲国产| 免费无遮挡裸体视频| 色综合站精品国产| www.熟女人妻精品国产| 免费看a级黄色片| 91国产中文字幕| 国产精品亚洲美女久久久| 免费在线观看完整版高清| 午夜福利成人在线免费观看| 亚洲全国av大片| 中亚洲国语对白在线视频| 亚洲专区字幕在线| 99精品欧美一区二区三区四区| 性少妇av在线| 精品不卡国产一区二区三区| 一进一出好大好爽视频| 极品人妻少妇av视频| 一边摸一边抽搐一进一出视频| 成人三级黄色视频| 久久性视频一级片| 超碰成人久久| 欧美黑人精品巨大| 国产欧美日韩一区二区精品| 一级毛片高清免费大全| 美女午夜性视频免费| 婷婷精品国产亚洲av在线| 亚洲aⅴ乱码一区二区在线播放 | 精品一品国产午夜福利视频| 99香蕉大伊视频| 美女国产高潮福利片在线看| 亚洲,欧美精品.| 欧美人与性动交α欧美精品济南到| 亚洲av片天天在线观看| 夜夜躁狠狠躁天天躁| 色婷婷久久久亚洲欧美| 亚洲激情在线av| 亚洲色图 男人天堂 中文字幕| 欧美久久黑人一区二区| 久久影院123| 精品人妻1区二区| 久久久水蜜桃国产精品网| av有码第一页| 欧美丝袜亚洲另类 | 久久草成人影院| 99国产精品一区二区三区| avwww免费| 国产精品一区二区精品视频观看| 91字幕亚洲| 日日干狠狠操夜夜爽| 午夜日韩欧美国产| 亚洲av成人av| 精品久久久久久成人av| 99久久久亚洲精品蜜臀av| 亚洲狠狠婷婷综合久久图片| 91老司机精品| 美女午夜性视频免费| 久9热在线精品视频| 久久久久国产精品人妻aⅴ院| 国产精品久久久av美女十八| 美女午夜性视频免费| 黄片大片在线免费观看| 制服人妻中文乱码| 99久久综合精品五月天人人| 午夜两性在线视频| 亚洲一码二码三码区别大吗| 成人精品一区二区免费| 欧美黑人精品巨大| 日本撒尿小便嘘嘘汇集6| 日韩精品中文字幕看吧| 亚洲av电影在线进入| 亚洲 欧美一区二区三区| 国产欧美日韩一区二区三| 人妻久久中文字幕网| 午夜福利高清视频| 这个男人来自地球电影免费观看| 一级毛片高清免费大全| 久久亚洲精品不卡| 亚洲人成电影观看| 99国产精品一区二区蜜桃av| 夜夜爽天天搞| 亚洲激情在线av| 人成视频在线观看免费观看| 免费不卡黄色视频| 亚洲午夜精品一区,二区,三区| 欧美日韩中文字幕国产精品一区二区三区 | 亚洲av电影在线进入| 午夜成年电影在线免费观看| 欧美+亚洲+日韩+国产| 麻豆av在线久日| 欧美乱码精品一区二区三区| 99热只有精品国产| 国产单亲对白刺激| 一区二区三区高清视频在线| 一夜夜www| 日日摸夜夜添夜夜添小说| 一进一出好大好爽视频| 大香蕉久久成人网| 免费看美女性在线毛片视频| 变态另类丝袜制服| 99香蕉大伊视频| av免费在线观看网站| 成人亚洲精品一区在线观看| 成人18禁高潮啪啪吃奶动态图| 丁香欧美五月| 三级毛片av免费| 久久久国产成人免费| 亚洲美女黄片视频| 男女之事视频高清在线观看| 亚洲精品国产色婷婷电影| 天天躁狠狠躁夜夜躁狠狠躁| 免费在线观看黄色视频的| 一区二区三区激情视频| 大型av网站在线播放| 精品久久久精品久久久| 成人免费观看视频高清| 日韩大尺度精品在线看网址 | 精品国产一区二区久久| 99久久久亚洲精品蜜臀av| 国产亚洲av嫩草精品影院| 免费在线观看视频国产中文字幕亚洲| 99国产综合亚洲精品| 波多野结衣巨乳人妻| 天堂动漫精品| 国产高清videossex| 国产男靠女视频免费网站| 日韩大码丰满熟妇| 欧美 亚洲 国产 日韩一| 欧美日本中文国产一区发布| 国产精品久久久久久精品电影 | 亚洲av日韩精品久久久久久密| 国产精品永久免费网站| 亚洲国产看品久久| 色综合欧美亚洲国产小说| 女人高潮潮喷娇喘18禁视频| 亚洲五月婷婷丁香| 老司机在亚洲福利影院| 久久精品影院6| 国产精品久久久久久人妻精品电影| 日日摸夜夜添夜夜添小说| 欧美一区二区精品小视频在线| 美女大奶头视频| 真人一进一出gif抽搐免费| 国产精品98久久久久久宅男小说| 久久久久精品国产欧美久久久| 后天国语完整版免费观看| 欧美 亚洲 国产 日韩一| av在线天堂中文字幕| 真人做人爱边吃奶动态| 长腿黑丝高跟| 国产成人欧美在线观看| 国产欧美日韩综合在线一区二区| 久久久久国产精品人妻aⅴ院| 黑丝袜美女国产一区| 国产99久久九九免费精品| 欧美黑人欧美精品刺激| 高清在线国产一区| 两个人免费观看高清视频| 国产精品亚洲av一区麻豆| 国产男靠女视频免费网站| 女警被强在线播放| 国产一区二区三区视频了| 久久久久国内视频| 看片在线看免费视频| 亚洲五月色婷婷综合| 免费女性裸体啪啪无遮挡网站| 91九色精品人成在线观看| 99精品欧美一区二区三区四区| 国产成人啪精品午夜网站| 美女午夜性视频免费| 亚洲av电影不卡..在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 成年女人毛片免费观看观看9| 午夜影院日韩av| 操美女的视频在线观看| 波多野结衣高清无吗| bbb黄色大片| 老汉色∧v一级毛片| 精品欧美国产一区二区三| 麻豆久久精品国产亚洲av| 国产欧美日韩精品亚洲av| 90打野战视频偷拍视频| 我的亚洲天堂| 深夜精品福利| 国产aⅴ精品一区二区三区波| 日本 av在线| 国产精品久久电影中文字幕| 在线视频色国产色| 极品人妻少妇av视频| 伊人久久大香线蕉亚洲五| 可以在线观看的亚洲视频| 亚洲精品一卡2卡三卡4卡5卡| 国产伦人伦偷精品视频| 国产亚洲欧美98| 国内久久婷婷六月综合欲色啪| 久久国产乱子伦精品免费另类| 久久草成人影院| 久久国产乱子伦精品免费另类| 国产区一区二久久| av天堂在线播放| 亚洲av日韩精品久久久久久密| 久久天躁狠狠躁夜夜2o2o| 国产精品国产高清国产av| 最近最新中文字幕大全免费视频| 国产免费男女视频| 51午夜福利影视在线观看| 一本大道久久a久久精品| 性色av乱码一区二区三区2| 国产伦一二天堂av在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 国产av精品麻豆| 色播在线永久视频| 国产精品爽爽va在线观看网站 | 成人特级黄色片久久久久久久| 欧美在线一区亚洲| 精品福利观看| a级毛片在线看网站| 国产乱人伦免费视频| 视频在线观看一区二区三区| 亚洲 欧美 日韩 在线 免费| 国产极品粉嫩免费观看在线| 久久人人精品亚洲av| 可以免费在线观看a视频的电影网站| 波多野结衣av一区二区av| 女人精品久久久久毛片| 村上凉子中文字幕在线| 97超级碰碰碰精品色视频在线观看| 亚洲自拍偷在线| 色av中文字幕| 亚洲第一青青草原| 看免费av毛片| 大陆偷拍与自拍| 日韩精品中文字幕看吧| 久久天躁狠狠躁夜夜2o2o| 亚洲一区二区三区色噜噜| 久9热在线精品视频| 精品电影一区二区在线| bbb黄色大片| 久久久久亚洲av毛片大全| 免费不卡黄色视频| 欧美日本亚洲视频在线播放| 亚洲免费av在线视频| 亚洲国产精品sss在线观看| 精品日产1卡2卡| 久久国产精品男人的天堂亚洲| 国产激情久久老熟女| 欧美黑人欧美精品刺激| 淫妇啪啪啪对白视频| 日韩视频一区二区在线观看| 国产精品乱码一区二三区的特点 | 日韩国内少妇激情av| 日韩大码丰满熟妇| 999久久久国产精品视频| 97超级碰碰碰精品色视频在线观看| 午夜福利欧美成人| 最新美女视频免费是黄的| 亚洲av成人av| 一级毛片高清免费大全| 午夜亚洲福利在线播放| 国语自产精品视频在线第100页| 国产精华一区二区三区| ponron亚洲| 成人国语在线视频| av在线播放免费不卡| 国产一区二区在线av高清观看| 亚洲人成伊人成综合网2020| 久久人人精品亚洲av| 精品日产1卡2卡| 国产91精品成人一区二区三区| 人妻丰满熟妇av一区二区三区| 90打野战视频偷拍视频| 国产成+人综合+亚洲专区| 亚洲一码二码三码区别大吗| 精品不卡国产一区二区三区| 欧美乱妇无乱码| 亚洲专区中文字幕在线| 女人精品久久久久毛片| 在线观看一区二区三区| 级片在线观看| 在线天堂中文资源库| 国产人伦9x9x在线观看| 热re99久久国产66热| 亚洲中文av在线| 熟妇人妻久久中文字幕3abv| 一级,二级,三级黄色视频| 国产高清视频在线播放一区| av片东京热男人的天堂| 国产精品香港三级国产av潘金莲| 久久热在线av| 久久久国产精品麻豆| 岛国在线观看网站| 黄片大片在线免费观看| 久久人人97超碰香蕉20202| 久久草成人影院| 日韩精品免费视频一区二区三区| 多毛熟女@视频| 国产黄a三级三级三级人| www日本在线高清视频| 亚洲色图 男人天堂 中文字幕| 久久久国产欧美日韩av| 欧美久久黑人一区二区|