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

    圖引擎底層存儲(chǔ)的設(shè)計(jì)與實(shí)現(xiàn)

    2014-06-07 05:53:26馬洪賓陳貴海
    計(jì)算機(jī)工程 2014年11期
    關(guān)鍵詞:引擎定義

    馬洪賓,陳貴海

    (上海交通大學(xué)計(jì)算機(jī)科學(xué)與工程系,上海200240)

    圖引擎底層存儲(chǔ)的設(shè)計(jì)與實(shí)現(xiàn)

    馬洪賓,陳貴海

    (上海交通大學(xué)計(jì)算機(jī)科學(xué)與工程系,上海200240)

    隨著社交網(wǎng)絡(luò)和語(yǔ)義Web等數(shù)據(jù)應(yīng)用的興起,催生了許多圖數(shù)據(jù)處理產(chǎn)品,包括Neo4j,HyperGraphDB等,然而這些產(chǎn)品在設(shè)計(jì)時(shí)并未充分考慮圖應(yīng)用對(duì)數(shù)據(jù)可用性和可擴(kuò)展性的更高要求。為此,提出一種基于分布式內(nèi)存云的圖引擎底層建模和存儲(chǔ)解決方案。在內(nèi)存云上搭建分布式鍵值引擎,進(jìn)而在鍵值存儲(chǔ)的基礎(chǔ)上對(duì)圖的數(shù)據(jù)進(jìn)行建模和讀寫(xiě)。在大規(guī)模數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該方案具有較好的圖隨機(jī)訪問(wèn)性能,并能夠高效地支持海量規(guī)模的圖數(shù)據(jù)應(yīng)用。

    圖處理;云計(jì)算;分布式;數(shù)據(jù)建模;存儲(chǔ);數(shù)據(jù)結(jié)構(gòu)

    1 概述

    圖是最常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)之一,與線性表和樹(shù)相比,它的結(jié)構(gòu)更加復(fù)雜,對(duì)數(shù)據(jù)的表現(xiàn)能力也更豐富。傳統(tǒng)的圖應(yīng)用包括道路分析[1]、論文引用分析[2]、網(wǎng)頁(yè)鏈接分析[3]等。 隨著社交網(wǎng)絡(luò)[4-5]、語(yǔ)義網(wǎng)絡(luò)[6]等研究領(lǐng)域的興起,由于圖在表示實(shí)體間關(guān)系方面的顯著優(yōu)勢(shì),因此越來(lái)越多的研究嘗試使用圖來(lái)存儲(chǔ)和挖掘數(shù)據(jù)。

    學(xué)術(shù)界和工業(yè)界已有大量工作致力于圖的應(yīng)用和理論研究。截止目前,已有很多圖數(shù)據(jù)庫(kù)產(chǎn)品可供選擇。但是隨著數(shù)據(jù)規(guī)模的日益增長(zhǎng),圖的規(guī)模也隨之呈現(xiàn)爆發(fā)式增長(zhǎng)的趨勢(shì)。如何有效地存儲(chǔ)和使用海量規(guī)模的圖數(shù)據(jù)集,成為圖數(shù)據(jù)庫(kù)領(lǐng)域內(nèi)的一大難題。

    本文結(jié)合圖數(shù)據(jù)應(yīng)用對(duì)可用性和可擴(kuò)展性的要求,提出一種基于分布式內(nèi)存Key-Value引擎的圖數(shù)據(jù)存儲(chǔ)和建模方案,介紹底層使用的分布式內(nèi)存云引擎,根據(jù)圖應(yīng)用對(duì)數(shù)據(jù)建模的需求分析建模技術(shù),并將已知的語(yǔ)義Web數(shù)據(jù)集導(dǎo)入到系統(tǒng)中,對(duì)系統(tǒng)性能進(jìn)行全面分析。

    2 圖數(shù)據(jù)應(yīng)用及其挑戰(zhàn)

    2.1 使用圖數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)建模的優(yōu)勢(shì)

    在已知的大數(shù)據(jù)問(wèn)題中,有很大一部分的問(wèn)題可以由圖進(jìn)行更為直觀的建模。而且這種直觀的建模方式可以帶來(lái)高效的數(shù)據(jù)讀寫(xiě)效率。以社交網(wǎng)絡(luò)為例,網(wǎng)絡(luò)中的兩大元素:人物與人物之間的關(guān)系,可以分別對(duì)應(yīng)到圖里面的頂點(diǎn)和邊。假設(shè)采用鄰接表的形式存儲(chǔ)圖的邊,那么所有的邊都可以保存在頂點(diǎn)上。人物的一些屬性,例如姓名、年齡等,可以作為頂點(diǎn)的屬性存放在頂點(diǎn)內(nèi)。與此相對(duì)地,也可以使用關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)建模成為一個(gè)人物表和一個(gè)朋友關(guān)系表。當(dāng)客戶(hù)端程序需要獲取某個(gè)特定人物的朋友列表時(shí),假設(shè)采用圖建模的方式,程序可以首先找到代表該人物的圖頂點(diǎn),然后通過(guò)一次頂點(diǎn)內(nèi)的訪問(wèn)獲得其所有鄰居。而在關(guān)系數(shù)據(jù)庫(kù)中,需要將朋友關(guān)系表與人物表進(jìn)行一次內(nèi)聯(lián)結(jié)才能達(dá)到相同目的。當(dāng)然,用戶(hù)可以選擇對(duì)朋友關(guān)系表中的外鍵來(lái)加速這一過(guò)程,但這又勢(shì)必會(huì)帶來(lái)了額外開(kāi)銷(xiāo)。

    無(wú)論是在單機(jī)的多核計(jì)算處理器上,還是在分布式環(huán)境中的多機(jī)多處理器環(huán)境下,對(duì)并行計(jì)算是否友好都已經(jīng)成為衡量一個(gè)模型好壞的重要標(biāo)準(zhǔn)。在圖模型的領(lǐng)域,以頂點(diǎn)為中心的計(jì)算模型因?yàn)樗暮?jiǎn)單性、可擴(kuò)展性和靈活性而被廣泛地采用。在以頂點(diǎn)為中心的計(jì)算模型中,每個(gè)頂點(diǎn)都可以成為最細(xì)粒度的計(jì)算單元,一個(gè)或者多個(gè)頂點(diǎn)的計(jì)算工作可以由同一個(gè)操作系統(tǒng)線程或進(jìn)程負(fù)責(zé),以頂點(diǎn)為中心的計(jì)算模型可以將工作量自然地切割,并且適用于同步和異步、集中式和分布式的計(jì)算模型。

    2.2 圖數(shù)據(jù)庫(kù)面臨的挑戰(zhàn)

    傳統(tǒng)的圖數(shù)據(jù)庫(kù)面臨可用性與可擴(kuò)展性[7]之間的博弈。傳統(tǒng)圖數(shù)據(jù)庫(kù)可以粗略地分為以下3類(lèi):

    (1)基于磁盤(pán)存儲(chǔ)的單機(jī)實(shí)現(xiàn)

    已有的借助磁盤(pán)存儲(chǔ)空間的單機(jī)圖數(shù)據(jù)庫(kù),雖然能夠在假設(shè)磁盤(pán)空間沒(méi)有限制的前提下,克服數(shù)據(jù)的規(guī)模問(wèn)題。根據(jù)程序訪問(wèn)局部性原理,這類(lèi)圖數(shù)據(jù)庫(kù)也可以在內(nèi)存中緩存適量的緩存,以期減少數(shù)據(jù)訪問(wèn)的開(kāi)銷(xiāo)。然而,圖應(yīng)用的隨機(jī)訪問(wèn)性質(zhì)決定了程序在圖中對(duì)頂點(diǎn)的訪問(wèn)呈現(xiàn)隨機(jī)的特征,因此難以找到一種簡(jiǎn)單通用的緩存算法來(lái)加速數(shù)據(jù)訪問(wèn)。而大量的隨機(jī)讀寫(xiě)是對(duì)磁盤(pán)訪問(wèn)速度的災(zāi)難。因此,基于磁盤(pán)的解決方案會(huì)帶來(lái)不能接受的性能問(wèn)題。

    (2)基于MapReduce/Hadoop的實(shí)現(xiàn)

    這類(lèi)實(shí)現(xiàn)的典型代表為PEGASUS[8],一個(gè)基于Hadoop的分布式圖信息挖掘系統(tǒng)。Hadoop對(duì)應(yīng)Google的分布式計(jì)算框架MapReduce[9],它的文件系統(tǒng)HFS(Hadoop File System)對(duì)應(yīng)于MapReduce的GFS(Google File System)[10]。圖數(shù)據(jù)以文件的形式存放在HFS中。雖然這類(lèi)實(shí)現(xiàn)在可擴(kuò)展性和容錯(cuò)性方面得到了保證,但是Hadoop的計(jì)算模型與圖數(shù)據(jù)上的計(jì)算需求并不完全匹配。Hadoop的作業(yè)調(diào)度與任務(wù)分配要求對(duì)數(shù)據(jù)的反復(fù)讀寫(xiě),這造成了同樣的圖信息被反復(fù)地在磁盤(pán)中讀寫(xiě),增加了系統(tǒng)的 I/O開(kāi)銷(xiāo)。另外,為離線數(shù)據(jù)分析而設(shè)計(jì)的Hadoop也不能滿(mǎn)足對(duì)反應(yīng)時(shí)間具有更高要求的在線圖數(shù)據(jù)查詢(xún)需求。

    (3)基于分布式和列式存儲(chǔ)的實(shí)現(xiàn)

    在MapReduce后,Google相繼推出了基于GFS的列存儲(chǔ)引擎BigTable[11]以及Dremel[12]。這類(lèi)列式儲(chǔ)引擎將數(shù)據(jù)的不同維度(列)單獨(dú)存儲(chǔ),并且可以靈活地根據(jù)數(shù)據(jù)的使用頻率,將某些常用維度的數(shù)據(jù)配置在內(nèi)存中,以減少磁盤(pán)I/O,提高讀寫(xiě)性能。列式存儲(chǔ)需要對(duì)數(shù)據(jù)模型具有嚴(yán)格定義。在圖數(shù)據(jù)中,使用鄰接表來(lái)表示頂點(diǎn)間的關(guān)系。鄰接表的一個(gè)基本性質(zhì)是其長(zhǎng)度可變,而像BigTable這樣的列式存儲(chǔ)引擎對(duì)這一性質(zhì)并無(wú)很好的支持??勺冮L(zhǎng)、可嵌套、可重復(fù)的列成員在Dremel中被引入,但是由于Dremel是一個(gè)只讀的交互式在線分析系統(tǒng),圖數(shù)據(jù)的頂點(diǎn)增加/刪除、關(guān)系的增加/刪除就無(wú)法被支持。

    3 基于分布式內(nèi)存云的圖引擎存儲(chǔ)解決方案

    3.1 分布式內(nèi)存云引擎——Trinity

    Trinity是微軟亞洲研究院設(shè)計(jì)并實(shí)現(xiàn)的服務(wù)于云計(jì)算的一款輕量的高性能分布式內(nèi)存Key-Value存儲(chǔ)引擎[13]。在Trinity系統(tǒng)中,所有數(shù)據(jù)都被保存在內(nèi)存云中,因此能夠支撐每秒數(shù)百萬(wàn)次的隨機(jī)讀寫(xiě)。另外,Trinity支持通過(guò)配置服務(wù)器集群的方式,靈活地調(diào)整系統(tǒng)的服務(wù)能力[14]。Trinity向客戶(hù)端提供以下統(tǒng)一接口:

    Trinity作為一個(gè)Key-Value存儲(chǔ)引擎,其中的Key僅限長(zhǎng)整數(shù)類(lèi)型,而Value則是一段不定長(zhǎng)的字節(jié)數(shù)組,稱(chēng)為BLOB。因此,Trinity可以看作是一個(gè)long->BLOB的Key-Value存儲(chǔ)引擎。

    從單機(jī)角度觀察,Trinity在啟動(dòng)時(shí)向操作系統(tǒng)申請(qǐng)大塊的內(nèi)存,用以對(duì) BLOB進(jìn)行動(dòng)態(tài)儲(chǔ)存。Trinity封裝了高效的內(nèi)存管理模塊,可以進(jìn)行高效的垃圾收集和內(nèi)存清理。另外,Trinity提供細(xì)粒度的鎖機(jī)制,保證對(duì)于單個(gè)鍵值對(duì)的修改是原子的。從集群角度觀察,每個(gè)Trinity的服務(wù)器實(shí)例負(fù)責(zé)維護(hù)一批BLOB,Trinity系統(tǒng)通過(guò)對(duì)Key的哈希對(duì)不同BLOB進(jìn)行分割。各個(gè)實(shí)例之間由高速以太網(wǎng)互聯(lián)。

    3.2 在BLOB上的圖頂點(diǎn)建模

    Trinity中的每個(gè)BOLB都是獨(dú)立的個(gè)體,彼此之間互相獨(dú)立,且每個(gè)BLOB擁有全局唯一的長(zhǎng)整數(shù)標(biāo)識(shí)符。在BLOB的不同區(qū)間段內(nèi)存儲(chǔ)不同的信息,可以自然地將BLOB隱射成圖數(shù)據(jù)中的頂點(diǎn),如圖1所示。每個(gè)頂點(diǎn)中存儲(chǔ)的信息可以分為兩部分:屬性和邊。然而,BLOB只是簡(jiǎn)單的字節(jié)數(shù)組,無(wú)法為上層應(yīng)用提供更多數(shù)據(jù)格式的信息。因此,需要在BLOB上搭建數(shù)據(jù)訪問(wèn)層,以便上層圖處理程序能夠有效獲得感興趣的圖信息。

    圖1 每個(gè)BLOB視作一個(gè)圖頂點(diǎn)的情況

    圖的應(yīng)用千變?nèi)f化,對(duì)圖頂點(diǎn)和邊的定義也會(huì)存在巨大差異。例如,一個(gè)典型社交網(wǎng)絡(luò)可能需要定義人物這樣的圖頂點(diǎn),也需要把人物和人物之間的關(guān)系定義為圖中的邊。而在一個(gè)語(yǔ)義Web的圖應(yīng)用中,用戶(hù)可能更希望將任意的主語(yǔ)和賓語(yǔ)定義為圖頂點(diǎn),而將謂詞定義為圖中的關(guān)系??偠灾?一個(gè)通用的圖引擎無(wú)法提前預(yù)知圖應(yīng)用所需的數(shù)據(jù)結(jié)構(gòu),因此允許用戶(hù)提前對(duì)圖的結(jié)構(gòu)進(jìn)行定義。例如,社交網(wǎng)絡(luò)中的人物頂點(diǎn)可以由以下語(yǔ)句定義:

    根據(jù)定義,所有人物頂點(diǎn)的實(shí)例都由一個(gè)整數(shù)記錄其年齡,一個(gè)字符串記錄其姓名,還有一個(gè)可變長(zhǎng)的長(zhǎng)整數(shù)容器記錄其所有朋友的標(biāo)識(shí)符。對(duì)頂點(diǎn)的定義模仿了面向?qū)ο笳Z(yǔ)言(例如Java)中對(duì)類(lèi)的定義。然而,在實(shí)際存儲(chǔ)方式上卻完全不同。在面向?qū)ο笳Z(yǔ)言中,對(duì)象只保存各個(gè)非基本類(lèi)型成員的引用,成員具體的內(nèi)容保存在堆上,其物理地址并不一定相鄰。而在實(shí)現(xiàn)中,由于需要將圖頂點(diǎn)所有的信息保存到一段BLOB中,成員會(huì)按序依次排列,所有成員在存儲(chǔ)邏輯地址上是保證相鄰的,稱(chēng)為線性排列。

    采用基于BLOB的線性排列,而不采用類(lèi)似于面向?qū)ο笳Z(yǔ)言基于堆的儲(chǔ)存方式的主要原因有以下2個(gè)方面:

    (1)前者相對(duì)于后者更具空間優(yōu)勢(shì)。為了克服傳統(tǒng)圖數(shù)據(jù)庫(kù)在可用性上的瓶頸,達(dá)到最高效的訪問(wèn)速度來(lái)適應(yīng)圖的隨機(jī)訪問(wèn)性質(zhì),考慮將大部分的圖數(shù)據(jù)放入內(nèi)存中。盡管采用分布式的內(nèi)存云引擎作為底層存儲(chǔ),但是考慮到內(nèi)存云的代價(jià),更經(jīng)濟(jì)有效地利用內(nèi)存空間仍然具有重要的意義。以對(duì)象為單元存儲(chǔ)圖頂點(diǎn),涉及到引用類(lèi)型的開(kāi)銷(xiāo),以及對(duì)象本身的開(kāi)銷(xiāo)(例如對(duì)象上的鎖)等。事實(shí)上,在64 bit.NET平臺(tái)上,一個(gè)空對(duì)象也需要占據(jù)12 Byte的空間。因此,以BLOB的形式存儲(chǔ)圖頂點(diǎn)更具空間優(yōu)勢(shì)。

    (2)以BLOB形式存儲(chǔ)的節(jié)點(diǎn)更有利于在分布式環(huán)境中分發(fā)傳送。在不同機(jī)器間傳送對(duì)象,需要首先在發(fā)送端將對(duì)象序列化成字節(jié)序列,然后通過(guò)網(wǎng)絡(luò)傳送至接收端,并由接收端負(fù)責(zé)將字節(jié)序列反序列化成對(duì)象,單個(gè)對(duì)象的序列化和反序列化的開(kāi)銷(xiāo)可能難以察覺(jué),但是在大型的圖應(yīng)用中,通常需要在不同機(jī)器間傳輸成千上萬(wàn)的圖頂點(diǎn)。在這種情況下,序列化和反序列化的代價(jià)就變得十分顯著。然而,基于BLOB的儲(chǔ)存形式無(wú)需經(jīng)歷序列化和反序列化的過(guò)程,BLOB本身就是字節(jié)數(shù)組,可以直接在網(wǎng)絡(luò)上傳輸。

    3.3 具體實(shí)現(xiàn)

    為了能夠用方便的接口讀寫(xiě)B(tài)LOB中的數(shù)據(jù),需要將用戶(hù)定義的圖頂點(diǎn)類(lèi)型編譯并生成相應(yīng)的訪問(wèn)器。

    3.3.1 訪問(wèn)器類(lèi)的生成

    對(duì)于每種類(lèi)型的圖頂點(diǎn),為它的每一個(gè)成員分配一個(gè)訪問(wèn)器。根據(jù)成員的長(zhǎng)度是否固定,訪問(wèn)器又可以細(xì)分為定長(zhǎng)訪問(wèn)器和變長(zhǎng)訪問(wèn)器。定長(zhǎng)訪問(wèn)器適用于對(duì)基本類(lèi)型成員的訪問(wèn),而可變長(zhǎng)的成員如字符串、線性容器等需要由變長(zhǎng)訪問(wèn)器來(lái)訪問(wèn)。例如人物頂點(diǎn)中,由于age成員占據(jù)固定4 Byte的空間,因此只需分配一個(gè)定長(zhǎng)訪問(wèn)器IntegerAccessor來(lái)訪問(wèn)它,而對(duì)于name成員來(lái)說(shuō),由于無(wú)法提前確定該字符串的長(zhǎng)度,使用變長(zhǎng)訪問(wèn)器StringAccessor訪問(wèn)它。同理,成員friends的類(lèi)型是長(zhǎng)整數(shù)線性表,也需要生成一個(gè)變長(zhǎng)訪問(wèn)器LongListAccessor才能訪問(wèn)它。

    可以看到,對(duì)于每種成員類(lèi)型,需要為其生成對(duì)應(yīng)的訪問(wèn)器類(lèi)型。已知的最大規(guī)模圖應(yīng)用需要定義數(shù)千種頂點(diǎn)類(lèi)型,但是由于不同頂點(diǎn)類(lèi)型的成員類(lèi)型存在大量重復(fù),例如同樣的StringAccessor適用于任何擁有字符串成員的頂點(diǎn)類(lèi)型,因此訪問(wèn)器類(lèi)型的種類(lèi)數(shù)目反而不是很多。訪問(wèn)器訪問(wèn)BLOB內(nèi)數(shù)據(jù)的方式如圖2所示。

    圖2 使用訪問(wèn)器的BLOB數(shù)據(jù)訪問(wèn)

    在初始化訪問(wèn)器實(shí)例時(shí),傳入成員的指針,以便訪問(wèn)器知道成員從何開(kāi)始。對(duì)與定長(zhǎng)訪問(wèn)器而言,無(wú)需額外的信息,即可了解數(shù)據(jù)存放的格式。例如,如果在給定開(kāi)始指針之后,一個(gè)IntegerAccessor就明白在開(kāi)始指針之后的4 Byte就是需要訪問(wèn)的整數(shù)數(shù)據(jù)。而對(duì)于變長(zhǎng)訪問(wèn)器而言,需要借助一些輔助信息才能夠確定數(shù)據(jù)的格式。例如,對(duì)于所有簡(jiǎn)單數(shù)據(jù)類(lèi)型的線性表容器,如List<long>類(lèi)型,在成員的開(kāi)始用一個(gè)整數(shù)的空間存放該容器的大小,當(dāng)一個(gè)LongListAccessor訪問(wèn)這個(gè)成員時(shí),首先讀取首部4 Byte的容器大小信息,然后將指針向后偏移4 Byte,才開(kāi)始真正訪問(wèn)數(shù)據(jù)。

    3.3.2 動(dòng)態(tài)容器擴(kuò)容的支持

    圖應(yīng)用的數(shù)據(jù)處于經(jīng)常性的變化之中。社交網(wǎng)絡(luò)中的人物隨時(shí)會(huì)增加新的好友關(guān)系,同時(shí)也有可能解除原有的好友關(guān)系。因此,可支持動(dòng)態(tài)增減的容器類(lèi)型不可或缺。由于本文設(shè)計(jì)一個(gè)圖頂點(diǎn)所有的數(shù)據(jù)順序存放在一個(gè)固定大小的字節(jié)數(shù)組中,因此任何一個(gè)容器的擴(kuò)容都有可能導(dǎo)致空間不足??梢杂^察到,在圖2中,BLOB的尾端有一部分不屬于任何成員的空間,稱(chēng)為緩沖區(qū)。當(dāng)任何一個(gè)容器試圖擴(kuò)容,請(qǐng)求更多的空間時(shí),如果緩沖區(qū)的大小足夠,那么該擴(kuò)容請(qǐng)求可以通過(guò)簡(jiǎn)單的向后生長(zhǎng)來(lái)實(shí)現(xiàn)。如圖3所示。如果緩沖區(qū)的大小不足以支持當(dāng)前的擴(kuò)容請(qǐng)求,那么需要向Trinity系統(tǒng)申請(qǐng)一塊更大的內(nèi)存區(qū)間來(lái)存放擴(kuò)容后的新數(shù)據(jù),同時(shí)把原有的內(nèi)存區(qū)間標(biāo)記為廢棄,以便Trinity內(nèi)置的內(nèi)存垃圾收集器能夠回收利用。

    圖3 容器擴(kuò)容

    3.3.3 嵌套支持

    為向圖應(yīng)用提供更豐富的建模工具,允許用戶(hù)自行定義除了圖頂點(diǎn)之外的結(jié)構(gòu)體,并允許在圖頂點(diǎn)的定義中直接嵌套使用它。以社交網(wǎng)絡(luò)中的人物為例,如果對(duì)于每個(gè)好友,不僅希望保存他的標(biāo)識(shí)符,還希望保存對(duì)各個(gè)不同好友的備注簽名,那么可以將好友關(guān)系定義為一個(gè)特定結(jié)構(gòu)體,在這個(gè)結(jié)構(gòu)體中分別記錄好友的標(biāo)識(shí)符和對(duì)好友的備注簽名,這種情況下人物的朋友成員可以按以下方式定義:

    在存儲(chǔ)上,結(jié)構(gòu)體會(huì)以和基本類(lèi)型相似的方式,順序保存在BLOB中。不同的是,系統(tǒng)會(huì)為每個(gè)結(jié)構(gòu)體生成特別的訪問(wèn)器,保證結(jié)構(gòu)體能被正確地讀寫(xiě)。另外,結(jié)構(gòu)體的引入增加了成員內(nèi)存管理的復(fù)雜度,為了支持嵌套成員的擴(kuò)容和縮減,每個(gè)成員都需要保存其上層成員的Resize函數(shù)指針,在需要擴(kuò)容或縮減時(shí),各個(gè)成員遞歸地調(diào)用Resize方法,直到傳遞到最終能夠處理該事件的圖頂點(diǎn)自身。對(duì)于好友關(guān)系中的備注簽名成員alias,如果希望將其修改成更長(zhǎng)的字符串,就需要向上遞歸地調(diào)用結(jié)構(gòu)體Friendship、容器FriendshipList以及圖頂點(diǎn)Person的Resize函數(shù)。該過(guò)程如圖4所示。

    圖4 遞歸調(diào)用Resize方法

    4 實(shí)驗(yàn)結(jié)果與分析

    基于分布式內(nèi)存云的圖引擎存儲(chǔ)解決方案,首先借助內(nèi)存云的優(yōu)良擴(kuò)展性,解決了可擴(kuò)展性的問(wèn)題,能夠?qū)A繄D數(shù)據(jù)的存儲(chǔ)和計(jì)算提供較好的支持。在實(shí)驗(yàn)中,將RDF(Resource Description Framework)數(shù)據(jù)集導(dǎo)入到圖引擎中。原數(shù)據(jù)集采用文本記錄,大小超過(guò)1 TB,擁有約110億條三元組,導(dǎo)入到圖引擎中共生成了30億個(gè)頂點(diǎn)、50億條邊。即使采用基于BLOB的緊湊內(nèi)存存儲(chǔ)結(jié)構(gòu),整個(gè)數(shù)據(jù)集仍然占用了480 GB左右的內(nèi)存。

    基于內(nèi)存的底層存儲(chǔ)對(duì)圖的隨機(jī)訪問(wèn)具有較好的支撐,因此圖引擎在可用性上體現(xiàn)出較大優(yōu)勢(shì)。圖5是對(duì)17個(gè)不同類(lèi)型的圖頂點(diǎn)成員進(jìn)行隨機(jī)訪問(wèn)所花費(fèi)的時(shí)間。橫坐標(biāo)從P01至P17分別代表不同的17種查詢(xún),縱坐標(biāo)表示所花費(fèi)時(shí)間。

    圖5 圖頂點(diǎn)成員隨機(jī)訪問(wèn)速度

    借助于性能優(yōu)異的底層存儲(chǔ)引擎,上層的圖引擎應(yīng)用能夠表現(xiàn)出更優(yōu)異的性能。分別使用8臺(tái)96 GB DDR3內(nèi)存的服務(wù)器存儲(chǔ)上文提到的RDF數(shù)據(jù)集,并使用高速路由InfiniteBand對(duì)服務(wù)器進(jìn)行互聯(lián),并使用子圖匹配算法對(duì)圖數(shù)據(jù)進(jìn)行子圖搜索。圖6刻畫(huà)了若干查詢(xún)的響應(yīng)速度,橫坐標(biāo)從Q1至Q7分別代表7個(gè)不同的插敘,縱坐標(biāo)即完成查詢(xún)的時(shí)間。

    圖6 圖查詢(xún)響應(yīng)速度

    由圖5、圖6可以看出,分布式內(nèi)存云引擎可以為圖引擎提供穩(wěn)定高效的底層數(shù)據(jù)訪問(wèn)。在此之上,圖引擎可以向客戶(hù)端提供幾十毫秒內(nèi)的查詢(xún)響應(yīng)時(shí)間,有助于客戶(hù)端高效快速地完成查詢(xún)?nèi)蝿?wù)。

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

    在大數(shù)據(jù)環(huán)境背景下,圖數(shù)據(jù)處理面對(duì)上億規(guī)模頂點(diǎn)的海量數(shù)據(jù)處理問(wèn)題。傳統(tǒng)的基于磁盤(pán)或者分布式文件系統(tǒng)的解決方案,在應(yīng)對(duì)圖應(yīng)用的大量隨機(jī)訪問(wèn)請(qǐng)求時(shí)存在性能瓶頸。本文基于分布式內(nèi)存云提出一種新穎的圖建模和存儲(chǔ)方案,可對(duì)上層圖應(yīng)用提供靈活高效的數(shù)據(jù)訪問(wèn)接口。實(shí)驗(yàn)結(jié)果表明,本文方案能夠?qū)崿F(xiàn)海量規(guī)模的圖數(shù)據(jù)處理。

    [1] Porta S,Crucitti P,Latora V.The Network Analysis of Urban Streets:A Dual Approach[J].Physica A: Statistical Mechanics and Its Applications,2006, 369(2):853-866.

    [2] Narin F.Evaluative Bibliometrics:The Use of Publication and Citation Analysis in the Evaluation of Scientific Activity[M].Cherry Hill,USA:Computer Horizons,1976.

    [3] Lawrence P.The PageRank Citation Ranking:Bringing Order to the Web[R].Stanford University,Technical Report:SIDL-WP-1999-0120,1999.

    [4] Wasserman S.SocialNetwork Analysis:Methodsand Applications[M].Cambridge,UK:Cambridge University Press,1994.

    [5] Mislove A.Measurement and Analysis of Online Social Networks[C]//Proceedings of the 7th ACM SIGCOMM Conference on Internet Measurement.New York,USA: ACM Press,2007:29-42.

    [6] Berners-Lee T,Hendler J,Lassila O.The Semantic Web[J].Scientific American,2001,284(5):28-37.

    [7] Ramakrishnan R,Gehrke J.Database Management Systems[M].[S.l.]:McGraw-Hill,2000.

    [8] Deelman E.Pegasus:A Framework for Mapping Complex Scientific Workflows onto Distributed Systems[J].Scientific Programming Journal,2005,13(3):219-237.

    [9] Dean J,Sanjay G.MapReduce:Simplified Data Processing on Large Clusters[J].Communications of the ACM,2008, 51(1):107-113.

    [10] Ghemawat S,Howard G,Leung Shun-Tak.The Google File System[J].ACM SIGOPS Operating Systems Review,2003,37(5):29-43.

    [11] Chang F.Bigtable:A Distributed Storage System for Structured Data[J].ACM Transactions on Computer Systems,2008,26(2):4-9.

    [12] Melnik S.Dremel:Interactive Analysis of Web-scale Datasets[J].Proceedings of the VLDB Endowment, 2010,3(1/2):330-339.

    [13] Shao Bin,Wang Haixun,Li Yatao.Trinity:A Distributed Graph Engine on a Memory Cloud[C]//Proceedings of 2013 ACM SIGMOD International Conference on Management of Data.New York,USA:ACM Press,2013:505-516.

    [14] 于 戈,谷 峪,鮑玉斌,等.云計(jì)算環(huán)境下的大規(guī)模圖數(shù)據(jù)處理技術(shù)[J].計(jì)算機(jī)學(xué)報(bào),2011,34(10): 1753-1768.

    編輯 陸燕菲

    Design and Implementation of Underlying Storage for Graph Engine

    MA Hongbin,CHEN Guihai
    (Department of Computer Science and Engineering,Shanghai Jiaotong University,Shanghai 200240,China)

    Graph applications rise with the emerging of social network and semantic Web,and generate many graph data processing products,including Neo4j,HyperGraphDB,etc.However,current solutions fail to take into consideration graph applications'higher requirements on data availability and scalability.This paper proposes a modeling and storage solution based on distributed memory cloud.It takes advantage of the prior work to build a key-value system over the memory cloud,then builds data modeling and read-write based on it.Experimental results on large scaled datasets show that this solution has a good figure random access performance,and it can support massive graph applications efficiently.

    graph processing;cloud computing;distributed;data modeling;storage;data structure

    1000-3428(2014)11-0060-05

    A

    TP311

    10.3969/j.issn.1000-3428.2014.11.012

    馬洪賓(1989-),男,碩士研究生,主研方向:數(shù)據(jù)查詢(xún)處理,分布式系統(tǒng),云計(jì)算;陳貴海,教授、博士生導(dǎo)師。

    2013-11-18

    2013-12-17E-mail:790123072@qq.com

    中文引用格式:馬洪賓,陳貴海.圖引擎底層存儲(chǔ)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2014,40(11):60-64.

    英文引用格式:Ma Hongbin,Chen Guihai.Design and Implementation of Underlying Storage for Graph Engine[J].Computer Engineering,2014,40(11):60-64.

    猜你喜歡
    引擎定義
    以學(xué)促干 挺膺擔(dān)當(dāng) 激活砥礪前行的紅色引擎
    永遠(yuǎn)不要用“起點(diǎn)”定義自己
    海峽姐妹(2020年9期)2021-01-04 01:35:44
    定義“風(fēng)格”
    三生 三大引擎齊發(fā)力
    藍(lán)谷: “涉藍(lán)”新引擎
    商周刊(2017年22期)2017-11-09 05:08:31
    成功的定義
    山東青年(2016年1期)2016-02-28 14:25:25
    無(wú)形的引擎
    河南電力(2015年5期)2015-06-08 06:01:46
    基于Cocos2d引擎的PuzzleGame開(kāi)發(fā)
    修辭學(xué)的重大定義
    山的定義
    欧美日韩精品网址| 亚洲av成人av| 天天添夜夜摸| 在线观看日韩欧美| 丰满人妻熟妇乱又伦精品不卡| 搞女人的毛片| 好男人电影高清在线观看| 宅男免费午夜| 欧美日韩乱码在线| 免费在线观看亚洲国产| 亚洲人成网站高清观看| h日本视频在线播放| 91av网一区二区| 国产精品日韩av在线免费观看| 欧美性感艳星| 最新中文字幕久久久久| 国内精品一区二区在线观看| 亚洲av二区三区四区| 欧美最新免费一区二区三区 | 国产私拍福利视频在线观看| 国产精品,欧美在线| АⅤ资源中文在线天堂| 国产成人福利小说| 免费看美女性在线毛片视频| 色播亚洲综合网| 桃红色精品国产亚洲av| 18美女黄网站色大片免费观看| 中国美女看黄片| 久久久国产成人免费| 一个人免费在线观看电影| 国产精品美女特级片免费视频播放器| 久久久久久久亚洲中文字幕 | 男人舔女人下体高潮全视频| 美女黄网站色视频| АⅤ资源中文在线天堂| 国产成年人精品一区二区| 久久国产精品影院| 在线天堂最新版资源| av中文乱码字幕在线| 精品人妻1区二区| 婷婷六月久久综合丁香| 国产三级黄色录像| 亚洲aⅴ乱码一区二区在线播放| 男人和女人高潮做爰伦理| 在线看三级毛片| 国产高清videossex| 久久久久久久亚洲中文字幕 | 午夜福利成人在线免费观看| 淫妇啪啪啪对白视频| 99热这里只有是精品50| 天堂影院成人在线观看| 国产 一区 欧美 日韩| 免费观看精品视频网站| 日韩欧美在线乱码| 亚洲中文日韩欧美视频| 老司机深夜福利视频在线观看| 三级男女做爰猛烈吃奶摸视频| 一个人看的www免费观看视频| 午夜福利在线观看免费完整高清在 | 久久久久国内视频| 内地一区二区视频在线| 国内精品一区二区在线观看| 久久精品国产自在天天线| 日本a在线网址| 免费看日本二区| 熟妇人妻久久中文字幕3abv| 国产三级在线视频| 亚洲av一区综合| 免费看日本二区| 精品久久久久久久人妻蜜臀av| 白带黄色成豆腐渣| 亚洲va日本ⅴa欧美va伊人久久| 亚洲精品在线美女| 午夜影院日韩av| 97人妻精品一区二区三区麻豆| av国产免费在线观看| 国产真人三级小视频在线观看| 丁香欧美五月| 亚洲美女视频黄频| 免费电影在线观看免费观看| 听说在线观看完整版免费高清| 亚洲五月天丁香| 久久久国产成人免费| 最新在线观看一区二区三区| 亚洲国产精品久久男人天堂| 脱女人内裤的视频| 欧美日韩国产亚洲二区| 黄色成人免费大全| 国内精品美女久久久久久| 啦啦啦免费观看视频1| 久久久久久久久久黄片| 91在线精品国自产拍蜜月 | 国产真人三级小视频在线观看| 欧美激情在线99| 亚洲国产中文字幕在线视频| 亚洲专区国产一区二区| 99热只有精品国产| 欧美色视频一区免费| av专区在线播放| 久久精品人妻少妇| 亚洲av日韩精品久久久久久密| 99久久精品国产亚洲精品| 搞女人的毛片| 热99在线观看视频| 一本久久中文字幕| 国产欧美日韩精品一区二区| 国产精品影院久久| 日韩欧美免费精品| 校园春色视频在线观看| 欧美日韩综合久久久久久 | 人妻夜夜爽99麻豆av| 国产精品三级大全| 日本撒尿小便嘘嘘汇集6| 国产免费男女视频| 在线观看一区二区三区| 桃红色精品国产亚洲av| 国产av麻豆久久久久久久| 欧美又色又爽又黄视频| 少妇裸体淫交视频免费看高清| 99久久综合精品五月天人人| 亚洲最大成人中文| 精品电影一区二区在线| av天堂在线播放| av欧美777| 欧美黄色片欧美黄色片| 变态另类丝袜制服| 国产精品久久久久久人妻精品电影| 精品熟女少妇八av免费久了| 久久精品国产99精品国产亚洲性色| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 在线免费观看不下载黄p国产 | 69av精品久久久久久| 成人av在线播放网站| 法律面前人人平等表现在哪些方面| 欧美+日韩+精品| eeuss影院久久| 最后的刺客免费高清国语| 亚洲专区国产一区二区| 亚洲精品色激情综合| 在线观看免费午夜福利视频| 午夜免费男女啪啪视频观看 | 国产 一区 欧美 日韩| 亚洲va日本ⅴa欧美va伊人久久| 男女那种视频在线观看| 亚洲精华国产精华精| 成人午夜高清在线视频| 在线看三级毛片| 国产欧美日韩精品一区二区| 午夜两性在线视频| 国产不卡一卡二| 日日干狠狠操夜夜爽| 欧美日韩一级在线毛片| 国产成人啪精品午夜网站| 欧美一级a爱片免费观看看| 欧美日本视频| 每晚都被弄得嗷嗷叫到高潮| 婷婷六月久久综合丁香| 欧美日韩乱码在线| 午夜激情福利司机影院| 制服人妻中文乱码| 黄色日韩在线| 国产一区在线观看成人免费| 99在线人妻在线中文字幕| 最近最新免费中文字幕在线| 欧美激情在线99| 国产中年淑女户外野战色| 91麻豆av在线| 亚洲av中文字字幕乱码综合| 午夜两性在线视频| 国产不卡一卡二| 国产精品精品国产色婷婷| a在线观看视频网站| 婷婷丁香在线五月| 午夜日韩欧美国产| 动漫黄色视频在线观看| 搡老岳熟女国产| 超碰av人人做人人爽久久 | 十八禁人妻一区二区| 日韩亚洲欧美综合| 免费看日本二区| 欧洲精品卡2卡3卡4卡5卡区| 中文字幕高清在线视频| av福利片在线观看| 亚洲国产精品999在线| 搡老妇女老女人老熟妇| 亚洲一区高清亚洲精品| 欧美+日韩+精品| 人人妻,人人澡人人爽秒播| 国产高清视频在线观看网站| 国产亚洲av嫩草精品影院| 色视频www国产| 狂野欧美激情性xxxx| 欧美中文日本在线观看视频| 最新在线观看一区二区三区| 91麻豆av在线| www.熟女人妻精品国产| 男女那种视频在线观看| 99精品在免费线老司机午夜| 亚洲av中文字字幕乱码综合| 91在线观看av| 免费看光身美女| 99视频精品全部免费 在线| 婷婷六月久久综合丁香| 免费看十八禁软件| 桃色一区二区三区在线观看| 亚洲精品乱码久久久v下载方式 | 久久久久久久久大av| 69人妻影院| 成年女人毛片免费观看观看9| 好看av亚洲va欧美ⅴa在| 日韩精品青青久久久久久| 亚洲精品色激情综合| 黄片大片在线免费观看| 成人18禁在线播放| 网址你懂的国产日韩在线| 午夜福利欧美成人| 欧美日韩乱码在线| 国产单亲对白刺激| 亚洲欧美日韩东京热| 亚洲精品色激情综合| 亚洲精品456在线播放app | 在线观看66精品国产| 成人特级av手机在线观看| 亚洲av不卡在线观看| 老熟妇仑乱视频hdxx| 成人午夜高清在线视频| 真人做人爱边吃奶动态| 草草在线视频免费看| 午夜激情福利司机影院| 国产亚洲精品久久久久久毛片| 听说在线观看完整版免费高清| 久久国产精品人妻蜜桃| 精品久久久久久,| 国产亚洲av嫩草精品影院| 日韩国内少妇激情av| 99在线人妻在线中文字幕| 女人被狂操c到高潮| 亚洲不卡免费看| 欧美一区二区亚洲| 欧美日韩福利视频一区二区| 亚洲在线自拍视频| 日本黄色视频三级网站网址| 国产精品免费一区二区三区在线| 久久性视频一级片| 99热这里只有是精品50| 两个人的视频大全免费| 麻豆国产97在线/欧美| 美女 人体艺术 gogo| 欧美乱码精品一区二区三区| 亚洲真实伦在线观看| 日本免费a在线| 精品日产1卡2卡| 在线观看免费视频日本深夜| www.999成人在线观看| 午夜激情福利司机影院| netflix在线观看网站| 18禁国产床啪视频网站| 欧美一级毛片孕妇| 亚洲 国产 在线| 琪琪午夜伦伦电影理论片6080| 蜜桃久久精品国产亚洲av| av天堂在线播放| 亚洲成av人片免费观看| 手机成人av网站| 亚洲狠狠婷婷综合久久图片| 夜夜躁狠狠躁天天躁| 亚洲片人在线观看| 国产精品亚洲av一区麻豆| 精品一区二区三区人妻视频| 一区二区三区免费毛片| 亚洲最大成人中文| 露出奶头的视频| 99热这里只有精品一区| 最好的美女福利视频网| 好男人在线观看高清免费视频| 婷婷亚洲欧美| 国内毛片毛片毛片毛片毛片| 丁香六月欧美| 国产精品久久久久久精品电影| 午夜老司机福利剧场| 中文字幕av在线有码专区| 久久婷婷人人爽人人干人人爱| 国产精品久久视频播放| 一级毛片高清免费大全| 色吧在线观看| 欧美成狂野欧美在线观看| 久久精品国产99精品国产亚洲性色| 国产麻豆成人av免费视频| 成人精品一区二区免费| 老汉色∧v一级毛片| 波多野结衣高清作品| 欧美成人一区二区免费高清观看| 国产aⅴ精品一区二区三区波| 成人特级黄色片久久久久久久| 国产高清视频在线观看网站| 午夜精品久久久久久毛片777| 在线播放无遮挡| 在线观看一区二区三区| 毛片女人毛片| 日日摸夜夜添夜夜添小说| 无遮挡黄片免费观看| 亚洲精华国产精华精| 中文字幕久久专区| 亚洲精品一区av在线观看| 天天躁日日操中文字幕| 啦啦啦韩国在线观看视频| 日韩欧美精品v在线| 国模一区二区三区四区视频| 99精品在免费线老司机午夜| 日韩欧美精品v在线| 俺也久久电影网| 国产亚洲精品综合一区在线观看| 男人舔女人下体高潮全视频| 1024手机看黄色片| 日本成人三级电影网站| 欧美激情在线99| 欧美+日韩+精品| 精品久久久久久久毛片微露脸| 日日夜夜操网爽| 97超视频在线观看视频| 天堂影院成人在线观看| 国产真人三级小视频在线观看| 国产美女午夜福利| 一区二区三区激情视频| 亚洲七黄色美女视频| 免费av观看视频| 99在线人妻在线中文字幕| xxx96com| 午夜免费观看网址| 尤物成人国产欧美一区二区三区| 久久这里只有精品中国| 一卡2卡三卡四卡精品乱码亚洲| 又粗又爽又猛毛片免费看| 亚洲成av人片免费观看| 欧美三级亚洲精品| 国产成人影院久久av| 一个人看的www免费观看视频| av视频在线观看入口| 国产探花极品一区二区| 深爱激情五月婷婷| 免费av观看视频| 国产高清激情床上av| 精品免费久久久久久久清纯| 亚洲av成人av| 日韩有码中文字幕| 国产精品亚洲美女久久久| 岛国视频午夜一区免费看| www.www免费av| 精品99又大又爽又粗少妇毛片 | 欧美日韩中文字幕国产精品一区二区三区| 午夜福利成人在线免费观看| 在线天堂最新版资源| 亚洲精品国产精品久久久不卡| 亚洲欧美精品综合久久99| 老汉色∧v一级毛片| 男女之事视频高清在线观看| 黑人欧美特级aaaaaa片| 最好的美女福利视频网| 桃红色精品国产亚洲av| 亚洲一区二区三区不卡视频| 欧美午夜高清在线| 非洲黑人性xxxx精品又粗又长| 99视频精品全部免费 在线| 舔av片在线| 真实男女啪啪啪动态图| 无遮挡黄片免费观看| 国产精品嫩草影院av在线观看 | 免费大片18禁| 中文字幕久久专区| 久久精品夜夜夜夜夜久久蜜豆| 国产真实乱freesex| 国产熟女xx| 国产精品98久久久久久宅男小说| 久久精品91蜜桃| 免费看十八禁软件| h日本视频在线播放| 综合色av麻豆| 精品久久久久久久久久久久久| 波多野结衣高清无吗| 禁无遮挡网站| 国产伦一二天堂av在线观看| 床上黄色一级片| 午夜精品一区二区三区免费看| 男女做爰动态图高潮gif福利片| 美女 人体艺术 gogo| 成人特级黄色片久久久久久久| 日日干狠狠操夜夜爽| 啦啦啦观看免费观看视频高清| 搡老岳熟女国产| 国产成人av教育| 黄色成人免费大全| 欧美性猛交╳xxx乱大交人| 国产高清videossex| 亚洲美女黄片视频| 1024手机看黄色片| 黄色日韩在线| 国产精品久久久久久人妻精品电影| 特级一级黄色大片| 18禁在线播放成人免费| 亚洲欧美日韩高清在线视频| 3wmmmm亚洲av在线观看| 欧美色视频一区免费| 少妇高潮的动态图| 噜噜噜噜噜久久久久久91| 久久久久久久亚洲中文字幕 | 成人三级黄色视频| 99在线视频只有这里精品首页| 变态另类成人亚洲欧美熟女| 国产高清有码在线观看视频| 99久久99久久久精品蜜桃| 国产免费av片在线观看野外av| 1024手机看黄色片| 老司机在亚洲福利影院| 久久久成人免费电影| 在线免费观看不下载黄p国产 | 精品99又大又爽又粗少妇毛片 | 国产精品电影一区二区三区| 午夜影院日韩av| 麻豆国产av国片精品| 国产探花极品一区二区| 国产一区二区亚洲精品在线观看| 午夜久久久久精精品| 国产成人系列免费观看| 黄色片一级片一级黄色片| 日韩中文字幕欧美一区二区| 国产高清有码在线观看视频| 久久久久久久亚洲中文字幕 | 少妇的逼好多水| 亚洲一区高清亚洲精品| 亚洲av成人不卡在线观看播放网| 日韩欧美精品免费久久 | 少妇熟女aⅴ在线视频| 色综合站精品国产| 亚洲av成人精品一区久久| 久久精品夜夜夜夜夜久久蜜豆| 国产亚洲欧美98| 欧美又色又爽又黄视频| 在线免费观看不下载黄p国产 | 日韩欧美国产在线观看| 中文字幕人成人乱码亚洲影| 一级黄片播放器| 国产爱豆传媒在线观看| 午夜免费激情av| 免费av不卡在线播放| 亚洲欧美日韩卡通动漫| 熟妇人妻久久中文字幕3abv| 嫩草影院精品99| 国产伦精品一区二区三区四那| 深夜精品福利| 欧美大码av| 一区福利在线观看| 99久久精品国产亚洲精品| 窝窝影院91人妻| 久久精品国产亚洲av香蕉五月| 真实男女啪啪啪动态图| 成年女人永久免费观看视频| 伊人久久精品亚洲午夜| 中国美女看黄片| 人妻夜夜爽99麻豆av| 欧美色欧美亚洲另类二区| 欧美av亚洲av综合av国产av| aaaaa片日本免费| 欧美+亚洲+日韩+国产| 一级作爱视频免费观看| 国产精品99久久99久久久不卡| 18禁美女被吸乳视频| 国产成+人综合+亚洲专区| 琪琪午夜伦伦电影理论片6080| 黑人欧美特级aaaaaa片| 亚洲片人在线观看| 午夜福利成人在线免费观看| 日本与韩国留学比较| 日本一二三区视频观看| 欧美精品啪啪一区二区三区| 天天添夜夜摸| 国产激情偷乱视频一区二区| 99精品欧美一区二区三区四区| 精品久久久久久久久久久久久| 国内揄拍国产精品人妻在线| 国产v大片淫在线免费观看| 2021天堂中文幕一二区在线观| 51国产日韩欧美| 久久久久久九九精品二区国产| 亚洲成av人片免费观看| 国产亚洲精品久久久久久毛片| 亚洲五月天丁香| 在线观看66精品国产| 国产高清有码在线观看视频| 国产精品亚洲美女久久久| 免费大片18禁| 国产免费男女视频| а√天堂www在线а√下载| 内射极品少妇av片p| 18禁在线播放成人免费| 亚洲国产日韩欧美精品在线观看 | 国产在线精品亚洲第一网站| 美女黄网站色视频| 亚洲天堂国产精品一区在线| 久久精品夜夜夜夜夜久久蜜豆| 国产精品久久久久久久久免 | 亚洲av二区三区四区| 日本 欧美在线| 色老头精品视频在线观看| 欧美一区二区亚洲| 精品国内亚洲2022精品成人| 日韩欧美三级三区| 久久国产精品人妻蜜桃| 亚洲精品色激情综合| 亚洲人成网站高清观看| 丰满的人妻完整版| 国产成人啪精品午夜网站| 国产不卡一卡二| 精品久久久久久成人av| 国产国拍精品亚洲av在线观看 | 在线免费观看的www视频| 窝窝影院91人妻| 免费大片18禁| 国产亚洲精品久久久久久毛片| 国产麻豆成人av免费视频| 国产精品香港三级国产av潘金莲| 成人欧美大片| 夜夜爽天天搞| 欧美+亚洲+日韩+国产| 法律面前人人平等表现在哪些方面| 床上黄色一级片| 欧美激情久久久久久爽电影| 99精品久久久久人妻精品| 国产一区在线观看成人免费| 国产精品电影一区二区三区| 91久久精品国产一区二区成人 | 麻豆国产97在线/欧美| 制服人妻中文乱码| 亚洲欧美日韩无卡精品| 欧美丝袜亚洲另类 | 啦啦啦韩国在线观看视频| 亚洲精品国产精品久久久不卡| 波多野结衣巨乳人妻| 久久精品综合一区二区三区| 色综合婷婷激情| 久久久精品欧美日韩精品| 国产伦在线观看视频一区| 亚洲欧美一区二区三区黑人| www日本在线高清视频| 99久久无色码亚洲精品果冻| 欧美日韩综合久久久久久 | 婷婷精品国产亚洲av| 最后的刺客免费高清国语| 动漫黄色视频在线观看| 精品一区二区三区视频在线 | 亚洲成人久久爱视频| 久久久久亚洲av毛片大全| 非洲黑人性xxxx精品又粗又长| 国产三级在线视频| 精品午夜福利视频在线观看一区| 美女免费视频网站| 欧美另类亚洲清纯唯美| 他把我摸到了高潮在线观看| 亚洲人成网站高清观看| 女生性感内裤真人,穿戴方法视频| 18+在线观看网站| 在线观看美女被高潮喷水网站 | 中文字幕高清在线视频| 深爱激情五月婷婷| 成人国产综合亚洲| 久久久久久九九精品二区国产| 国产精品久久视频播放| 99视频精品全部免费 在线| av女优亚洲男人天堂| 午夜免费成人在线视频| 欧美成人免费av一区二区三区| 日本 av在线| 国产色爽女视频免费观看| 哪里可以看免费的av片| 亚洲午夜理论影院| 搡老妇女老女人老熟妇| 波野结衣二区三区在线 | 99久久精品一区二区三区| 乱人视频在线观看| 欧美激情久久久久久爽电影| 国模一区二区三区四区视频| 999久久久精品免费观看国产| 99精品久久久久人妻精品| 午夜免费成人在线视频| 成熟少妇高潮喷水视频| 国产精品一及| 国产精品野战在线观看| 超碰av人人做人人爽久久 | 国产一区在线观看成人免费| 成人鲁丝片一二三区免费| 日韩 欧美 亚洲 中文字幕| 久久人妻av系列| av欧美777| 色综合欧美亚洲国产小说| 国产不卡一卡二| 国产高清三级在线| 久久久久久久午夜电影| 免费看光身美女| www.www免费av| 国内少妇人妻偷人精品xxx网站| 欧美色欧美亚洲另类二区| 国产一区二区在线观看日韩 | 欧美一区二区精品小视频在线| 欧美黄色淫秽网站| 国产蜜桃级精品一区二区三区| 国内精品久久久久精免费| 国产一区二区三区在线臀色熟女| 757午夜福利合集在线观看| a在线观看视频网站| 精品人妻偷拍中文字幕| 少妇的丰满在线观看| 国产精品久久久久久精品电影| 国产探花在线观看一区二区| av在线天堂中文字幕| 亚洲精品一卡2卡三卡4卡5卡| 日韩亚洲欧美综合|