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

    Spark GraphX上的SPARQL查詢處理算法*

    2018-09-12 02:21:30鄒兆年
    計(jì)算機(jī)與生活 2018年9期
    關(guān)鍵詞:謂詞三元組頂點(diǎn)

    邱 慧,鄒兆年

    哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱 150001

    1 引言

    資源描述框架(resource description framework,RDF)[1]是W3C提出的一種知識(shí)表示模型,用于描述和表達(dá)網(wǎng)絡(luò)資源的內(nèi)容和對(duì)應(yīng)的結(jié)構(gòu),是一種用來描述元數(shù)據(jù)的數(shù)據(jù)。圖1(a)是一個(gè)簡(jiǎn)單的包含16個(gè)元組的RDF三元組,三元組包括主體、謂詞和客體。從圖的視角來看,RDF也是一個(gè)天然的圖模型。其中,三元組的主體和客體被當(dāng)作圖的頂點(diǎn),而謂詞被當(dāng)作邊。圖1(b)是圖1(a)三元組對(duì)應(yīng)的RDF圖模型表示。對(duì)于RDF數(shù)據(jù),W3C提出了一種形式化的查詢語言SPARQL(simple protocol and RDF query language)[2]作為檢索和查詢的標(biāo)準(zhǔn)語言。SPARQL查詢也可以被看作是一個(gè)查詢圖。因此利用SPARQL在大規(guī)模的RDF數(shù)據(jù)中檢索信息可以看作是大型圖的子圖匹配問題。例如,圖2(a)是一個(gè)簡(jiǎn)單的SPARQL查詢語言,圖2(b)是其所對(duì)應(yīng)的查詢圖。查詢對(duì)應(yīng)的意思是找出所有類型為出版物并且作者是助理教授2的圖書。近年來,隨著人們對(duì)語義網(wǎng)和知識(shí)庫日益增長的興趣和關(guān)注,RDF數(shù)據(jù)集的規(guī)模在不斷增大,現(xiàn)有的RDF數(shù)據(jù)集的規(guī)模已經(jīng)超出了單機(jī)處理能力的限制。因此,利用分布式系統(tǒng)來儲(chǔ)存查詢RDF數(shù)據(jù)成為了一個(gè)熱門的研究課題。

    現(xiàn)階段,由于分布式平臺(tái)例如Hadoop、Spark等強(qiáng)大的存儲(chǔ)和并行計(jì)算能力,學(xué)術(shù)界提出了大量基于分布式計(jì)算平臺(tái)的RDF檢索方案,例如文獻(xiàn)[3-8]等。Hadoop是Apache基金會(huì)開發(fā)的開源分布式存儲(chǔ)計(jì)算框架,其核心是HDFS和MapReduce。HDFS為海量數(shù)據(jù)提供了存儲(chǔ)功能,而MapReduce則提供了強(qiáng)大的分布式計(jì)算能力。除了其強(qiáng)大的存儲(chǔ)性能和并行計(jì)算能力,Hadoop另一個(gè)顯著的特點(diǎn)是其具有良好的可擴(kuò)展性,可以擴(kuò)展至幾千甚至上萬個(gè)節(jié)點(diǎn)。因此,對(duì)于數(shù)據(jù)量持續(xù)增長的問題具有很強(qiáng)的適用性。Hadoop的出現(xiàn)為海量數(shù)據(jù)的存儲(chǔ)和查詢提供了一種可行的方案。但是,基于Hadoop的檢索方案有一個(gè)共同的缺點(diǎn):由于內(nèi)存空間的限制,數(shù)據(jù)計(jì)算過程中產(chǎn)生的大量中間結(jié)果會(huì)被寫回到磁盤,從而會(huì)產(chǎn)生大量的I/O操作,嚴(yán)重影響查詢性能。

    Apache Spark[9]是一個(gè)針對(duì)大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的通用內(nèi)存計(jì)算框架,在它的基礎(chǔ)上有一系列的擴(kuò)展,例如 SparkSQL、Spark Streaming、MLlib和GraphX[10]。Spark使用一個(gè)新的數(shù)據(jù)結(jié)構(gòu)——彈性分布式數(shù)據(jù)集(resilient distributed datasets,RDD)來將計(jì)算結(jié)果存儲(chǔ)在內(nèi)存中,從而減少I/O次數(shù),有效克服了基于Hadoop的SPARQL查詢方式的缺點(diǎn)。GraphX是一個(gè)基于Spark的分布式并行圖計(jì)算引擎,由于利用SPARQL檢索RDF數(shù)據(jù)可以被看作一個(gè)大圖上的子圖匹配問題,因此GraphX可以很方便地被用來處理大型RDF數(shù)據(jù)集上的SPARQL查詢。

    Fig.1 RDF triples and graph model圖1 RDF三元組及圖模型

    Fig.2 SPARQL query and SPARQL graph圖2 SPARQL查詢及其查詢圖

    本文研究的主要內(nèi)容是在Spark GraphX(為了方便,后文簡(jiǎn)稱為GraphX)上處理SPARQL查詢。據(jù)所知,目前只有兩種基于GraphX的SPARQL查詢處理方案,S2X[3]和Spar(k)ql[4]。S2X的主要缺點(diǎn)是在第一輪迭代中執(zhí)行查詢中所有的三元組模式,從而產(chǎn)生大量不必要的中間結(jié)果,大量消息需要在不同節(jié)點(diǎn)之間傳輸,嚴(yán)重影響查詢效率。而Spar(k)ql的主要缺點(diǎn)是每次只能處理SPARQL查詢中的一個(gè)三元組模式,從而沒有完全發(fā)揮GraphX分布式圖計(jì)算的威力。

    本文提出了一種新的基于GraphX的SPARQL查詢處理方案SQX。本文的主要工作如下:

    (1)以屬性圖模式存儲(chǔ)RDF數(shù)據(jù),原始RDF圖中的部分邊被轉(zhuǎn)化為數(shù)據(jù)屬性存儲(chǔ)在頂點(diǎn)內(nèi)部,從而有效減少了RDF屬性圖中頂點(diǎn)和邊的數(shù)量。同時(shí)對(duì)于部分三元組模式的匹配可以在節(jié)點(diǎn)內(nèi)部完成,有效降低了數(shù)據(jù)的傳輸代價(jià)。

    (2)SQX對(duì)于給定的SPARQL查詢生成相應(yīng)的查詢計(jì)劃,查詢計(jì)劃包括查詢樹、非樹邊和約束條件。查詢計(jì)劃首先對(duì)查詢樹進(jìn)行匹配,然后利用非樹邊和約束條件進(jìn)行篩選得到最終的結(jié)果。

    (3)在查詢樹的匹配階段,SQX采用自底向上分層匹配的策略。相鄰頂點(diǎn)層之間的查詢邊將在一個(gè)超級(jí)步中被匹配,充分利用了GraphX的并行計(jì)算能力。

    (4)做了大量的實(shí)驗(yàn)來驗(yàn)證SQX的查詢性能。實(shí)驗(yàn)表明,SQX可以有效處理各種形狀的SPARQL查詢,并且具有良好的可擴(kuò)展性。

    2 相關(guān)工作

    近年來,學(xué)術(shù)界在分布式平臺(tái)上針對(duì)RDF存儲(chǔ)查詢方面做了大量的研究工作。其中一種方式是將集中式的RDF查詢系統(tǒng)部署到分布式集群的所有節(jié)點(diǎn)上,在它們之間建立一個(gè)消息傳遞層,例如文獻(xiàn)[5,11-13]。它們的不同之處在于劃分策略,一些方法通過劃分RDF數(shù)據(jù)集,將數(shù)據(jù)存儲(chǔ)到不同的節(jié)點(diǎn)上,在每一個(gè)節(jié)點(diǎn)上做查詢,最終得到的結(jié)果為在每一個(gè)節(jié)點(diǎn)上得到結(jié)果的連接,例如文獻(xiàn)[13]。這種方法的缺點(diǎn)在于在數(shù)據(jù)劃分階段會(huì)產(chǎn)生大量的信息冗余。另外一些方法采用不同的劃分策略,它通過劃分查詢而不是劃分?jǐn)?shù)據(jù)集來實(shí)現(xiàn)分布式查詢處理。通過劃分查詢而不是數(shù)據(jù)集可以有效減少中間結(jié)果的傳輸,通過對(duì)局部結(jié)果的連接操作得到最終的結(jié)果。這種方式的缺點(diǎn)在于每一臺(tái)機(jī)器需要存儲(chǔ)所有的數(shù)據(jù)集,例如DREAM(distributed RDF engine with adaptive query planner and minimal communication)[5]。

    另一種類型的存儲(chǔ)查詢方案是基于分布式云平臺(tái)的RDF數(shù)據(jù)管理系統(tǒng)。最常用的分布式云計(jì)算平臺(tái)是Hadoop,學(xué)術(shù)界在此之上做了大量的工作,例如文獻(xiàn)[6-7,14-16]?;赑ig的PigSparql[7],將數(shù)據(jù)存儲(chǔ)在HDFS(hadoop distributed file system)中,使用Pig作為一個(gè)中間層,而不是直接使用MapReduce進(jìn)行計(jì)算。基于Sch?tzle等人提出的Sempala[6],通過將SPARQL查詢分解成一系列Parquet上的SQL子查詢,對(duì)這些子查詢得到的結(jié)果進(jìn)行連接形成最終結(jié)果。基于Hadoop方式的主要缺點(diǎn)是中間結(jié)果必須回寫到磁盤,從而產(chǎn)生大量的I/O代價(jià),降低查詢性能。為了解決這個(gè)問題,近年來,基于Spark的RDF存儲(chǔ)查詢成為一個(gè)熱門的研究學(xué)術(shù)課題,產(chǎn)生了大量的研究成果,例如文獻(xiàn)[2,4,8,17]。Spark是一個(gè)通用內(nèi)存分布式計(jì)算平臺(tái),計(jì)算的中間結(jié)果被保存在內(nèi)存中,從而可以有效降低I/O代價(jià)。S2RDF[8]是一個(gè)基于Spark的分布式RDF數(shù)據(jù)管理系統(tǒng),使用了Spark的關(guān)系數(shù)據(jù)庫接口SparkSQL,通過垂直劃分的方式將結(jié)果存儲(chǔ)在Spark中。在查詢階段,將每一個(gè)三元組模式對(duì)應(yīng)一個(gè)數(shù)據(jù)表,對(duì)結(jié)果進(jìn)行連接得到最終結(jié)果。由于RDF可以被表示為圖模式,因此也可以使用分布式圖并行計(jì)算框架來實(shí)現(xiàn)SPARQL查詢。第一個(gè)工作是Goodman等人基于GraphLab實(shí)現(xiàn)的[18]。Spar(k)ql[4]的原理類似于文獻(xiàn)[18],基于GraphX實(shí)現(xiàn)。這兩種方式的缺點(diǎn)在于在每一個(gè)超級(jí)步中只能處理一個(gè)三元組模式。另外一個(gè)工作是S2X[3],這種方式的優(yōu)點(diǎn)是將圖并行和數(shù)據(jù)并行結(jié)合到一系統(tǒng)中,但是缺點(diǎn)是會(huì)在第一輪迭代中產(chǎn)生大量的中間結(jié)果。

    3 問題定義

    定義1(RDF三元組)RDF三元組是一系列形如(s,p,o)的數(shù)據(jù)組合。其中s代表主體(subject),p代表屬性(property),o代表客體(object)。三元組的取值區(qū)間可以表示為(U?B)×(U?B)×(U?B?L),其中U代表URI,B代表空值,L代表文本信息。

    例如,對(duì)于三元組(蘋果,種類,水果),蘋果代表主體,種類代表屬性,水果代表客體。三元組表示的意思是蘋果的種類是水果。

    定義2(RDF圖模型)RDF圖模型可以用一個(gè)四元組(V,E,LV,LE)來表示。其中,V代表RDF數(shù)據(jù)圖中的頂點(diǎn)集,每個(gè)點(diǎn)代表RDF三元組中的主體或者客體;E是RDF圖模型中的所有邊的集合,每條邊代表RDF三元組中的屬性;LV是圖中所有的頂點(diǎn)標(biāo)簽的集合;LE是圖中所有邊標(biāo)簽的集合。通常,任意兩個(gè)頂點(diǎn)之間不存在雙向邊。

    圖1(b)給出了一個(gè)對(duì)應(yīng)圖1(a)中RDF三元組的圖表示。其中方框中的元素代表URI或者空值,雙引號(hào)中的元素代表文本屬性。

    定義3(三元組模式)當(dāng)一個(gè)三元組中的元素被變量取代時(shí),該三元組被稱作一個(gè)三元組模式。一個(gè)三元組被稱作是三元組模式的匹配當(dāng)且僅當(dāng)對(duì)應(yīng)位置元素相互匹配。其中,變量可以匹配上所有元素,常量只能匹配上同標(biāo)簽元素。

    定義4(SPARQL查詢)一個(gè)SPARQL查詢是一系列三元組模式的集合。SPARQL查詢圖是SPARQL查詢的圖模型表示。本文關(guān)注的主要是以select開頭的選擇性查詢。

    定義5(SPARQL查詢匹配)給定一個(gè)RDF圖G和一個(gè)SPARQL查詢圖Q,M是G的子圖,M是Q的一個(gè)匹配當(dāng)且僅當(dāng)存在函數(shù)f:V(Q)→V(M)使得:

    (1)對(duì)Q中的任意頂點(diǎn)v,如果v是一個(gè)變量,f(v)可以匹配任意值。如果v是一個(gè)常量,那么f(v)和v具有相同的URI或者文本屬性。

    (2)對(duì)于Q中的任意邊(u,v),(f(u),f(v))是M中的邊,且邊上的標(biāo)簽一致。

    對(duì)于圖2(b)中的查詢圖和圖1(b)中的RDF圖,(ub:publication4,rdf:type,ub:Publication),(ub:publication4,ub:publication Author,ub:assistant Professor2)組成Q的一個(gè)匹配。

    本文解決的問題可以形式化地表述為如下形式:給定一個(gè)RDF圖G和一個(gè)SPARQL查詢圖Q,找出Q在G中的所有匹配。

    4 SPARQL查詢處理

    本文提出了一種新的基于GraphX的SPARQL查詢處理方式,利用GraphX的并行計(jì)算的威力來加速SPARQL查詢。4.1節(jié)詳細(xì)介紹了SQX用到的數(shù)據(jù)模型;4.2節(jié)介紹了如何根據(jù)給定的SPARQL查詢圖生成相應(yīng)的查詢計(jì)劃;4.3節(jié)介紹了查詢處理算法的具體細(xì)節(jié)。

    4.1 數(shù)據(jù)模型

    在本文方法中,RDF數(shù)據(jù)以屬性圖(property graph)的形式存儲(chǔ)在GraphX中。在RDF數(shù)據(jù)中,存在兩種類型的屬性,分別為數(shù)據(jù)屬性和對(duì)象屬性。其中數(shù)據(jù)屬性指的是連接實(shí)體和文本的屬性,而對(duì)象屬性代表連接兩個(gè)實(shí)體的屬性。例如在圖1(b),謂詞“ub:name”是一個(gè)數(shù)據(jù)屬性而謂詞“ub:publication Author”是一個(gè)對(duì)象屬性。在本文的模型中,將數(shù)據(jù)屬性存儲(chǔ)到節(jié)點(diǎn)的內(nèi)部,而對(duì)象屬性被保留為邊。通過將數(shù)據(jù)屬性存儲(chǔ)到節(jié)點(diǎn)的內(nèi)部,可以有效減少圖中頂點(diǎn)和邊的數(shù)量,從而有效減少圖的大小。對(duì)于每一個(gè)頂點(diǎn),對(duì)應(yīng)的頂點(diǎn)數(shù)據(jù)格式為(頂點(diǎn)ID,URI,數(shù)據(jù)屬性集)。特殊的,將對(duì)象屬性“rdf:type”當(dāng)作數(shù)據(jù)屬性存儲(chǔ)在節(jié)點(diǎn)內(nèi)部,這是SPARQL查詢中最常見的屬性,并且通常不會(huì)將該屬性作為查詢結(jié)果。通過將“rdf:type”存儲(chǔ)在節(jié)點(diǎn)的內(nèi)部,可以有效減少屬性圖中邊的數(shù)量并且可以快速定位到相應(yīng)類型的節(jié)點(diǎn)[18]。

    圖3是圖1(b)中RDF圖的一個(gè)屬性圖表示,其中對(duì)象屬性被當(dāng)作一條邊,而數(shù)據(jù)屬性被存儲(chǔ)在節(jié)點(diǎn)的內(nèi)部。

    4.2 查詢計(jì)劃生成

    給定一個(gè)SPARQL查詢Q,首先為Q生成一個(gè)相應(yīng)的查詢計(jì)劃。查詢計(jì)劃代表查詢圖中三元組模式的匹配順序。例如,對(duì)于圖4(a)中給出的查詢圖,圖4(b)給出了對(duì)應(yīng)的查詢計(jì)劃。查詢計(jì)劃由以下三部分組成:

    Fig.3 RDF property graph圖3 RDF屬性圖

    Fig.4 SPARQL query plan generation圖4 查詢計(jì)劃生成

    (1)查詢樹。查詢樹是從給定的查詢圖中提取出的樹結(jié)構(gòu)。在這個(gè)例子中,三元組模式(?X,ub:publicationAuthor,?Y),(?Z,ub:master Degree From,?Y),(?W,ub:publication Author,?Z)構(gòu)成了相應(yīng)的查詢樹。樹中的節(jié)點(diǎn)被分配到不同的層中,根節(jié)點(diǎn)所在的層為第0層,其他每一個(gè)節(jié)點(diǎn)的層數(shù)為該節(jié)點(diǎn)到根節(jié)點(diǎn)的距離。例如?Y的層數(shù)為0,?X的層數(shù)為1。相鄰頂點(diǎn)層之間的三元組模式將在一個(gè)超級(jí)步中被處理。

    (2)非樹邊。非樹邊指那些在查詢圖中而不在查詢樹中的邊,用于迭代完成之后的結(jié)果過濾。在這個(gè)例子中,非樹邊為(?X,ub:works For,?Z)。

    (3)約束條件。約束條件指的是查詢圖中的數(shù)據(jù)屬性。用于從非樹邊過濾完成后的結(jié)果中篩選出最終的結(jié)果,最終結(jié)果必須滿足所有約束條件。在這個(gè)例子中,三元組模式(?Y,rdf:type,ub:University)是一個(gè)約束條件,?Y匹配上的節(jié)點(diǎn)中滿足類型是大學(xué)的頂點(diǎn)才有可能成為最終的結(jié)果。

    SPARQL查詢處理具體步驟的形式化表述如下:給定一個(gè)SPARQL查詢圖,生成相應(yīng)的查詢計(jì)劃,根據(jù)生成的查詢計(jì)劃首先匹配查詢樹,在得到的匹配結(jié)果中,利用非樹邊和約束條件進(jìn)行結(jié)果過濾。

    算法1給出了查詢計(jì)劃的具體生成過程。給定一個(gè)SPARQL查詢,算法主要運(yùn)行以下兩個(gè)步驟:

    步驟1(約束提?。┦紫忍崛?shù)據(jù)屬性并將它們轉(zhuǎn)換成約束(第1行)。特殊的,如果給出的SPARQL查詢中所有的三元組模式都是數(shù)據(jù)屬性,那么將沒有必要進(jìn)行迭代,算法將不會(huì)發(fā)送任何消息,最終的結(jié)果將從所有滿足約束條件的頂點(diǎn)中得到(第6行)。

    步驟2(查詢樹構(gòu)建)提取完數(shù)據(jù)屬性之后,根據(jù)剩下的三元組模式構(gòu)建查詢樹。一個(gè)查詢圖可能對(duì)應(yīng)多棵生成樹,需要從這些樹中挑選最優(yōu)的一棵。直觀的,這棵查詢樹需要擁有最低的查詢代價(jià)。因此提出了一種基于代價(jià)的查詢樹構(gòu)建方案,為每一條邊分配一個(gè)權(quán)值,然后找到該查詢圖的最小生成樹MST(第3行)。邊上的權(quán)值是對(duì)應(yīng)的謂詞在RDF數(shù)據(jù)庫中出現(xiàn)的頻率。這樣做的原因在于出現(xiàn)頻率低的邊將發(fā)送更少的消息,通過使用最小生成樹可以有效降低傳輸代價(jià)。不被最小生成樹所包含的邊被加入到非樹邊集合中。在得到最小生成樹之后,為了使每一個(gè)超級(jí)步中的數(shù)據(jù)傳輸相對(duì)均衡,采用使層與層之間權(quán)值邊權(quán)值方差最小的方案來挑選根節(jié)點(diǎn)。根節(jié)點(diǎn)的層數(shù)為零,其他節(jié)點(diǎn)的層數(shù)為該節(jié)點(diǎn)到根節(jié)點(diǎn)的距離。相鄰層之間的所有三元組模式將在一個(gè)超級(jí)步中完成。采用一個(gè)自底向上的匹配方式來完成匹配過程,因此定義查詢樹中邊的方向?yàn)閺淖庸?jié)點(diǎn)指向其父節(jié)點(diǎn)。

    為了方便后續(xù)查詢,對(duì)每一個(gè)三元組模式構(gòu)建一個(gè)匹配模式(第10行)。匹配模式包含三部分:三元組模式、源頂點(diǎn)和所有發(fā)送消息到該頂點(diǎn)的頂點(diǎn)集合。源頂點(diǎn)的作用是指明三元組模式中消息傳遞的方向,消息從源頂點(diǎn)發(fā)送到三元組模式的另外一個(gè)頂點(diǎn)。而所有發(fā)送消息到該頂點(diǎn)的頂點(diǎn)集合用于計(jì)算最終結(jié)果是否涉及查詢圖中的所有頂點(diǎn),集合元素少于查詢圖中頂點(diǎn)個(gè)數(shù)的結(jié)果將被過濾。匹配模式自頂向下構(gòu)建,相鄰層之間的匹配模式將在一個(gè)超級(jí)步中被處理。

    算法1查詢計(jì)劃生成

    輸入:謂詞權(quán)值集合W,SPARQL查詢Q。

    輸出:查詢計(jì)劃QP,迭代集合IL,非樹邊NonTreeEdges,約束條件Constraints。

    1.將SPARQL查詢劃分為約束條件Constraints和對(duì)象屬性O(shè)P

    2.IfOP不為空Then

    3.找到使相鄰層之間邊權(quán)值方差最小的最小生成樹MST

    4.非樹邊NonTreeEdges←OPMST中的三元組模式

    5.Else

    6.returnConstraints

    7.End if

    8.IL←?

    9.ForMST中的每一個(gè)三元組模式do

    10.自頂向下構(gòu)建匹配模式

    11.將相鄰層之間的匹配模式加入同一輪迭代iteration中

    12.IL←IL?iteration

    13.End for

    14.returnQP(IL,NonTreeEdges,Constraints)

    4.3 查詢處理

    查詢處理主要分為兩部分,查詢樹匹配和結(jié)果過濾。在查詢樹匹配階段,采用自底向上分層匹配的方式。在執(zhí)行匹配之前,首先需要將迭代進(jìn)行反序。針對(duì)圖4(b)中給出的查詢樹,在第一個(gè)超級(jí)步中首先匹配第一層和第二層之間的三元組模式(?W,ub:publication Author,?Z),完成之后匹配第0層和第一層之間三元組模式(?Z,ub:master Degree From,?Y),(?X,ub:subOrganizationOf,?Y),最終所有節(jié)點(diǎn)的匹配結(jié)果都將被發(fā)送到根節(jié)點(diǎn)。將每一輪的匹配結(jié)果以消息的形式從源頂點(diǎn)發(fā)送到相應(yīng)的目的頂點(diǎn)。對(duì)于查詢樹中的每一個(gè)三元組模式,如果該三元組模式對(duì)應(yīng)的邊的方向和SPARQL查詢圖中邊的方向一致,那么對(duì)RDF屬性圖中匹配上的三元組,消息從主體發(fā)送到客體。反之,消息從客體發(fā)送到主體。在本文的方法中,不考慮謂詞為變量的情況。消息的格式包括三部分:目的頂點(diǎn)、謂詞和匹配結(jié)果表。匹配結(jié)果表的表頭為當(dāng)前已經(jīng)匹配完成的頂點(diǎn),對(duì)應(yīng)的值為相應(yīng)的匹配結(jié)果。當(dāng)匹配完一個(gè)三元組模式之后,在相應(yīng)的表中添加一列,并添加相應(yīng)的匹配結(jié)果。

    以圖4(b)中的查詢和圖3中的RDF屬性圖為例??紤]查詢圖中第0層和第一層之間的三元組模式(?Z,ub:master Degree From,?Y),屬性圖中所有謂詞為“ub:master Degree From”的邊消息從主體發(fā)送到客體。消息的頭頂點(diǎn)為?Y,謂詞為“ub:master Degree-From”,由于?Z有一棵子樹,因此最終的?Y收到的消息結(jié)果是?Z頂點(diǎn)中存儲(chǔ)的匹配結(jié)果和這一輪中匹配上的結(jié)果的連接。

    在一個(gè)超級(jí)步完成之后,RDF屬性圖中的頂點(diǎn)可能會(huì)收集到從它鄰居頂點(diǎn)發(fā)送來的多條信息。需要將這些消息進(jìn)行合并,從而得到相應(yīng)的中間結(jié)果存儲(chǔ)在目的頂點(diǎn)中。通過例子的方式來說明本文的合并過程??紤]圖5中一個(gè)頂點(diǎn)收到的3個(gè)消息M1、M2和M3。它們有著共同的目的頂點(diǎn)?X,消息的合并涉及到兩個(gè)操作,union和join。第一階段,因?yàn)橄1和M2有相同的謂詞P1,所以通過union操作將它們合并成一個(gè)表M12。第二階段,因?yàn)橄12和消息M3謂詞不同,所以通過join操作將它們合并,移除謂詞之后得到最終的合并結(jié)果,同時(shí)更新頂點(diǎn)的中間結(jié)果。具體的過程如圖5所示。通過定義消息的合并順序,算法可以在一個(gè)超級(jí)步中處理多個(gè)三元組模式并保證在合并消息的過程中不丟失結(jié)果。

    Fig.5 Illustration of message merging圖5 消息合并方案

    查詢樹的匹配過程基于GraphX的Pregel模式實(shí)現(xiàn),Pregel是一個(gè)圖并行計(jì)算接口,主要包括3個(gè)函數(shù):msgCombiner、vertex Program 和 sendMsg。如果RDF屬性圖中的頂點(diǎn)是激活的,那么它將執(zhí)行這一輪的超級(jí)步中所有這3個(gè)函數(shù)。在一輪超級(jí)步中,所有謂詞和三元組模式中謂詞相同的邊將在sendMsg階段將消息發(fā)送到它的對(duì)應(yīng)的鄰居節(jié)點(diǎn),在msg-Combiner階段,到達(dá)同一個(gè)頂點(diǎn)的具有相同謂詞的消息將通過union操作被合并。最后,在vertexProgram階段,具有不同謂詞的消息通過join操作被合并,并且將合并后的結(jié)果作為中間結(jié)果存儲(chǔ)到對(duì)應(yīng)的數(shù)據(jù)頂點(diǎn)中。特殊的,如果想要查找數(shù)據(jù)屬性,例如對(duì)于SPARQL查詢(?X,ub:name,?Y),在查詢計(jì)劃的構(gòu)建過程中,將它作為一條邊而不是約束條件。然而在RDF屬性圖中,對(duì)應(yīng)的屬性被存儲(chǔ)在了節(jié)點(diǎn)內(nèi)部,因此不能通過迭代的方式得到相應(yīng)的結(jié)果。為了解決這種情況,在一個(gè)超級(jí)步開始之前,檢查每個(gè)三元組模式對(duì)應(yīng)的謂詞是否是一個(gè)數(shù)據(jù)屬性謂詞,如果是,那么在頂點(diǎn)的內(nèi)部將數(shù)據(jù)屬性合并到頂點(diǎn)的中間結(jié)果表中,同時(shí)在這一輪迭代中不發(fā)送任何消息到它的鄰居頂點(diǎn)。

    給定一個(gè)查詢計(jì)劃和屬性圖,算法2給出了具體的匹配過程。

    算法2查詢樹匹配

    輸入:屬性圖G,迭代集合IL。

    輸出:包含結(jié)果的屬性圖G。

    1.reverseIL/*反轉(zhuǎn)迭代,自底向上匹配*/

    2.Foriteration∈ILdo

    3.Fortriplepattern∈iterationdo

    4.If謂詞在頂點(diǎn)內(nèi)部出現(xiàn)then

    5. 將數(shù)據(jù)屬性合并到頂點(diǎn)的中間結(jié)果

    6.Else if方向和SPARQL中一致then

    7. 消息從主體發(fā)送到客體

    8.Else

    9. 消息從客體發(fā)送到主體

    10. End if

    11.End for

    12.For?v∈V&&vis active do

    13. 合并到達(dá)v的謂詞相同的消息

    14.End for

    15.For?v∈V&&vis active do

    16.合并到達(dá)v的所有消息并更新中間結(jié)果

    17.End for

    18.End for

    在找到所有的查詢樹的匹配之后,還需要通過非樹邊和約束條件來對(duì)結(jié)果進(jìn)行過濾。對(duì)于查詢樹匹配上的每一個(gè)匹配結(jié)果M,任意一個(gè)屬于非樹邊集合中的三元組模式(u,p,v),檢查(f(u),f(v))是否是M中的一條邊,并且邊上的標(biāo)簽為p。如果存在一條非樹邊使得M不滿足條件,那么該匹配結(jié)果不可能是最終的結(jié)果,該結(jié)果可以被去除。完成非樹邊過濾之后,檢查剩余的匹配是否滿足所有的約束條件,滿足所有約束條件的結(jié)果將被作為最終的匹配結(jié)果。通過這種“查詢樹匹配”+“結(jié)果過濾”的匹配方式,可以有效減少迭代輪數(shù),大大提高查詢性能。

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

    在本章中,在數(shù)據(jù)集LUBM[19]上做了大量的實(shí)驗(yàn)來驗(yàn)證本文方法的查詢性能。

    5.1 實(shí)驗(yàn)設(shè)置

    本文將在一個(gè)包含6個(gè)節(jié)點(diǎn)的集群上測(cè)試SQX的查詢性能。集群包含5個(gè)worker節(jié)點(diǎn)和1個(gè)master節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)包含一個(gè)1.90 GHz 6核Intel Xeon E5-2609v3 CPU,480 GB固態(tài)硬盤和12 GB內(nèi)存,運(yùn)行系統(tǒng)為CentOS7。在Spark1.6.1上實(shí)現(xiàn)本文的算法,并使用Standalone模式,RDF數(shù)據(jù)被存儲(chǔ)在HDFS中。將SQX和現(xiàn)有的兩種基于Spark GraphX的SPARQL查詢算法S2X[3]和Spar(k)ql[4]進(jìn)行比較,實(shí)驗(yàn)的數(shù)據(jù)集為Lehigh University Benchmark(LUBM)。LUBM是一個(gè)公開的關(guān)于大學(xué)的數(shù)據(jù)集,通過改變相應(yīng)的參數(shù)可以產(chǎn)生不同大小的數(shù)據(jù)集。實(shí)驗(yàn)使用的數(shù)據(jù)集對(duì)應(yīng)的參數(shù)、文件個(gè)數(shù)和三元組數(shù)量如表1所示。

    Table 1 Basic information of LUBM dataset表1LUBM數(shù)據(jù)集基本信息

    5.2 查詢?cè)u(píng)估

    在本節(jié)中,使用所有的6個(gè)節(jié)點(diǎn),在LUBM20上比較SQX、S2X以及Spar(k)ql的查詢性能。使用LUBM提供的Benchmark中的查詢,將查詢分為簡(jiǎn)單查詢和復(fù)雜查詢。簡(jiǎn)單查詢通常為星形查詢,復(fù)雜查詢?yōu)殒湢畈樵兒桶h(huán)的查詢。

    圖6(a)顯示了針對(duì)簡(jiǎn)單查詢 Q1、Q3、Q5、Q6、Q10的3種算法的查詢性能。所有的這些查詢都不包含環(huán)結(jié)構(gòu)。可以看出,SQX的查詢性能比S2X快很多,因?yàn)闇p少了大量的中間結(jié)果,從而有效提高了查詢性能。SQX和Spar(k)ql查詢時(shí)間基本一致,因?yàn)檫@些查詢都只包含一個(gè)對(duì)象屬性,兩種方法都可以在一個(gè)超級(jí)步中完成,所以在查詢時(shí)間上SQX優(yōu)勢(shì)并不明顯。

    圖6(b)顯示了針對(duì) 3個(gè)復(fù)雜查詢 Q2、Q7、Q9 SQX和S2X兩種方法的查詢性能。其中,Q2和Q9為環(huán)狀查詢,Q7為鏈狀查詢。沒有將Spar(k)ql列入比較是因?yàn)镾par(k)ql不能在可接受的時(shí)間(8 h)內(nèi)完成查詢。實(shí)驗(yàn)結(jié)果表明,對(duì)于復(fù)雜查詢本文的方法查詢速度比S2X更快。

    5.3 可擴(kuò)展性評(píng)估

    在這一節(jié),使用3個(gè)查詢Q1、Q2、Q7來驗(yàn)證SQX的可擴(kuò)展性。通過改變數(shù)據(jù)集的大小來驗(yàn)證方法在不同大小數(shù)據(jù)集上的查詢性能。使用LUBM1、LUBM5、LUBM10和LUBM20數(shù)據(jù)集,實(shí)驗(yàn)結(jié)果如圖7所示。從實(shí)驗(yàn)結(jié)果可以明顯看出,隨著數(shù)據(jù)集的增大,查詢響應(yīng)時(shí)間呈線性遞增,并且對(duì)于不同查詢的增長速度不一樣。查詢2的查詢時(shí)間比查詢1和7的查詢時(shí)間增長得更為劇烈,原因在于查詢2為帶環(huán)查詢,并且包含3個(gè)三元組模式,產(chǎn)生的中間結(jié)果更多。

    Fig.6 Query processing time of different queries圖6 不同查詢的處理時(shí)間

    Fig.7 Query processing time of different data set sizes圖7 不同數(shù)據(jù)集大小查詢處理時(shí)間

    通過改變集群節(jié)點(diǎn)個(gè)數(shù),來驗(yàn)證集群大小對(duì)查詢的影響,對(duì)應(yīng)的查詢處理時(shí)間如圖8所示??梢钥吹剑S著節(jié)點(diǎn)數(shù)的增加,對(duì)于全部的3個(gè)查詢,查詢響應(yīng)時(shí)間先減少后增加,原因在于隨著節(jié)點(diǎn)數(shù)的增加,集群計(jì)算能力增加,但是當(dāng)節(jié)點(diǎn)增加到一定數(shù)量時(shí),消息傳遞的代價(jià)增大,相應(yīng)的查詢處理時(shí)間將變長。

    Fig.8 Query processing time of different number of cluster nodes圖8 不同節(jié)點(diǎn)數(shù)查詢處理時(shí)間

    6 總結(jié)

    本文提出了一種新的基于Spark GraphX的分布式RDF數(shù)據(jù)查詢方法SQX。從圖的視角來評(píng)估SPARQL查詢,RDF數(shù)據(jù)被視為一個(gè)屬性圖并且中間結(jié)果和最終的結(jié)果存儲(chǔ)在屬性圖節(jié)點(diǎn)的內(nèi)部。提出了一個(gè)新的查詢計(jì)劃生成方案,將SPARQL查詢分解為查詢樹匹配和結(jié)果過濾兩個(gè)階段。同其他基于GraphX的方法相比,SQX可以在一個(gè)超級(jí)步中處理多個(gè)三元組模式,充分利用了GraphX的并行計(jì)算能力。實(shí)驗(yàn)結(jié)果表明,本文的方法具有良好的查詢效率和可擴(kuò)展性。

    猜你喜歡
    謂詞三元組頂點(diǎn)
    基于語義增強(qiáng)雙編碼器的方面情感三元組提取
    軟件工程(2024年12期)2024-12-28 00:00:00
    基于帶噪聲數(shù)據(jù)集的強(qiáng)魯棒性隱含三元組質(zhì)檢算法*
    過非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
    被遮蔽的邏輯謂詞
    ——論胡好對(duì)邏輯謂詞的誤讀
    黨項(xiàng)語謂詞前綴的分裂式
    西夏研究(2020年2期)2020-06-01 05:19:12
    關(guān)于余撓三元組的periodic-模
    關(guān)于頂點(diǎn)染色的一個(gè)猜想
    也談“語言是存在的家”——從語言的主詞與謂詞看存在的殊相與共相
    三元組輻射場(chǎng)的建模與仿真
    數(shù)學(xué)問答
    久久香蕉激情| 精品亚洲成a人片在线观看| 一本综合久久免费| 脱女人内裤的视频| 国产极品粉嫩免费观看在线| 久久精品91无色码中文字幕| 啪啪无遮挡十八禁网站| 99re在线观看精品视频| 日韩免费av在线播放| 亚洲午夜精品一区,二区,三区| 日本vs欧美在线观看视频| 国产单亲对白刺激| 精品久久蜜臀av无| 男人操女人黄网站| 99在线人妻在线中文字幕 | 飞空精品影院首页| 丁香六月欧美| 国产激情欧美一区二区| 久久久久国产一级毛片高清牌| 亚洲av电影在线进入| 亚洲熟妇熟女久久| 天堂动漫精品| 两个人免费观看高清视频| 午夜精品国产一区二区电影| 亚洲中文字幕日韩| 在线观看66精品国产| 午夜日韩欧美国产| 国产精品欧美亚洲77777| 一区在线观看完整版| 一夜夜www| 日本精品一区二区三区蜜桃| 啦啦啦免费观看视频1| 久久精品国产a三级三级三级| 真人做人爱边吃奶动态| 制服人妻中文乱码| 亚洲欧洲精品一区二区精品久久久| 777米奇影视久久| 久久香蕉激情| 黄色片一级片一级黄色片| 狠狠婷婷综合久久久久久88av| 成人18禁在线播放| 日韩一卡2卡3卡4卡2021年| 视频区图区小说| x7x7x7水蜜桃| 久久午夜亚洲精品久久| 黄色视频,在线免费观看| 国产欧美亚洲国产| 午夜福利一区二区在线看| 日韩欧美一区二区三区在线观看 | 色在线成人网| 日本五十路高清| 亚洲国产欧美日韩在线播放| 国产亚洲精品久久久久5区| 丝袜美腿诱惑在线| 美女国产高潮福利片在线看| 亚洲精品av麻豆狂野| 很黄的视频免费| 在线观看免费日韩欧美大片| 亚洲全国av大片| 999精品在线视频| 国产乱人伦免费视频| 欧美在线一区亚洲| av电影中文网址| 少妇猛男粗大的猛烈进出视频| xxx96com| 欧美最黄视频在线播放免费 | 日本黄色视频三级网站网址 | 1024香蕉在线观看| 久久精品国产亚洲av香蕉五月 | 久久久久久久午夜电影 | 中文字幕av电影在线播放| 国产精品 欧美亚洲| 午夜成年电影在线免费观看| 国产区一区二久久| 久久精品国产99精品国产亚洲性色 | ponron亚洲| 亚洲三区欧美一区| 91九色精品人成在线观看| a级毛片黄视频| 国产视频一区二区在线看| 大型黄色视频在线免费观看| 男女午夜视频在线观看| 天天影视国产精品| 亚洲国产精品sss在线观看 | 满18在线观看网站| 欧美精品一区二区免费开放| av片东京热男人的天堂| 欧美国产精品一级二级三级| 午夜免费鲁丝| av电影中文网址| 岛国在线观看网站| 999久久久精品免费观看国产| 777久久人妻少妇嫩草av网站| 水蜜桃什么品种好| 无限看片的www在线观看| 国产精品1区2区在线观看. | 久久草成人影院| 久久久久视频综合| 亚洲精品国产一区二区精华液| 人妻久久中文字幕网| 中出人妻视频一区二区| 精品久久久久久久久久免费视频 | 男女下面插进去视频免费观看| 91精品三级在线观看| 国产三级黄色录像| a级片在线免费高清观看视频| 夜夜夜夜夜久久久久| 亚洲国产欧美一区二区综合| 欧美午夜高清在线| 宅男免费午夜| 亚洲熟妇熟女久久| 久久中文字幕一级| 欧美在线一区亚洲| 成熟少妇高潮喷水视频| 97人妻天天添夜夜摸| 国产在线一区二区三区精| 成年人免费黄色播放视频| 欧美亚洲 丝袜 人妻 在线| 亚洲精品国产一区二区精华液| 国产在视频线精品| videos熟女内射| 国产精品.久久久| 免费观看a级毛片全部| 91大片在线观看| 动漫黄色视频在线观看| 99国产综合亚洲精品| 亚洲第一欧美日韩一区二区三区| 午夜激情av网站| 精品一区二区三卡| 精品少妇一区二区三区视频日本电影| 成年版毛片免费区| 日本vs欧美在线观看视频| 欧美最黄视频在线播放免费 | 日韩欧美免费精品| 午夜福利欧美成人| 在线视频色国产色| 侵犯人妻中文字幕一二三四区| 精品久久久精品久久久| 好看av亚洲va欧美ⅴa在| av不卡在线播放| 免费在线观看影片大全网站| 美女高潮到喷水免费观看| 桃红色精品国产亚洲av| 中文字幕色久视频| av超薄肉色丝袜交足视频| 啦啦啦在线免费观看视频4| 国产亚洲精品一区二区www | 欧美成人免费av一区二区三区 | 亚洲一码二码三码区别大吗| 成人亚洲精品一区在线观看| 亚洲精品美女久久av网站| 热99久久久久精品小说推荐| 99热只有精品国产| 亚洲精品粉嫩美女一区| 露出奶头的视频| 在线免费观看的www视频| 亚洲美女黄片视频| 免费黄频网站在线观看国产| 伊人久久大香线蕉亚洲五| 久久久久久久国产电影| 欧美+亚洲+日韩+国产| 黄网站色视频无遮挡免费观看| 777久久人妻少妇嫩草av网站| www.熟女人妻精品国产| 人妻丰满熟妇av一区二区三区 | 中文亚洲av片在线观看爽 | 人妻一区二区av| 欧美日韩亚洲综合一区二区三区_| 美女 人体艺术 gogo| 少妇猛男粗大的猛烈进出视频| 三上悠亚av全集在线观看| 热99久久久久精品小说推荐| tocl精华| 亚洲欧美日韩高清在线视频| 久久精品熟女亚洲av麻豆精品| 天堂中文最新版在线下载| 99久久精品国产亚洲精品| 亚洲自偷自拍图片 自拍| 丁香欧美五月| 最新的欧美精品一区二区| 中文字幕最新亚洲高清| 国产高清视频在线播放一区| 狠狠狠狠99中文字幕| 国产男女内射视频| 欧美日韩精品网址| 精品乱码久久久久久99久播| 欧美日韩福利视频一区二区| 午夜日韩欧美国产| 亚洲专区中文字幕在线| 久久香蕉国产精品| 日本vs欧美在线观看视频| 搡老熟女国产l中国老女人| 波多野结衣av一区二区av| 国产一区二区激情短视频| 黄频高清免费视频| 伦理电影免费视频| 午夜福利视频在线观看免费| 亚洲aⅴ乱码一区二区在线播放 | 成年版毛片免费区| 亚洲视频免费观看视频| 99香蕉大伊视频| 好看av亚洲va欧美ⅴa在| 村上凉子中文字幕在线| 精品免费久久久久久久清纯 | 免费日韩欧美在线观看| 一进一出好大好爽视频| 免费在线观看亚洲国产| 不卡av一区二区三区| 日韩欧美一区视频在线观看| 亚洲熟女精品中文字幕| 9191精品国产免费久久| 超碰97精品在线观看| 成年人免费黄色播放视频| 性少妇av在线| 女性被躁到高潮视频| 久热这里只有精品99| 18在线观看网站| 人人妻人人添人人爽欧美一区卜| 动漫黄色视频在线观看| 午夜免费观看网址| 两性夫妻黄色片| 真人做人爱边吃奶动态| 国产淫语在线视频| 免费观看a级毛片全部| 亚洲国产精品合色在线| 一区二区日韩欧美中文字幕| 成年人黄色毛片网站| 亚洲 欧美一区二区三区| 亚洲 国产 在线| 丝袜美腿诱惑在线| 狂野欧美激情性xxxx| 精品国产超薄肉色丝袜足j| 亚洲精品粉嫩美女一区| 久久草成人影院| 国产精品免费视频内射| 欧美日韩中文字幕国产精品一区二区三区 | 黄色怎么调成土黄色| 纯流量卡能插随身wifi吗| 69av精品久久久久久| 色尼玛亚洲综合影院| 欧美日韩精品网址| 亚洲国产毛片av蜜桃av| 欧美激情极品国产一区二区三区| 亚洲一码二码三码区别大吗| 无人区码免费观看不卡| 91麻豆av在线| 搡老熟女国产l中国老女人| 免费在线观看影片大全网站| 成年动漫av网址| 亚洲中文av在线| 中文字幕人妻丝袜一区二区| 90打野战视频偷拍视频| 成人黄色视频免费在线看| 法律面前人人平等表现在哪些方面| 黄色怎么调成土黄色| 777久久人妻少妇嫩草av网站| 老司机靠b影院| 搡老岳熟女国产| 国产淫语在线视频| 黄色视频,在线免费观看| 亚洲精品自拍成人| 亚洲精品久久成人aⅴ小说| 国产精品自产拍在线观看55亚洲 | 久99久视频精品免费| 精品久久久精品久久久| 国产蜜桃级精品一区二区三区 | 国产视频一区二区在线看| 日本精品一区二区三区蜜桃| 精品视频人人做人人爽| 性色av乱码一区二区三区2| 国产成人啪精品午夜网站| 一区二区三区激情视频| 成人免费观看视频高清| 人妻久久中文字幕网| 久久香蕉精品热| 亚洲精品国产精品久久久不卡| 人人妻人人澡人人看| 韩国av一区二区三区四区| 日韩 欧美 亚洲 中文字幕| 又大又爽又粗| 99精品在免费线老司机午夜| 欧美精品高潮呻吟av久久| 啪啪无遮挡十八禁网站| 人妻丰满熟妇av一区二区三区 | 欧美在线黄色| 国产精品二区激情视频| 狠狠狠狠99中文字幕| 国产亚洲欧美98| 中文字幕av电影在线播放| 美女国产高潮福利片在线看| 久久国产乱子伦精品免费另类| 黄片小视频在线播放| 亚洲av熟女| 少妇的丰满在线观看| 国产亚洲精品一区二区www | 亚洲美女黄片视频| 叶爱在线成人免费视频播放| 免费av中文字幕在线| www.自偷自拍.com| 午夜福利在线观看吧| 丝袜美足系列| 新久久久久国产一级毛片| 亚洲人成电影免费在线| 老司机在亚洲福利影院| 成人亚洲精品一区在线观看| 久久午夜综合久久蜜桃| 在线观看一区二区三区激情| 久久精品亚洲av国产电影网| 99精品在免费线老司机午夜| 亚洲第一青青草原| 亚洲免费av在线视频| 变态另类成人亚洲欧美熟女 | 麻豆av在线久日| 国产99久久九九免费精品| 热re99久久精品国产66热6| 欧美精品人与动牲交sv欧美| 在线观看舔阴道视频| 久久精品国产清高在天天线| 99久久精品国产亚洲精品| 欧美日韩瑟瑟在线播放| 亚洲精品美女久久av网站| 中出人妻视频一区二区| ponron亚洲| 欧美在线一区亚洲| 在线观看舔阴道视频| 久久精品aⅴ一区二区三区四区| 别揉我奶头~嗯~啊~动态视频| 9热在线视频观看99| 亚洲精品粉嫩美女一区| 国产高清videossex| 国产高清视频在线播放一区| 国产黄色免费在线视频| 亚洲色图综合在线观看| av中文乱码字幕在线| 久久精品国产亚洲av高清一级| 18禁黄网站禁片午夜丰满| 麻豆av在线久日| 国产精品永久免费网站| 在线av久久热| 国产成人免费观看mmmm| 国产人伦9x9x在线观看| 欧美日韩黄片免| 日韩欧美一区二区三区在线观看 | 韩国精品一区二区三区| 天堂√8在线中文| 久久香蕉激情| 黄色a级毛片大全视频| 国产成人欧美| 国产有黄有色有爽视频| 黑人欧美特级aaaaaa片| 精品人妻在线不人妻| 两人在一起打扑克的视频| 建设人人有责人人尽责人人享有的| 国内毛片毛片毛片毛片毛片| 精品久久久久久久久久免费视频 | 国产精品一区二区在线不卡| 精品亚洲成a人片在线观看| 夜夜爽天天搞| 精品久久久久久久久久免费视频 | 欧美成人午夜精品| 欧美久久黑人一区二区| 变态另类成人亚洲欧美熟女 | 男女高潮啪啪啪动态图| 亚洲va日本ⅴa欧美va伊人久久| 久久国产精品男人的天堂亚洲| 80岁老熟妇乱子伦牲交| 一级,二级,三级黄色视频| 丰满人妻熟妇乱又伦精品不卡| 国产免费男女视频| 搡老岳熟女国产| 国产成人精品在线电影| 老司机午夜福利在线观看视频| 色婷婷久久久亚洲欧美| 精品国产一区二区三区四区第35| 性色av乱码一区二区三区2| 亚洲第一欧美日韩一区二区三区| 香蕉久久夜色| 欧美av亚洲av综合av国产av| 国产一区二区三区综合在线观看| 欧美日韩中文字幕国产精品一区二区三区 | 久久亚洲精品不卡| 国产欧美日韩一区二区精品| 午夜免费鲁丝| 天堂俺去俺来也www色官网| 欧美日韩中文字幕国产精品一区二区三区 | 成年版毛片免费区| 另类亚洲欧美激情| 99riav亚洲国产免费| 亚洲色图综合在线观看| 亚洲专区中文字幕在线| 免费女性裸体啪啪无遮挡网站| 高清av免费在线| 妹子高潮喷水视频| 午夜福利在线免费观看网站| 中出人妻视频一区二区| 欧美成人午夜精品| 免费少妇av软件| 亚洲国产欧美一区二区综合| 久久人人爽av亚洲精品天堂| www.自偷自拍.com| 亚洲aⅴ乱码一区二区在线播放 | 欧美乱色亚洲激情| 久久久久精品人妻al黑| 国产男女内射视频| 飞空精品影院首页| 久久精品成人免费网站| 女性被躁到高潮视频| 国产伦人伦偷精品视频| 在线观看免费高清a一片| 黄色怎么调成土黄色| 精品乱码久久久久久99久播| 男女午夜视频在线观看| 国产在视频线精品| 天天躁夜夜躁狠狠躁躁| 国产精品九九99| 午夜老司机福利片| netflix在线观看网站| 乱人伦中国视频| 欧美激情高清一区二区三区| 久久久久精品国产欧美久久久| 999精品在线视频| 大陆偷拍与自拍| 最近最新中文字幕大全免费视频| 欧美日韩福利视频一区二区| 欧美日韩精品网址| 国产精品av久久久久免费| 久久影院123| 啦啦啦免费观看视频1| 国产极品粉嫩免费观看在线| 精品久久久精品久久久| 一区福利在线观看| 夜夜爽天天搞| 国产99久久九九免费精品| 亚洲国产看品久久| 成人国语在线视频| 嫩草影视91久久| 久久香蕉国产精品| 国产男女内射视频| 一本大道久久a久久精品| 一进一出好大好爽视频| 国产精品亚洲av一区麻豆| 女人被躁到高潮嗷嗷叫费观| 天天添夜夜摸| 最近最新中文字幕大全电影3 | 亚洲精品一卡2卡三卡4卡5卡| 俄罗斯特黄特色一大片| 狂野欧美激情性xxxx| 黄色成人免费大全| 亚洲成人国产一区在线观看| 国产97色在线日韩免费| 自线自在国产av| 国产一卡二卡三卡精品| 欧美乱妇无乱码| 天天躁日日躁夜夜躁夜夜| 国产蜜桃级精品一区二区三区 | 欧美精品亚洲一区二区| 国产精品久久久av美女十八| 色精品久久人妻99蜜桃| av超薄肉色丝袜交足视频| 亚洲综合色网址| 国产亚洲精品久久久久久毛片 | 亚洲成人手机| 性色av乱码一区二区三区2| 日韩有码中文字幕| 亚洲 欧美一区二区三区| 丝瓜视频免费看黄片| 亚洲精品中文字幕一二三四区| 人人妻人人添人人爽欧美一区卜| 一级a爱片免费观看的视频| 久久午夜亚洲精品久久| 王馨瑶露胸无遮挡在线观看| 一区福利在线观看| 18禁黄网站禁片午夜丰满| 老熟妇乱子伦视频在线观看| 黄色视频不卡| √禁漫天堂资源中文www| 日韩欧美国产一区二区入口| 国产精品久久久久久人妻精品电影| 人人妻人人添人人爽欧美一区卜| 久久国产乱子伦精品免费另类| 久久性视频一级片| 中文字幕精品免费在线观看视频| 久久中文看片网| 成人黄色视频免费在线看| 久久青草综合色| 欧美成人午夜精品| 欧美日本中文国产一区发布| 麻豆国产av国片精品| 人妻丰满熟妇av一区二区三区 | 亚洲色图av天堂| 午夜福利乱码中文字幕| 日本a在线网址| 亚洲精品av麻豆狂野| videos熟女内射| 99riav亚洲国产免费| 久久精品亚洲精品国产色婷小说| 人人妻人人爽人人添夜夜欢视频| 色婷婷av一区二区三区视频| aaaaa片日本免费| 欧美精品亚洲一区二区| 国产精品av久久久久免费| 精品少妇久久久久久888优播| 日本欧美视频一区| 一进一出抽搐动态| 久热爱精品视频在线9| 久久人妻福利社区极品人妻图片| 高潮久久久久久久久久久不卡| 国产一区在线观看成人免费| 一级作爱视频免费观看| 女人爽到高潮嗷嗷叫在线视频| av欧美777| 成人手机av| 亚洲av片天天在线观看| 国产成人欧美| 大香蕉久久网| av福利片在线| 人人妻人人添人人爽欧美一区卜| 亚洲精品日韩av片在线观看 | 国产av一区在线观看免费| av天堂在线播放| 成人性生交大片免费视频hd| 麻豆成人av在线观看| 精品免费久久久久久久清纯| 黑人欧美特级aaaaaa片| 久久这里只有精品中国| 很黄的视频免费| 国产高潮美女av| 午夜福利视频1000在线观看| 又紧又爽又黄一区二区| 久久6这里有精品| 一个人看视频在线观看www免费 | 精品一区二区三区av网在线观看| 日韩 欧美 亚洲 中文字幕| 国产中年淑女户外野战色| 日本黄色视频三级网站网址| 老鸭窝网址在线观看| 免费观看精品视频网站| 99热只有精品国产| 色av中文字幕| 久久久久亚洲av毛片大全| 欧美日韩一级在线毛片| 色在线成人网| xxx96com| 超碰av人人做人人爽久久 | 90打野战视频偷拍视频| 变态另类成人亚洲欧美熟女| bbb黄色大片| 男女做爰动态图高潮gif福利片| 99精品在免费线老司机午夜| 91在线精品国自产拍蜜月 | 99久久综合精品五月天人人| 国产精品久久久人人做人人爽| 最近最新中文字幕大全电影3| 偷拍熟女少妇极品色| 亚洲 欧美 日韩 在线 免费| 免费看日本二区| 日本精品一区二区三区蜜桃| netflix在线观看网站| 国产成人影院久久av| 精品人妻偷拍中文字幕| 99热这里只有精品一区| 国产精品三级大全| 激情在线观看视频在线高清| 51国产日韩欧美| 日韩欧美国产一区二区入口| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 男女下面进入的视频免费午夜| 欧美最黄视频在线播放免费| 在线观看美女被高潮喷水网站 | 精品一区二区三区人妻视频| 亚洲第一欧美日韩一区二区三区| 国产高清视频在线观看网站| 欧美精品啪啪一区二区三区| 久久久国产成人免费| 国产真实伦视频高清在线观看 | 日本撒尿小便嘘嘘汇集6| 日本 av在线| netflix在线观看网站| 午夜老司机福利剧场| 亚洲中文字幕一区二区三区有码在线看| 18美女黄网站色大片免费观看| 一区二区三区激情视频| 国产中年淑女户外野战色| 宅男免费午夜| 91在线观看av| 国产精品久久久久久人妻精品电影| 亚洲成人免费电影在线观看| 熟女人妻精品中文字幕| 国产伦精品一区二区三区视频9 | 床上黄色一级片| 亚洲专区国产一区二区| 国产真实乱freesex| 亚洲片人在线观看| 午夜视频国产福利| 欧美成人一区二区免费高清观看| 亚洲自拍偷在线| 国产av一区在线观看免费| 一个人免费在线观看电影| 日韩免费av在线播放| 日韩欧美在线二视频| 久久久久久国产a免费观看| 中文亚洲av片在线观看爽| 国内精品久久久久久久电影| 99精品欧美一区二区三区四区| 在线十欧美十亚洲十日本专区| tocl精华| 久久久成人免费电影| 午夜免费男女啪啪视频观看 | 在线视频色国产色| 日日摸夜夜添夜夜添小说| 91久久精品国产一区二区成人 | 在线观看免费午夜福利视频| 黄色女人牲交| 天天一区二区日本电影三级| 午夜免费激情av|