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

    分布式環(huán)境下大規(guī)模移動對象范圍查詢算法

    2023-02-03 03:01:42馬永強陳曉萌于自強
    計算機應(yīng)用 2023年1期
    關(guān)鍵詞:四叉樹單元格分布式

    馬永強,陳曉萌,于自強*

    (1.自然資源部城市國土資源監(jiān)測與仿真重點實驗室,廣東 深圳 518034;2.煙臺大學(xué) 計算機與控制工程學(xué)院,山東 煙臺 264005)

    0 引言

    移動對象查詢問題近年來被廣泛研究[1]。本文研究的移動對象連續(xù)范圍查詢是指給定一個移動對象集合O、一個查詢點qi及其查詢范圍sqi,查詢范圍內(nèi)的移動對象,并隨著移動對象和查詢點的不斷移動,對qi的查詢結(jié)果進行連續(xù)更新。大規(guī)模移動對象的連續(xù)范圍查詢是許多基于位置服務(wù)的核心問題。例如,打車軟件為查找附近的出租車,此時用戶和出租車可以分別被視為查詢點和移動對象?,F(xiàn)實中,打車軟件通常需要為移動的用戶持續(xù)更新周圍的出租車,其本質(zhì)是以用戶為查詢點的移動對象連續(xù)范圍查詢。

    近年來,盡管移動對象范圍查詢已經(jīng)被大量研究,但仍存在以下問題亟待解決。

    在索引結(jié)構(gòu)方面,已有工作通常設(shè)計基于R-tree 索引結(jié)構(gòu)或網(wǎng)格索引結(jié)構(gòu)的移動對象范圍查詢算法。R-tree 索引[2-3]結(jié)構(gòu)雖然能夠有效支持移動對象范圍查詢,但是由于樹型結(jié)構(gòu)整體性較強,且維護代價較高,難以直接部署到服務(wù)器集群的分布式計算環(huán)境中。網(wǎng)格索引結(jié)構(gòu)[4-8]雖然易于部署到基于服務(wù)器集群的分布式計算環(huán)境中,但是面對范圍查詢時,剪枝能力有待加強,主要體現(xiàn)在處理與范圍查詢部分重疊的單元格時,仍然需要對該單元格內(nèi)所有移動對象進行判斷以確定它們是否被查詢范圍覆蓋。當(dāng)并發(fā)查詢數(shù)量大、單元格內(nèi)移動對象較多時,處理大量類似單元格將消耗大量的計算資源。例如,圖1(a),查詢qi的查詢范圍與8 個單元格部分相交,此時就需要對8 個單元格內(nèi)所有移動對象進行遍歷,查詢效率有待提高。

    在計算模式方面,已有絕大多數(shù)范圍查詢相關(guān)工作[9-12]都是針對單個計算節(jié)點設(shè)計的集中式查詢算法,然而,現(xiàn)實中基于位置服務(wù)通常需要在短時間內(nèi)處理大量并發(fā)的移動對象范圍查詢。此時,集中式查詢算法受限于單個計算節(jié)點的計算資源,難以高效處理大規(guī)模并發(fā)的移動對象范圍查詢,而本文設(shè)計基于服務(wù)器集群的分布式查詢算法(Distributed Search Algorithm,DSA)是解決這一問題的有效方案。

    針對上述問題,本文研究分布式環(huán)境下移動對象范圍查詢算法。目前,已有相關(guān)工作對分布式環(huán)境下的移動對象范圍問題進行研究[13-15],這些工作是將移動對象看作移動重點,通常是將每個移動對象看作一個移動計算終端,這些移動終端和數(shù)據(jù)中心構(gòu)成一個偏向邊緣計算的分布式計算環(huán)境,這與本文基于服務(wù)器集群的分布式計算環(huán)境截然不同。首先,這種偏向邊緣計算的分布式模式是將大量的計算分配到移動終端,移動終端與數(shù)據(jù)中心較大的通信代價是衡量系統(tǒng)性能的主要指標(biāo);本文的分布式計算模式是將同一查詢的計算任務(wù)均衡地分配給多個服務(wù)器并行處理,服務(wù)器之間的通信代價較小,計算代價是主要考慮的性能因素。其次,偏向邊緣計算的分布式計算模式要求移動終端具有較強的計算算力,一定限度上限制了該算法在現(xiàn)實中一些低計算性能終端(如車載GPS)上的應(yīng)用;本文的分布式計算模式僅要求移動對象能夠發(fā)送當(dāng)前位置即可,絕大多數(shù)移動對象均具備這一功能。

    針對上述問題,本文首先提出一種由網(wǎng)格索引和動態(tài)四叉樹索引構(gòu)成的移動對象分布式動態(tài)索引(Distributed Dynamic Index,DDI)結(jié)構(gòu)。該索引結(jié)構(gòu)首先將整個查詢區(qū)域劃分為n×n個大小相等的單元格,每個單元格記錄它所包含的移動對象;每個單元格相互獨立,可以部署到多個不同物理計算節(jié)點上。為增強網(wǎng)格索引的剪枝能力,當(dāng)一個單元格內(nèi)的移動對象數(shù)量超過閾值α,則為該單元格構(gòu)建一棵動態(tài)四叉樹。動態(tài)四叉樹的構(gòu)建原則是將整個單元格看作根節(jié)點,當(dāng)一個節(jié)點內(nèi)的移動對象數(shù)量大于α?xí)r,則為該節(jié)點增加4 個孩子節(jié)點,單元格內(nèi)的移動對象保存在四叉樹的葉子節(jié)點中;若具有同一父節(jié)點的4 個葉子節(jié)點的移動對象數(shù)量之和小于α,則刪除該4 個葉子節(jié)點,其父節(jié)點變?yōu)楹⒆庸?jié)點。隨著移動對象的位置變化,每個單元格的四叉樹深度動態(tài)調(diào)整,從而獲得合適的索引粒度。本文提出的DDI 結(jié)構(gòu)能夠有效增強針對范圍查詢的剪枝效力。圖1(b)中,查詢qi的查詢范圍覆蓋單元格c7,可直接將c7內(nèi)所有移動對象作為qi的部分查詢結(jié)果;對于查詢qi所涉及的其他單元格(除c7以外),則遍歷每個單元格對應(yīng)的四叉樹索引結(jié)構(gòu)。此時,查找這些單元格中被查詢qi覆蓋的移動對象時,不必再遍歷這些單元格中所有移動對象,而是對每個單元格對應(yīng)四叉樹中不同層級的節(jié)點進行搜索,即可快速得到被查詢范圍覆蓋的移動對象,顯著提高查詢效率。

    圖1 DDI結(jié)構(gòu)Fig.1 DDI structure

    由于DDI 結(jié)構(gòu)中各個單元格之間相互獨立,因此整個索引結(jié)構(gòu)易于部署到采用Master-Worker 架構(gòu)的分布式計算環(huán)境中?;贒DI 結(jié)構(gòu),本文進一步提出了一種針對范圍查詢的分布式查詢算法(DSA)。該算法將每個范圍查詢分解為多個單元格上的子查詢,這些子查詢可以由多個計算節(jié)點并行計算,從而提高查詢效率。對范圍查詢進行連續(xù)搜索時,DSA 盡可能利用該查詢上一時刻已有結(jié)果增量計算當(dāng)前時刻最新結(jié)果。此外,每個計算節(jié)點采取一種共享計算機制,對其處理的涉及相同查詢區(qū)域的多個并發(fā)范圍查詢共享計算結(jié)果,進一步降低計算代價。

    本文的主要工作如下:

    1)提出一種基于網(wǎng)格索引和彈性四叉樹的移動對象分布式動態(tài)索引結(jié)構(gòu)DDI,它易于部署到分布式計算環(huán)境下,并且能夠根據(jù)移動對象的分布密度動態(tài)調(diào)整每個單元格的索引粒度,具有更強的剪枝能力。

    2)提出一種面向大規(guī)模移動對象并發(fā)范圍查詢的分布式搜索算法DSA,并設(shè)計了面向連續(xù)范圍查詢的增量搜索和共享計算策略,該算法具有良好的可擴展性。

    3)將所提算法部署到流數(shù)據(jù)分布式計算平臺Storm 上,并在實驗中與NS(Naive Search)、GI(Grid Index)和分布式混合索引(DHI)進行對比,評估本文所提出方法的性能。

    1 相關(guān)工作

    移動對象的范圍查詢作為基于位置服務(wù)領(lǐng)域的基本問題被廣泛研究,本文根據(jù)已有工作所采用的移動對象索引結(jié)構(gòu)、查詢場景和計算模式對其進行梳理和介紹如下。

    移動對象網(wǎng)格索引被廣泛應(yīng)用于移動對象查詢[4-9]。Kalashnikov 等[4]指出基于網(wǎng)格索引的查詢性能相較于其他索引結(jié)構(gòu)更加優(yōu)越,并提出一種基于排序的優(yōu)化方法以提高緩存命中率;Dong 等[5]和董天陽等[6]建立移動對象網(wǎng)格索引,可根據(jù)方向感知道路網(wǎng)絡(luò)以確定向查詢點移動的移動對象;薛忠斌等[7]提出一種基于內(nèi)存的高吞吐量移動對象范圍查詢算法,可一次執(zhí)行多個查詢,實現(xiàn)了查詢間的并行;Yu等[8]提出了一種基于網(wǎng)格對移動對象高效索引的可伸縮算法,可以提高查詢性能和對移動對象密集分布的魯棒性。

    此外,文獻[10-12]中引入了“安全區(qū)”的概念來解決移動對象查詢問題。“安全區(qū)”是根據(jù)查詢范圍邊界內(nèi)部/外部的最近移動對象到查詢邊界的距離計算的查詢移動區(qū)域,在該區(qū)域中,查詢點的移動不會導(dǎo)致查詢結(jié)果發(fā)生變化。Al-Khalidi等[11-12]研究了一種靜態(tài)近似距離搜索算法,該算法可以快速確定“安全區(qū)”上/下界限近似范圍,使指定安全區(qū)內(nèi)的查詢避免重復(fù)計算。

    隨著室內(nèi)位置服務(wù)的日益普及,室內(nèi)移動對象的距離感知查詢研究在過去的幾年里受到了一些學(xué)者[16-18]的重視。Wang 等[17]根據(jù)不同距離的邊界擁有不同查詢評估,對不確定室內(nèi)距離的移動對象關(guān)系進行了定義和分類。Shao 等[18]指出,室內(nèi)空間的特性未被現(xiàn)有的索引和查詢技術(shù)充分利用,因此,他們在充分考慮室內(nèi)場地特性的基礎(chǔ)上提出了室內(nèi)分區(qū)樹(Indoor Partitioning Tree,IP-Tree)和生動的室內(nèi)分區(qū)樹(Vivid IP-Tree,VIP-Tree)兩種新的索引結(jié)構(gòu)。

    上述大多數(shù)算法是集中式算法,受限于單個節(jié)點的計算能力,難以應(yīng)對大規(guī)模的并發(fā)查詢。為此,Silvestri 等[19]采用一種基于CPU 和GPU 混合使用的并行算法處理大規(guī)模移動對象范圍查詢。此外,一些工作研究了面向移動對象范圍查詢的分布式搜索算法。其中文獻[13-15]采用邊緣計算的思想進行范圍查詢,這類算法通常要求移動終端具有較強的計算能力,使得該類方法的適用性受限;與之不同的是,文獻[3,20-21]中采用基于服務(wù)器集群的分布式計算思想。其中:馮鈞等[20]提出一種靜態(tài)范圍查詢算法,對查詢點相鄰的路段進行遞歸,以更新查詢范圍內(nèi)路段上的移動對象;但在處理大規(guī)模并發(fā)查詢時,創(chuàng)建多個索引表會給系統(tǒng)帶來巨大的額外負載。針對上述問題,徐江峰等[21]則提出了一個多維索引框架New-grid,該框架采用基于Hilbert 曲線的線性化技術(shù)解決此問題,同時指出網(wǎng)格索引在分布式環(huán)境下具有良好的可擴展性;但在處理與范圍查詢有交集的候選單元格時,這些算法仍需遍歷候選單元格內(nèi)所有移動對象。Yu等[3]提出了基于網(wǎng)格索引和R-tree 的混合分布式索引結(jié)構(gòu)用于解決該問題。但當(dāng)移動對象位置發(fā)生變化時,該索引結(jié)構(gòu)的每個單元格對應(yīng)的R-tree 自底向上不斷更新,需要進行頻繁維護,導(dǎo)致整個索引的維護代價較大;此外,該算法未考慮多個并發(fā)范圍查詢之間的共享計算問題,本文認為對涉及相同區(qū)域的多個并發(fā)范圍查詢,共享計算能夠有效提高查詢效率。

    2 相關(guān)定義

    表1 是本文擬采用的符號與含義說明。

    表1 符號及其含義Tab.1 Symbols and their meanings

    定義1移動對象。移動對象被表示為一個三元組oi={IDi,tc,(xi,yi)},即oi的唯一標(biāo)識IDi在tc時刻的位置為(xi,yi)。

    定義2連續(xù)范圍查詢。連續(xù)范圍查詢是指給定查詢點qi及查詢范圍sqi,從查詢qi初始時刻計算位于sqi范圍內(nèi)的移動對象集合然后隨著查詢點和移動對象位置的變化,不斷地更新移動對象集合Oquery,直到查詢終止時間。

    本文中,查詢qi的查詢范圍sqi可以是任意多項式表示的形狀。為便于表述,本文假設(shè)sqi為圓形。

    定義3單元格。本文將整個搜索區(qū)域劃分為若干相同大小的單元格。每個單元格ci采用OLi、FLi和PLi這3 個列表分別記錄它所包含的移動對象、查詢范圍完全覆蓋ci的查詢點以及查詢范圍部分覆蓋ci的查詢點。

    定義4候選單元格。對于范圍查詢qi,如果單元格ck完全或部分被sqi覆蓋,那么ck是查詢qi的候選單元格。ck?sqi表 示ck被sqi完全覆 蓋,ck?sqi表 示ck被sqi部 分覆蓋。

    3 移動對象分布式索引結(jié)構(gòu)

    3.1 分布式索引結(jié)構(gòu)模型

    本文提出的移動對象分布式動態(tài)索引(DDI)結(jié)構(gòu)由網(wǎng)格索引以及動態(tài)四叉樹兩部分構(gòu)成。

    3.1.1 網(wǎng)格索引結(jié)構(gòu)

    網(wǎng)格索引將整個查詢區(qū)域劃分為大小相同的單元格。每個單元格ci維護OLi、FLi和PLi這3個列表,分別記錄它所包含的移動對象、查詢范圍完全覆蓋ci的查詢點以及查詢范圍部分覆蓋ci的查詢點。當(dāng)單元格ci記錄的移動對象數(shù)量達到閾值α?xí)r,單元格ci則會構(gòu)建一棵動態(tài)四叉樹Ti作進一步索引。

    3.1.2 動態(tài)四叉樹索引結(jié)構(gòu)

    首先,四叉樹的每個葉子節(jié)點nf維護一個移動對象列表NLf,記錄被該葉子節(jié)點覆蓋移動對象的唯一標(biāo)識(ID)。四叉樹的每個非葉子節(jié)點ni維護一個查詢列表QLi,記錄查詢范圍sqi能夠完全覆蓋該節(jié)點的查詢ID。每個葉子節(jié)點nf也維護一個查詢列表QLi,記錄查詢范圍完全覆蓋該葉子節(jié)點或者與該葉子節(jié)點部分相交的查詢ID。隨著移動對象的變化,Ti可根據(jù)移動對象的分布密度動態(tài)調(diào)整樹的深度。具體而言,如果Ti中某個葉子節(jié)點中移動對象數(shù)量大于等于指定的移動對象數(shù)量閾值α,則該葉子節(jié)點進行遞歸分裂,直至每個葉子節(jié)點內(nèi)移動對象數(shù)量小于閾值α;如果Ti中具有同一父節(jié)點的一組葉子節(jié)點中移動對象數(shù)量之和小于閾值α,則該組葉子節(jié)點將被刪除,所包含的移動對象將由其父節(jié)點保存。

    圖2 給出了單元格ci對應(yīng)的四叉樹索引結(jié)構(gòu)。圖2(a)給出單元格ci對應(yīng)四叉樹的構(gòu)建過程。其中,設(shè)定α=4,由于單元格ci中移動對象數(shù)量多于α,則將單格ci看作根節(jié)點,為其添加4 個孩子節(jié)點(n1、n2、n3、n4)。由于n1、n2中的移動對象數(shù)量大于α,則進一步為其分別增加孩子節(jié)點,直至所有葉子節(jié)點的移動對象數(shù)量小于α,對應(yīng)的四叉樹索引結(jié)構(gòu)如圖2(b)所示。對于查詢q1,其查詢范圍sq1完全覆蓋n1、n11,故將q1插入到n1、n11的查詢列表;由于sq1與葉子節(jié)點n3、n4、n9、n10、n12部分相交,故將其插入到n3、n4、n9、n10、n12的查詢列表。

    圖2 動態(tài)四叉樹索引Fig.2 Dynamic quadtree index

    網(wǎng)格索引中引入動態(tài)四叉樹索引結(jié)構(gòu)的目的是處理與某單元格部分相交的范圍查詢時,避免對該單元格中所有移動對象進行遍歷。具體而言,如果單元格ci包含大規(guī)模移動對象且與查詢范圍sqi部分相交,那么查找屬于ci且被sqi覆蓋的移動對象需要遍歷ci中所有移動對象,耗時較大。每個單元格中引入動態(tài)四叉樹后,可以對該單元格內(nèi)的移動對象進行不同粒度索引,查詢算法只需遍歷四叉樹的部分節(jié)點就能得到準(zhǔn)確查詢結(jié)果,有效降低計算代價。

    由于DDI 結(jié)構(gòu)每個單元格作為一個獨立的索引單元,可以部署到分布式集群的任意物理計算節(jié)點。每個計算節(jié)點可以根據(jù)自身負載維護任意數(shù)量的網(wǎng)格索引,從而使得DDI結(jié)構(gòu)具有良好的可擴展性。

    3.2 DDI結(jié)構(gòu)的構(gòu)建

    構(gòu)建DDI 結(jié)構(gòu)是指將移動對象和連續(xù)范圍查詢插入到不同的單元格及其對應(yīng)的四叉樹中。

    3.2.1 移動對象的插入

    算法1 給出將移動對象oi插入算法的偽代碼。首先識別當(dāng)前oi所在的單元格cj,隨后將oi添加到單元格cj的移動對象列表OLj,最后將且oi插入到cj對應(yīng)的四叉樹Ti中。在插入四叉樹過程中,先從Ti的根節(jié)點逐層向下掃描,確定覆蓋oi(xi,yi)的葉子節(jié)點nf,再將oi添加至nf的移動對象列表NLf(4)~8)行)。如果該葉子節(jié)點nf中移動對象數(shù)量達到閾值α,則進行分裂行成新的葉子節(jié)點,其中所有移動對象分別插入到對應(yīng)的新葉子節(jié)點中(9)~10)行)。

    算法1 中,給定移動對象oi(xi,yi),分別根據(jù)橫坐標(biāo)xi和縱坐標(biāo)yi確定oi所在單元格所需時間為T(2n)。設(shè)所插入單元格對應(yīng)四叉樹的節(jié)點數(shù)量為m,確定oi所在四叉樹葉子節(jié)點所需時間為T(log4m),因此,算法1 的時間復(fù)雜度為O(n+log4m)。

    算法1 添加移動對象至四叉樹。

    3.2.2 插入連續(xù)范圍查詢

    算法2 給出將連續(xù)范圍查詢qi插入到DDI 的偽代碼。首先確定與范圍查詢qi相關(guān)的單元格:對于被查詢范圍sqi完全覆蓋的單元格cj,qi被直接添加到單元格cj中的查詢列表FLj;對于被查詢范圍sqi部分覆蓋的單元格cl,對該單元格中四叉樹Tl從上至下進行層次遍歷,查找被sqi完全覆蓋的四叉樹節(jié)點ni,在節(jié)點ni中記錄qi,并停止對ni孩子節(jié)點的處理(4)~9)行)。如果四叉樹Tl中某節(jié)點nj與查詢范圍sqi部分相交,則進一步遍歷nj的孩子節(jié)點,直至葉子節(jié)點(11)~14)行)。根據(jù)qi的插入原則,在四叉樹Tl中記錄qi的所有節(jié)點中,只有葉子節(jié)點可能與sqi部分相交。因此,如果Tl的某個非葉子節(jié)點記錄qi,則該節(jié)點區(qū)域內(nèi)所有移動對象均被sqi覆蓋。

    算法2 中,確定與查詢qi相交的r個單元格所需時間為T(2n)。假設(shè)r個單元格分布在不同的物理計算節(jié)點,那么查詢qi插入到每個單元格對應(yīng)的四叉樹則可以并行執(zhí)行,此時,查詢qi插入DDI 結(jié)構(gòu)的時間等于單個單元格的最大插入時間。因此,算法2 的時間復(fù)雜度可以表示為O(n+(i∈[1,r])。其中,log4mi表示將查詢qi插入單元格ci對應(yīng)四叉樹的時間復(fù)雜度,四叉樹的節(jié)點數(shù)量為mi。

    算法2 添加范圍查詢至四叉樹。

    3.3 DDI結(jié)構(gòu)的維護

    隨著移動對象和范圍查詢點的位置變化,需要對DDI 進行實時維護,下面本文分別從移動對象的維護和范圍查詢的維護這兩種角度進行討論。

    3.3.1 移動對象的維護

    需要注意的是,上述過程中在更新單元格ci對應(yīng)的四叉樹Ti時,需要根據(jù)以下情況進行處理:

    1)若因oj的移動導(dǎo)致包含(xj,yj)的葉子節(jié)點與其兄弟節(jié)點的移動對象數(shù)量之和小于閾值α?xí)r,則該組葉子節(jié)點的所有移動對象由其父節(jié)點保存,隨后刪除該組葉子節(jié)點,其父節(jié)點變?yōu)樾碌娜~子節(jié)點。

    2)若因oj的移動導(dǎo)致包含的葉子節(jié)點中移動對象數(shù)量達到指定的閾值α,則該葉子節(jié)點進行遞歸分裂,直至每個葉子節(jié)點內(nèi)移動對象數(shù)量小于閾值α。

    3.3.2 范圍查詢的維護

    假設(shè)查詢點qi經(jīng)過移動后,范圍查詢區(qū)域sqi變?yōu)?。此時,需要對sqi和相關(guān)的單元格內(nèi)的查詢列表根據(jù)以下情況進行處理:

    1)如果sqi覆蓋ci且與ci不相交,則將qi從ci的列表FLi刪除。

    2)如果sqi覆蓋ci且與ci相交,則將qi從FLi刪除,并插入單元格ci的列表PLi。

    3)如果sqi與ci相交且與ci不相交,則將qi從PLi刪除。

    4)如果sqi與ci不相交且sq′i覆蓋ci,則將qi插入FLi。

    5)如果sqi與ci相交且覆蓋ci,則將qi從PLi刪除,并插入FLi。

    6)如果sqi與ci不相交且與ci相交,則將qi插入PLi。

    上述單元格ci的維護過程相較于單元格ci相應(yīng)的四叉樹Ti的維護而言,僅維護了Ti的根節(jié)點。而四叉樹Ti的維護需要自上而下判斷查詢范圍能否覆蓋每個節(jié)點,并重新插入范圍查詢,以維護查詢列表QLi。

    3.4 DDI結(jié)構(gòu)的分布式部署

    DDI 結(jié)構(gòu)部署于Master-Worker 范式的分布式計算環(huán)境下,該分布式集群由一個EntranceWorker 計算節(jié)點、多個IndexWorker 計算節(jié)點和多個QueryWorker 計算節(jié)點組成。DDI 結(jié)構(gòu)的分布式部署框架如圖3 所示。首先,在EntranceWorker 計算節(jié)點部署一個全局網(wǎng)格索引(Global Grid Index,GGI)。GGI記錄每個單元格的邊界以及所有單元格與IndexWorker 的對應(yīng)關(guān)系。一旦移動對象或者范圍查詢到達EntranceWorker節(jié)點,該節(jié)點將根據(jù)GGI確定移動對象和范圍查詢相關(guān)的單元格,并將其分發(fā)至對應(yīng)的IndexWorker。相對于GGI,IndexWorker 計算節(jié)點部署一個局部網(wǎng)格索引,對負責(zé)區(qū)域的單元格、四叉樹及其中移動對象索引。每個IndexWorker 根據(jù)移動對象和范圍查詢的插入算法將其插入對應(yīng)的單元格及其四叉樹索引中,并將計算結(jié)果發(fā)送至QueryWorker,由QueryWorker返回最終結(jié)果。

    4 面向移動對象范圍查詢的分布式查詢算法

    本章首先描述面向移動對象范圍查詢的DSA,然后介紹面向并發(fā)查詢的共享計算優(yōu)化策略,最后闡述移動對象和范圍查詢位置在連續(xù)變化情況下的分布式增量查詢算法。

    4.1 面向范圍查詢的分布式查詢算法流程

    面向移動對象范圍查詢的DSA是基于DDI結(jié)構(gòu)提出的,算法流程如圖3 所示。對于查詢qi,EntranceWorker 節(jié)點首先根據(jù)GGI結(jié)構(gòu)確定查詢qi的候選單元格集合Gi,并將查詢qi和集合Gi發(fā)送至QueryWorker,其中查詢qi被插入有效查詢列表。此后,由該QueryWorker維護查詢qi。然后,EntranceWorker 節(jié)點通知維護候選單元格的多個IndexWorker并行查找各自負責(zé)單元格中被qi的查詢范圍sqi所覆蓋的移動對象。在該查找過程中,如果某個候選單元格被sqi覆蓋,則該單元格內(nèi)所有移動對象均屬于qi的查詢結(jié)果;否則,自上而下遍歷候選單元格所對應(yīng)的四叉樹,可快速找到與sqi相交的區(qū)域,并計算得到該單元格內(nèi)屬于qi的移動對象。每個IndexWorker計算得到自身負責(zé)的候選單元格中屬于qi的移動對象后,將查詢結(jié)果發(fā)送至QueryWorker,QueryWorker只接收有效查詢列表維護查詢的部分查詢結(jié)果。QueryWorker每收到一個計算節(jié)點發(fā)送的部分查詢結(jié)果,就根據(jù)集合Gi判斷是否所有候選單元格的結(jié)果均已收到。如果均已收到,則返回qi的最終查詢結(jié)果。

    圖3 DDI結(jié)構(gòu)的分布式部署框架Fig.3 Framework of distributed deployment of DDI structure

    4.2 并發(fā)查詢共享計算優(yōu)化計算策略

    1)傳輸代價優(yōu)化。眾所周知,分布式環(huán)境下相同規(guī)模數(shù)據(jù)的網(wǎng)絡(luò)傳輸開銷遠遠大于CPU 計算代價。當(dāng)IndexWorker獲得不同查詢的查詢結(jié)果后,需要將查詢結(jié)果發(fā)送到維護這些查詢的QueryWorker。此時,QueryWorker 數(shù)量越多,網(wǎng)絡(luò)傳輸代價越大。為解決這個問題,本文采取的策略是將查詢范圍重疊較多的多個范圍查詢路由至同一個QueryWorker 進行處理,即負責(zé)處理這些范圍查詢的IndexWorker 需要將查詢結(jié)果發(fā)送至同一個QueryWorker。具體而言,對于兩個范圍查詢qi和qj,EntranceWorker 計算節(jié)點根據(jù)GGI 計算qi和qj的候選單元格集合分別為Gi和Gj,然后計算集合Gi和Gj的Jaccard 相似度如果δ大于等于指定的閾值,則將qi和qj發(fā)送至同一個QueryWorker 處理,否則將qi和qj發(fā)送至不同的QueryWorker 處理。

    2)查詢代價優(yōu)化。對于與單元格cj部分相交的范圍查詢qi,在遍歷單元格cj對應(yīng)的四叉樹Tj計算qi的查詢結(jié)果時,一旦發(fā)現(xiàn)四叉樹Tj的某個非葉子節(jié)點被qi對應(yīng)的查詢范圍sqi完全覆蓋,為得到屬于該節(jié)點的移動對象,仍需繼續(xù)向下遍歷,直至葉子節(jié)點。由于同一單元格很可能與多個范圍查詢部分相交,范圍查詢需要對同一四叉樹進行多次遍歷。這不僅需要做大量重復(fù)計算而且耗時較大。為解決這一問題,本文在每個單元格中引入一個基于“二分圖”的查詢結(jié)果索引(Bipartite Graph Index,BGI)結(jié)構(gòu)。

    如圖4(a)所示,BGI 的結(jié)構(gòu)包含查詢集合Qs、四叉樹節(jié)點集合Ns以及每個四叉樹節(jié)點對應(yīng)的移動對象集合Os。對于新到達的查詢qi,從單元格cj對應(yīng)四叉樹Tj的根節(jié)點開始遍歷,假定Tj的某個節(jié)點ni被sqi完全覆蓋,如果該節(jié)點查詢列表QLf已有查詢qj,則在BGI 的Qs集合中查找qj,然后根據(jù)qj在Ns集合中所對應(yīng)的節(jié)點中尋找ni。此時,ni的移動對象集合Os已確定,無需遍歷ni的孩子節(jié)點;否則,繼續(xù)遍歷ni的孩子節(jié)點,獲得ni的移動對象集合Os。然后,將qi添加至Qs集合,ni添加至Ns集合。此后,若某個查詢的查詢范圍覆蓋節(jié)點ni,則可直接從BGI 的Ns集合中獲取ni的移動對象。

    具體而言,如圖4(b)所示,假定已有范圍查詢sq1覆蓋節(jié)點n1,n8,且查詢點q1、所覆蓋四叉樹節(jié)點以及其中移動對象集合已插入BGI。此時,新的范圍查詢sq2與sq1覆蓋同一節(jié)點n8,則查詢q2關(guān)于n8的查詢結(jié)果可以從Ns集合中取得。而sq2覆蓋節(jié)點n2及其所對應(yīng)的移動對象集合在計算結(jié)果后存儲于BGI 中(如圖4(a)所示)。

    圖4 BGI結(jié)構(gòu)Fig.4 BGI structure

    4.3 分布式增量查詢算法

    對于已經(jīng)計算得到初始結(jié)果的連續(xù)范圍查詢,本文需要根據(jù)移動對象和查詢點位置的變化,每隔Δt時間段,對其查詢結(jié)果進行更新,直至查詢失效。為此,本文提出一種增量查詢策略,在充分利用已有結(jié)果的基礎(chǔ)上,對查詢結(jié)果進行增量更新。下面分三種情況對增量查詢策略進行討論。

    1)移動對象位置變化而查詢點固定不變。經(jīng)過Δt時間,位置變化的若干移動對象會向EntranceWorker 節(jié)點報告移動前的位置和當(dāng)前最新位置,根據(jù)GGI,EntranceWorker 節(jié)點確定需要對其所屬移動對象進行更新的單元格集合G,并通知對應(yīng)的IndexWorker。由IndexWorker 對單元格集合G中的移動對象進行更新。如果一個移動對象是在同一單元格cm中發(fā)生位置變化,那么對FLm列表中的查詢并無影響,僅需要對PLm中的查詢進行更新。在對PLm中的查詢進行更新的過程中,可根據(jù)單元格cm中的BGI 索引結(jié)構(gòu),對PLm中的多個查詢同時更新。也就是說,在移動對象位置變化而查詢點固定不變的情況下,若BGI 索引結(jié)構(gòu)中Ns集合中任意節(jié)點ni的移動對象集合發(fā)生變化,則根據(jù)ni的查詢列表QLi,對BGI 查詢集合Qs中查詢點的查詢結(jié)果進行更新。

    2)移動對象位置固定而查詢點位置變化。假設(shè)查詢qi經(jīng)過移動后,查詢范圍由sqi變 為。當(dāng)qi到 達EntranceWorker 節(jié)點后,EntranceWorker 節(jié)點分別根據(jù)sqi和計算qi上一時刻和當(dāng)前時刻的候選單元格集合Gl和Gc。如果單元格ck屬于Gl但不屬于Gc,則維護ck的IndexWorker(IWk)通知負責(zé)qi的QueryWorker(QWi)從qi上一時刻查詢結(jié)果中刪除屬于ck的移動對象;如果單元格ck不屬于Gl但屬于Gc,則IWk通知QWi將屬于ck的移動對象添加至qi上一時刻的查詢結(jié)果中;如果單元格ck既屬于Gl又屬于Gc,則根據(jù)以下規(guī)則對ck進行處理。

    如果(sqi?ck) &&(?ck),qi查詢范圍一直覆蓋單元格ck,無需做任何更新。

    如果(sqi?ck) &&(?ck),將qi從PLk刪除并插入FLk。IWk根據(jù)四叉樹Tk計算(ck-(ck∩sqi))區(qū)域的移動對象,并將這些移動對象發(fā)送給QWi,QWi則將這些移動對象添加至qi的查詢結(jié)果。

    如果(sqi?ck) &&(?ck),將qi從FLk刪除并插入PLk。IWk基于四叉樹Tk計算(ck-(ck∩))區(qū)域的移動對象,并將這些移動對象發(fā)送給QWi,QWi則將這些移動對象從qi的查詢結(jié)果中刪除。

    如果(sqi?ck) &&(?ck),IWk則基于四叉樹Tk分別計算被區(qū)域(sqi-(sqi∩))和(-(sqi∩))分別覆蓋的移動對象集合Od和Oa,然后通知QWi從qi上一時刻的查詢結(jié)果中刪除集合Od中的移動對象,并添加集合Oa的移動對象。

    4.4 移動對象和查詢點位置變化的增量查詢語義。

    根據(jù)位置不斷變化的移動對象和查詢點,對查詢結(jié)果進行增量更新時,EntranceWorker 創(chuàng)建兩個隊列分別緩存位置變化的移動對象和查詢點。當(dāng)移動對象和查詢點位置發(fā)生變化后,將被分別插入到移動對象緩存隊列和查詢點緩存隊列。如果查詢緩存隊列非空,則每隔Δt時間,處理該隊列中的查詢。在處理查詢時,基于當(dāng)前DDI 結(jié)構(gòu)中移動對象的快照增量更新查詢結(jié)果;在查詢處理過程中,暫停處理緩存隊列中位置變化的移動對象。待查詢處理完成后,再對緩存隊列中位置更新的移動對象進行處理,更新DDI 結(jié)構(gòu)。在此過程中,如果有新的查詢或者位置變化的查詢到達,則被插入緩存隊列,待移動對象處理完成后,在下一個Δt時刻,對新到達的查詢進行處理。根據(jù)該語義,當(dāng)移動對象和查詢點的位置同時發(fā)生變化時,本文將其看作兩個獨立的事件并在時間維度上將其序列化,兩個事件被序列化的先后順序并不會對查詢結(jié)果產(chǎn)生實質(zhì)性影響。然后,將位置變化的移動對象和查詢點分別插入兩個緩存隊列,便可根據(jù)上述給定的查詢語義進行處理。

    4.5 查詢算法時間復(fù)雜度

    對于查詢范圍為sqi的查詢qi,其處理過程包含初始查詢和增量查詢兩個階段,現(xiàn)分別分析初始查詢的時間復(fù)雜度和增量查詢的時間復(fù)雜度。

    在初始查詢階段,假設(shè)與sqi部分相交的候選單元格數(shù)量為r,且這些候選單元格分布在不同的物理計算節(jié)點。根據(jù)本文的分布式查詢思想,可以并行搜索每個候選單元格。此時,初始查詢時間等于單個單元格的最大搜索時間。為便于表述,假設(shè)候選單元格ci對應(yīng)四叉樹的節(jié)點數(shù)量為mi,確定被sqi完全覆蓋和與sqi部分相交的四叉樹節(jié)點的時間為T(log4mi)。進一步假設(shè)被sqi完全覆蓋的四叉樹節(jié)點數(shù)量為,則與sqi部分相交的四叉樹節(jié)點數(shù)量為(),且均為葉子節(jié)點。對于每個被sqi完全覆蓋的四叉樹節(jié)點,它所包含的移動對象全部被sqi覆蓋,故處理該部分四叉樹節(jié)點的時間為T(m′i);對于與sqi部分相交的每個四叉樹葉子節(jié)點,需要遍歷其包含的所有移動對象以判斷被sqi覆蓋的移動對象,故搜索該部分葉子節(jié)點的時間為T(*no),no為每個葉子節(jié)點包含移動對象的平均數(shù)量。因此,一個單元格搜索時間為,而初始階段的時間復(fù)雜度為

    增量查詢分為:

    1)移動對象位置變化而查詢點位置固定。由于每個候選單元格中被sqi覆蓋的個四叉樹節(jié)點、與sqi相交的個四叉樹節(jié)點已確定,因此,只需要搜索與sqi相交的每個四叉樹節(jié)點中新增的移動對象被sqi覆蓋即可,所需時間為為新到達與sqi相交的每個四叉樹節(jié)點中移動對象的平均數(shù)量。因此,該情形下增量查詢的時間復(fù)雜度為

    2)查詢點位置變化而移動對象位置固定。由于查詢點位置變化,需要重新確定候選單元格,時間為T(2n)。此時,假設(shè)與sqi部分相交的候選單元格數(shù)量仍為r,則該情形下的時間復(fù)雜度為雖然該情形下的時間復(fù)雜度與初始查詢的時間復(fù)雜度相同,但是此時m′i和m″i的值要明顯小于其在初始查詢時的值,故查詢效率仍有明顯提高。

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

    5.1 實驗配置

    本文選擇移動對象不同分布的數(shù)據(jù)集進行實驗來評估DDI結(jié)構(gòu)?;诘聡肪W(wǎng)模擬3個移動對象數(shù)據(jù)集:均勻分布(Uniform Distribution,UD)數(shù)據(jù)集、高斯分布(Gaussian Distribution,GD)數(shù)據(jù)集、齊普夫分布(Zipf)數(shù)據(jù)集。為了模擬這些數(shù)據(jù)集,首先將覆蓋每個路網(wǎng)的二維空間歸一化為一個1×1的正方形區(qū)域,并將其劃分成100×100個大小相同的單元格,然后根據(jù)每個單元格移動對象出現(xiàn)的概率密度分布函數(shù)計算每個單元格所分配的移動對象數(shù)量,最后令每個單元格內(nèi)的移動對象在對應(yīng)的局部路網(wǎng)上以速度vo移動。下面以GD為例闡述數(shù)據(jù)集的生成過程。由于GD 中的移動對象oi坐標(biāo)(xi,yi)在x維與y維都滿足高斯分布,因此,移動對象oi位于(xi,yi)的概率為即所有移動對象在整個查詢區(qū)域的概率密度分布函數(shù),其中μ1、μ2、σ1、σ2、ρ分別設(shè)為0.5、0.5、0.2、0.2、0。此時,一個移動對象位于第i行、第j列單元格的概率為f(i,j)=0.08π exp[2(xi-0.2)2+2(yi-0.2)2],其中i,j滿足0 <i≤100,0 <j≤100 且為正整數(shù)。假設(shè)移動對象總數(shù)為No,那么第i行、第j列單元格中的移動對象數(shù)量應(yīng)為f(i,j)*No。然后,在該單元格中產(chǎn)生對應(yīng)數(shù)量的移動對象,令其在該單元格覆蓋的局部路網(wǎng)上連續(xù)移動。

    本文引入了3 種分布式算法作為基準(zhǔn)方法,以對比評價DSA 的性能。第1 個基準(zhǔn)算法NS(Naive Search)不使用任何索引,每個計算節(jié)點包含所有移動對象,每個查詢被隨機分配給所有計算節(jié)點;第2 個基準(zhǔn)算法GI(Grid Index)是構(gòu)建一個面向移動對象的分布式網(wǎng)格索引,基于分布式網(wǎng)格索引將給定的查詢分配到相應(yīng)的計算節(jié)點,進而多個計算節(jié)點并行計算給定查詢的查詢結(jié)果;第3 個基準(zhǔn)算法分布式混合索引(Distributed Hybrid Index,DHI)是Yu 等[3]提出的一種全局網(wǎng)格和R-tree 結(jié)構(gòu)組成的混合索引,該算法在分布式網(wǎng)格索引的基礎(chǔ)上,以移動對象初始位置為葉子節(jié)點建立R-tree,并通過改變?nèi)~子節(jié)點大小調(diào)整索引粒度。

    實驗的服務(wù)器集群是由阿里云租賃的20 個彈性云服務(wù)器(Elastic Cloud Server,ECS)計算節(jié)點構(gòu)成,每臺服務(wù)器為4核16 GB 內(nèi)存。實驗中,DDI 與DSA 所涉及的參數(shù)如表2所示。

    表2 實驗中所涉及的參數(shù)以及含義Tab.2 Related parameters and their meanings in experiments

    5.2 移動對象DDI的性能評估

    5.2.1 移動對象數(shù)量對DDI構(gòu)建時間的影響

    在該組實驗中,設(shè)置一個用以緩存待處理移動對象的隊列Qo,將移動對象一次性輸入其中,并統(tǒng)計為這些移動對象構(gòu)建DDI 結(jié)構(gòu)的時間,結(jié)果如圖5(a)所示??梢钥闯?,DDI構(gòu)建時間與移動對象數(shù)量基本呈同比例增長。此外,處理GD 和Zipf 分布移動對象的時間略高,原因是當(dāng)移動對象分布密集時,集群中的某些服務(wù)器需要處理比其他服務(wù)器更多的移動對象,導(dǎo)致這些服務(wù)器的負載偏高,影響DDI 結(jié)構(gòu)的整體性能。

    5.2.2 閾值α對DDI構(gòu)建時間的影響

    閾值α對DDI 構(gòu)建時間的影響如圖5(b)所示??梢钥闯?,無論移動對象符合哪種分布,隨著閾值α增加,索引DDI的構(gòu)建代價明顯減少。原因是閾值α與四叉樹的層數(shù)直接相關(guān),隨著閾值α增大,四叉樹分裂子節(jié)點的可能性越低,進而四叉樹層數(shù)減少,使得DDI 的構(gòu)建代價越少。

    圖5 不同參數(shù)對DDI構(gòu)建時間的影響Fig.5 Influence of different parameters on DDI building time

    5.2.3 移動對象的移動速率對DDI維護時間的影響

    該組實驗首先為5×107個移動對象建立DDI 結(jié)構(gòu),然后隨機選擇5×106個移動對象,令這些被選擇的移動對象以不同速率(vo)移動5 次,測試DDI 的平均維護時間,實驗結(jié)果如圖6 所示??梢钥闯?,隨著移動對象速率的增加,維護成本明顯增加。這是因為當(dāng)移動速率較低時,移動對象的上一次位置和當(dāng)前位置有可能位于四叉樹的同一葉子節(jié)點中,此時不需要對四叉樹索引結(jié)構(gòu)進行調(diào)整;但當(dāng)移動對象的移動速率較高時,四叉樹節(jié)點需頻繁調(diào)整移動對象數(shù)量,導(dǎo)致維護代價增大。

    圖6 vo對DDI維護時間的影響Fig.6 Influence of vo on DDI maintenance time

    5.2.4 DDI的吞吐量

    對DDI 的吞吐量測試結(jié)果如圖7 所示。該組實驗中,設(shè)置一個隊列Qo緩存待處理的移動對象,其容量設(shè)置為5×104,令移動對象以不同的速率進入隊列Qo,經(jīng)過一段時間后,檢測隊列Qo中的移動對象數(shù)量(No)。在速率小于4×106移動對象(Objects Per Second,OPS)時,隊列Qo內(nèi)移動對象數(shù)量保持平緩。在速率達到4×106OPS 時,隊列Qo內(nèi)移動對象數(shù)量迅速增加,即DDI 的吞吐量約為4×106OPS。這說明DDI 可以勝任大規(guī)模移動對象的范圍查詢工作。

    圖7 DDI的吞吐量Fig.7 Throughput of DDI

    5.3 DSA的性能評估

    5.3.1 閾值α對DSA查詢時間的影響

    本組實驗測試閾值α的同一組查詢的查詢時間,實驗結(jié)果如圖8(a)所示??梢钥闯?,隨著閾值α的增加,搜索時間先減少后增長,閾值α為15 時效果最優(yōu)。當(dāng)閾值α過小時,四叉樹索引粒度普遍減小,遍歷時間開銷相對較大,導(dǎo)致整個查詢代價增大;反之,當(dāng)閾值α過大時,四叉樹的索引粒度普遍增大,剪枝效力下降,導(dǎo)致查詢時間增長。

    5.3.2 搜索范圍對DSA查詢時間的影響

    本組實驗首先建立100×100 的DDI(這里定義每個單元格的大小為0.01×0.01),隨后評估了DSA 的性能與查詢的搜索范圍之間的關(guān)系,結(jié)果如圖8(b)所示??梢钥闯?,查詢范圍的大小對DSA 的性能有一定的影響。一個查詢點的查詢半徑(r)越大,所涉及的候選查詢單元格數(shù)量越多,即使DSA 能夠利用多個計算節(jié)點對候選單元格的移動對象進行并行查詢,隨著候選單元格數(shù)量的增大,系統(tǒng)需要處理的計算節(jié)點數(shù)量也相應(yīng)增多,而這些計算節(jié)點都需要與QueryWorker 進行通信,最終導(dǎo)致DSA 的查詢時間增大。

    圖8 不同參數(shù)對查詢時間的影響Fig.8 Influence of different parameters on query time

    5.4 四種分布式算法的比較

    5.4.1 不同數(shù)量的范圍查詢時間比較

    本組實驗設(shè)定不同數(shù)量的范圍查詢,以測試4 種算法的查詢時間,實驗結(jié)果如圖9(a)所示??梢钥闯觯珼SA 的性能總是優(yōu)于NS、GI 以及DHI。這是因為NS 在處理每個查詢時,所有服務(wù)器都使用暴力搜索模式,這使得其查詢時間隨著連續(xù)范圍查詢的數(shù)量呈線性增長趨勢;GI 在處理同一組連續(xù)范圍查詢時,由于缺少四叉樹索引的支持,需要比DSA檢測更多的移動對象;DHI 在處理查詢過程中,由于沒有考慮查詢區(qū)域重合率較高的查詢存在,可能將其分配到了不同的服務(wù)器,造成額外的計算開銷;而DSA 不僅考慮了傳輸代價優(yōu)化,而且采用BGI 結(jié)構(gòu)使得多個范圍查詢無需對四叉樹底層遍歷。

    5.4.2 大規(guī)模移動對象的查詢時間比較

    本組實驗設(shè)定不同數(shù)量的移動對象,以測試4 種算法性能所受影響。在該組實驗中,一次性向Qq輸入104個連續(xù)范圍查詢,4 種算法處理所有查詢的時間如圖9(b)所示。隨著查詢數(shù)量的增加,NS 的查詢時間呈線性增長,而GI、DSA 以及DHI 的性能幾乎不受影響。這是因為NS 需要掃描所有移動對象來處理每次查詢,而GI、DSA 以及DHI 可以有效地對搜索空間進行修剪,即使移動對象的數(shù)量急劇增長,也只需要處理有限的移動對象數(shù)量。DSA 與DHI 性能明顯優(yōu)于GI,這是因為DSA 與DHI 分別引入了四叉樹索引和R-tree 索引,能進一步提高索引效率,有效處理大規(guī)模移動對象范圍查詢。

    圖9 4個算法的初始查詢時間的比較Fig.9 Comparison of initial query time among four algorithms

    5.4.3 增量連續(xù)查詢的處理時間比較

    本組實驗中,向Qq一次性輸入2 000 個范圍查詢,令其隨機移動,然后測試4 種方法的增量查詢時間,實驗結(jié)果如圖10 所示。在實驗中,記錄了在5 個連續(xù)的時間點上用4 種方法處理這些查詢的時間。可以看到DSA 的性能優(yōu)于其他3 種方法,尤其是在最后4 個時間點上。NS 和GI 把每次范圍查詢作為新的查詢,增量查詢時間基本不變;DHI 未考慮多個并發(fā)范圍查詢之間的共享計算問題,從而進行冗余的計算;而DSA 每次只需計算每個查詢的增量結(jié)果,有效降低了增量查詢時間。

    圖10 增量查詢時間比較Fig.10 Comparison of incremental query time

    5.4.4 不同算法的吞吐量比較

    本組實驗通過計算連續(xù)范圍查詢的初始結(jié)果來評估3種查詢方法的吞吐量。在該組實驗中,查詢點以不同的速率進入系統(tǒng),然后更新緩存在Qq中的查詢點數(shù)量,設(shè)置緩存隊列Qq容量為104。圖11 是DSA、GI、NS 的吞吐量實驗結(jié)果。從圖11(a)中可以看出,當(dāng)速率(vq)不大于4 000 OPS 時,Qq的占用容量一直較小,但當(dāng)速率(vq)達到5 000 OPS 時,其占用容量開始明顯增加。因此,DSA 的吞吐量約為4 000 OPS。從圖11(b)、(c)中可以看出,GI 和NS 的吞吐量分別約為3 000 OPS 和1 000 OPS,均小于DSA。這說明DSA 能夠很好地在分布式集群上處理大規(guī)模移動對象連續(xù)范圍查詢。

    圖11 DSA、GI、NS的吞吐量Fig.11 Throughput of DSA,GI,NS

    6 結(jié)語

    本文提出了一種由網(wǎng)格索引與彈性四叉樹組成的移動對象分布式索引結(jié)構(gòu)DDI,該結(jié)構(gòu)能夠提供高效的剪枝效力,具有較低的維護代價且易于部署到分布式服務(wù)器集群,具備良好的可擴展性?;谠撍饕Y(jié)構(gòu),本文進一步提出了分布式增量連續(xù)查詢算法,該算法設(shè)計了面向高并發(fā)查詢的共享計算策略以及面向連續(xù)范圍查詢的增量查詢策略,能有效降低查詢代價。最后,通過大量實驗對本文方法的性能進行了充分驗證。

    本文提出的移動對象分布式索引結(jié)構(gòu)DDI 主要處理基于歐氏距離的范圍查詢,未來將進一步研究基于路網(wǎng)的移動對象分布式范圍查詢算法。

    猜你喜歡
    四叉樹單元格分布式
    玩轉(zhuǎn)方格
    玩轉(zhuǎn)方格
    淺談Excel中常見統(tǒng)計個數(shù)函數(shù)的用法
    西部皮革(2018年6期)2018-05-07 06:41:07
    分布式光伏熱錢洶涌
    能源(2017年10期)2017-12-20 05:54:07
    基于WebGL的三維點云可視化研究
    分布式光伏:爆發(fā)還是徘徊
    能源(2017年5期)2017-07-06 09:25:54
    基于四叉樹的高效梯度域圖像融合
    智富時代(2017年6期)2017-07-05 16:37:15
    基于DDS的分布式三維協(xié)同仿真研究
    雷達與對抗(2015年3期)2015-12-09 02:38:50
    基于四叉樹網(wǎng)格加密技術(shù)的混凝土細觀模型
    基于四叉樹的改進型RFID防碰撞算法
    搡老妇女老女人老熟妇| 极品教师在线视频| 精品久久久久久久久久久久久| 在线播放无遮挡| 国产午夜福利久久久久久| 亚洲美女视频黄频| 免费观看无遮挡的男女| 特大巨黑吊av在线直播| 久久精品国产亚洲av涩爱| 久久热精品热| 2018国产大陆天天弄谢| 高清欧美精品videossex| 内地一区二区视频在线| 伊人久久精品亚洲午夜| 国产三级在线视频| 偷拍熟女少妇极品色| 日韩 亚洲 欧美在线| 国产日韩欧美在线精品| 纵有疾风起免费观看全集完整版 | 中文乱码字字幕精品一区二区三区 | 高清毛片免费看| 欧美+日韩+精品| 久久久亚洲精品成人影院| 一级毛片 在线播放| 午夜福利视频精品| 亚洲不卡免费看| 日本熟妇午夜| 3wmmmm亚洲av在线观看| 丝袜美腿在线中文| 蜜桃久久精品国产亚洲av| 国产一区二区三区综合在线观看 | 国产成人精品福利久久| ponron亚洲| 日本与韩国留学比较| 搡女人真爽免费视频火全软件| 亚州av有码| 狂野欧美激情性xxxx在线观看| 综合色丁香网| 国产精品久久视频播放| 亚洲欧美清纯卡通| 人妻少妇偷人精品九色| 国产精品一二三区在线看| 高清毛片免费看| 联通29元200g的流量卡| 国产探花极品一区二区| 国产精品久久久久久久电影| 91久久精品电影网| 欧美日韩在线观看h| 日韩不卡一区二区三区视频在线| xxx大片免费视频| 国产综合精华液| 精品人妻熟女av久视频| 一级av片app| 亚洲久久久久久中文字幕| 在线观看一区二区三区| 国产成人精品婷婷| 久久精品久久精品一区二区三区| 午夜爱爱视频在线播放| 亚洲国产成人一精品久久久| 精品国内亚洲2022精品成人| 国产又色又爽无遮挡免| 人妻一区二区av| 国产午夜精品一二区理论片| 国产精品人妻久久久久久| 麻豆成人av视频| 色网站视频免费| av网站免费在线观看视频 | 亚洲成人av在线免费| av.在线天堂| 肉色欧美久久久久久久蜜桃 | 91aial.com中文字幕在线观看| 亚洲伊人久久精品综合| 国国产精品蜜臀av免费| 69av精品久久久久久| 久久久色成人| 久久精品国产亚洲网站| 亚洲不卡免费看| 午夜免费观看性视频| 久久久久国产网址| 我的老师免费观看完整版| 国产av在哪里看| 日韩欧美三级三区| 在线a可以看的网站| 国产探花极品一区二区| 亚洲国产高清在线一区二区三| 国产熟女欧美一区二区| 国产女主播在线喷水免费视频网站 | 日韩三级伦理在线观看| 亚洲欧美日韩卡通动漫| 人妻系列 视频| 精品亚洲乱码少妇综合久久| 国产高清三级在线| 一级毛片久久久久久久久女| 日本爱情动作片www.在线观看| 18禁在线播放成人免费| 国产麻豆成人av免费视频| 亚洲国产精品国产精品| 久久久久久久久久久免费av| 国产精品无大码| 狂野欧美激情性xxxx在线观看| 在线免费十八禁| 亚洲av在线观看美女高潮| 精品少妇黑人巨大在线播放| 日日啪夜夜撸| 又粗又硬又长又爽又黄的视频| 美女xxoo啪啪120秒动态图| 一级毛片电影观看| 免费看美女性在线毛片视频| 国产黄a三级三级三级人| 日本猛色少妇xxxxx猛交久久| 天堂√8在线中文| or卡值多少钱| 18禁在线无遮挡免费观看视频| 熟女人妻精品中文字幕| 午夜精品国产一区二区电影 | 69人妻影院| 99热6这里只有精品| 午夜精品国产一区二区电影 | 亚洲图色成人| 成年免费大片在线观看| 国产色爽女视频免费观看| 日韩,欧美,国产一区二区三区| 日本与韩国留学比较| 国产精品爽爽va在线观看网站| 亚洲四区av| 免费黄频网站在线观看国产| 久久久久久久久久成人| 欧美日韩一区二区视频在线观看视频在线 | 亚洲性久久影院| 久久久久久久久久久免费av| 亚洲精品自拍成人| 欧美xxxx性猛交bbbb| 亚洲精品第二区| 又爽又黄a免费视频| 国产探花极品一区二区| 身体一侧抽搐| 国产精品福利在线免费观看| 少妇人妻一区二区三区视频| 热99在线观看视频| 搡老乐熟女国产| 午夜精品在线福利| 亚洲人成网站在线播| 免费黄色在线免费观看| 免费观看无遮挡的男女| 99热6这里只有精品| 免费少妇av软件| 午夜免费男女啪啪视频观看| 国产乱来视频区| 中文字幕免费在线视频6| 男女那种视频在线观看| 99re6热这里在线精品视频| 天天一区二区日本电影三级| 夫妻性生交免费视频一级片| 日本wwww免费看| 在线观看免费高清a一片| 欧美成人精品欧美一级黄| 波多野结衣巨乳人妻| 99视频精品全部免费 在线| 国产精品国产三级专区第一集| 日本wwww免费看| av卡一久久| 直男gayav资源| 久久久久久久久久人人人人人人| 亚洲av成人精品一二三区| 午夜福利视频精品| 久久久久久久国产电影| av福利片在线观看| 又大又黄又爽视频免费| 亚洲av电影在线观看一区二区三区 | 亚洲久久久久久中文字幕| 国产亚洲最大av| 午夜福利在线观看吧| 亚洲美女搞黄在线观看| 高清视频免费观看一区二区 | 亚洲内射少妇av| 男人和女人高潮做爰伦理| 麻豆乱淫一区二区| 青春草视频在线免费观看| 1000部很黄的大片| 深夜a级毛片| 久久久久久久午夜电影| 国产av不卡久久| 亚洲美女搞黄在线观看| 国产久久久一区二区三区| 日韩欧美三级三区| 国产成人a∨麻豆精品| 亚洲精品成人av观看孕妇| 又黄又爽又刺激的免费视频.| 人人妻人人澡人人爽人人夜夜 | 男女边摸边吃奶| 亚洲欧美成人综合另类久久久| 最近最新中文字幕免费大全7| 亚洲精品久久午夜乱码| 国产精品国产三级国产专区5o| 亚洲性久久影院| 亚洲成人精品中文字幕电影| 我要看日韩黄色一级片| 性插视频无遮挡在线免费观看| 国产精品久久久久久精品电影| 亚洲国产精品专区欧美| 日韩 亚洲 欧美在线| 亚洲国产精品成人久久小说| 乱码一卡2卡4卡精品| av福利片在线观看| 日产精品乱码卡一卡2卡三| 国产精品精品国产色婷婷| 啦啦啦啦在线视频资源| 久久久久免费精品人妻一区二区| 亚洲精品久久久久久婷婷小说| 国产黄a三级三级三级人| 最近手机中文字幕大全| 男女那种视频在线观看| 在线天堂最新版资源| 美女黄网站色视频| 欧美日韩国产mv在线观看视频 | 午夜福利在线观看吧| 97在线视频观看| 欧美xxxx性猛交bbbb| 99re6热这里在线精品视频| 精品久久久久久久久亚洲| 国产成人a∨麻豆精品| 亚洲天堂国产精品一区在线| 国产老妇女一区| 天堂√8在线中文| 麻豆乱淫一区二区| 国产午夜精品论理片| 日本与韩国留学比较| 国产成人精品婷婷| 午夜福利视频1000在线观看| 尤物成人国产欧美一区二区三区| 国产乱人偷精品视频| 国内精品宾馆在线| 婷婷色av中文字幕| 精品酒店卫生间| 亚洲av男天堂| 熟女人妻精品中文字幕| 国产午夜精品论理片| 日韩精品有码人妻一区| 亚洲欧美日韩卡通动漫| 亚洲人成网站高清观看| 中文字幕av成人在线电影| 精品久久国产蜜桃| 熟女人妻精品中文字幕| 欧美一级a爱片免费观看看| 成人亚洲欧美一区二区av| 欧美日韩精品成人综合77777| 国产伦在线观看视频一区| 国产亚洲一区二区精品| 午夜久久久久精精品| 黄色一级大片看看| 又大又黄又爽视频免费| 国产精品久久久久久av不卡| 99热这里只有是精品在线观看| 国产亚洲精品av在线| 午夜福利高清视频| 亚洲av成人av| 水蜜桃什么品种好| 欧美高清成人免费视频www| 免费高清在线观看视频在线观看| 九九久久精品国产亚洲av麻豆| 六月丁香七月| 成人亚洲精品av一区二区| 高清视频免费观看一区二区 | 久久久成人免费电影| 91久久精品国产一区二区成人| 久久久久久久大尺度免费视频| 免费大片黄手机在线观看| av线在线观看网站| 少妇人妻精品综合一区二区| 联通29元200g的流量卡| ponron亚洲| 久久久久久久午夜电影| 97精品久久久久久久久久精品| 国产免费又黄又爽又色| 寂寞人妻少妇视频99o| 99久久精品热视频| av国产久精品久网站免费入址| 91精品国产九色| 免费无遮挡裸体视频| 精品国产三级普通话版| 欧美zozozo另类| 毛片一级片免费看久久久久| 久久人人爽人人爽人人片va| 中文乱码字字幕精品一区二区三区 | 青春草国产在线视频| 亚洲在久久综合| 亚洲一级一片aⅴ在线观看| 久久人人爽人人片av| 成年版毛片免费区| 国产一区二区亚洲精品在线观看| 欧美 日韩 精品 国产| 人妻制服诱惑在线中文字幕| 久久人人爽人人爽人人片va| 超碰97精品在线观看| 国产白丝娇喘喷水9色精品| 亚洲av免费在线观看| 成年人午夜在线观看视频 | 网址你懂的国产日韩在线| 22中文网久久字幕| 亚洲无线观看免费| 日本免费在线观看一区| 免费大片18禁| 色综合亚洲欧美另类图片| 午夜爱爱视频在线播放| 精品酒店卫生间| 777米奇影视久久| 水蜜桃什么品种好| 黄色日韩在线| 亚洲欧洲日产国产| 婷婷色av中文字幕| 一个人看的www免费观看视频| 亚洲av男天堂| 人妻少妇偷人精品九色| 久久久精品免费免费高清| 人人妻人人澡欧美一区二区| 亚洲欧美日韩卡通动漫| 九九爱精品视频在线观看| 最近中文字幕2019免费版| 国产成人精品婷婷| 国产精品美女特级片免费视频播放器| 亚洲在线自拍视频| 国国产精品蜜臀av免费| 中国国产av一级| 欧美日韩亚洲高清精品| av.在线天堂| 777米奇影视久久| 亚洲欧美中文字幕日韩二区| 日本熟妇午夜| 日韩欧美三级三区| 久久99热6这里只有精品| 最近最新中文字幕大全电影3| 国语对白做爰xxxⅹ性视频网站| 亚洲国产成人一精品久久久| av在线蜜桃| 午夜亚洲福利在线播放| 国产v大片淫在线免费观看| 插逼视频在线观看| 搡老妇女老女人老熟妇| 午夜精品一区二区三区免费看| 纵有疾风起免费观看全集完整版 | 亚洲最大成人av| 精品亚洲乱码少妇综合久久| 国产精品综合久久久久久久免费| 听说在线观看完整版免费高清| 五月天丁香电影| 国产亚洲最大av| 日韩一区二区三区影片| 伦理电影大哥的女人| 最近最新中文字幕免费大全7| 最近的中文字幕免费完整| 日本熟妇午夜| 亚洲伊人久久精品综合| 国内精品宾馆在线| 在线播放无遮挡| 爱豆传媒免费全集在线观看| 91精品国产九色| 大话2 男鬼变身卡| 夫妻午夜视频| 成年av动漫网址| 久久精品人妻少妇| 一本久久精品| 十八禁网站网址无遮挡 | 乱人视频在线观看| 99热全是精品| 久久久久久久久久久免费av| 久久这里只有精品中国| 成年人午夜在线观看视频 | 精品人妻偷拍中文字幕| 视频中文字幕在线观看| 精品久久久噜噜| 男人舔女人下体高潮全视频| 免费观看的影片在线观看| 赤兔流量卡办理| 美女国产视频在线观看| 免费看av在线观看网站| 午夜福利高清视频| 国产成人a∨麻豆精品| 欧美97在线视频| 亚洲精品久久久久久婷婷小说| 亚洲aⅴ乱码一区二区在线播放| 一级爰片在线观看| 欧美高清成人免费视频www| 久久久久久久国产电影| 久久久久久久久久久免费av| 男女边吃奶边做爰视频| 九九爱精品视频在线观看| 国产有黄有色有爽视频| 欧美性猛交╳xxx乱大交人| 日韩欧美国产在线观看| 男女边摸边吃奶| 毛片一级片免费看久久久久| 大又大粗又爽又黄少妇毛片口| 日本午夜av视频| 在现免费观看毛片| 少妇高潮的动态图| 国产成人精品婷婷| 韩国av在线不卡| av.在线天堂| 亚洲aⅴ乱码一区二区在线播放| 欧美变态另类bdsm刘玥| 亚洲av男天堂| 人妻系列 视频| 波野结衣二区三区在线| 久久久久久久久久久丰满| 国产高清三级在线| 22中文网久久字幕| 一级毛片我不卡| 国产一区二区三区综合在线观看 | 亚洲成人中文字幕在线播放| 在线观看一区二区三区| 国产精品无大码| 日本欧美国产在线视频| 内射极品少妇av片p| 我的女老师完整版在线观看| 色视频www国产| 永久网站在线| 少妇猛男粗大的猛烈进出视频 | 国产高清国产精品国产三级 | 99热这里只有精品一区| 国产乱人视频| 在线观看免费高清a一片| 国产又色又爽无遮挡免| 久久99热这里只有精品18| 免费黄色在线免费观看| 亚洲第一区二区三区不卡| 欧美一区二区亚洲| 伊人久久国产一区二区| 久久99蜜桃精品久久| 中文乱码字字幕精品一区二区三区 | 亚洲伊人久久精品综合| 床上黄色一级片| 嫩草影院新地址| 日韩视频在线欧美| 美女主播在线视频| 国产亚洲精品久久久com| 久久久久久久久久久免费av| 一级毛片电影观看| 国产精品麻豆人妻色哟哟久久 | 99九九线精品视频在线观看视频| 亚洲国产成人一精品久久久| 男人舔奶头视频| 国产精品久久视频播放| 少妇熟女aⅴ在线视频| or卡值多少钱| 真实男女啪啪啪动态图| 婷婷色综合大香蕉| 亚洲欧美一区二区三区国产| 熟女电影av网| 一区二区三区四区激情视频| kizo精华| 亚洲精品国产成人久久av| 亚洲在线自拍视频| 3wmmmm亚洲av在线观看| 久久人人爽人人片av| av在线蜜桃| 能在线免费看毛片的网站| 亚洲精品一二三| 国产亚洲午夜精品一区二区久久 | av播播在线观看一区| 国产欧美另类精品又又久久亚洲欧美| 国产精品久久久久久久久免| 国内少妇人妻偷人精品xxx网站| 一个人观看的视频www高清免费观看| 极品教师在线视频| 国产一级毛片七仙女欲春2| 国模一区二区三区四区视频| 99久久九九国产精品国产免费| 乱人视频在线观看| 婷婷色av中文字幕| 精品久久久久久成人av| 蜜臀久久99精品久久宅男| 精品人妻熟女av久视频| 国产精品久久久久久久电影| 校园人妻丝袜中文字幕| 日日摸夜夜添夜夜添av毛片| 男女边吃奶边做爰视频| 精品久久久噜噜| 亚洲国产精品专区欧美| 中文字幕免费在线视频6| 日韩欧美精品v在线| 狂野欧美白嫩少妇大欣赏| 欧美精品一区二区大全| 99久国产av精品国产电影| 一个人看的www免费观看视频| 亚洲欧美日韩卡通动漫| 伊人久久精品亚洲午夜| 我要看日韩黄色一级片| 欧美高清成人免费视频www| 2018国产大陆天天弄谢| 日韩视频在线欧美| 一级毛片 在线播放| 一区二区三区免费毛片| 性色avwww在线观看| 九草在线视频观看| 舔av片在线| 精品久久久久久久人妻蜜臀av| 高清av免费在线| 日韩视频在线欧美| 国产亚洲91精品色在线| 久久精品熟女亚洲av麻豆精品 | 亚洲精品乱久久久久久| 国产在线一区二区三区精| 国产黄频视频在线观看| 少妇熟女欧美另类| 国产永久视频网站| 中文乱码字字幕精品一区二区三区 | 人体艺术视频欧美日本| 欧美xxxx黑人xx丫x性爽| 成人亚洲精品一区在线观看 | 日日啪夜夜爽| 看非洲黑人一级黄片| 久久久久久久大尺度免费视频| 美女大奶头视频| 三级国产精品片| 神马国产精品三级电影在线观看| 国产老妇伦熟女老妇高清| 三级男女做爰猛烈吃奶摸视频| 在线观看免费高清a一片| 一个人看视频在线观看www免费| av在线亚洲专区| 日本色播在线视频| 国产精品国产三级国产专区5o| 亚洲精品日韩在线中文字幕| 亚洲欧美一区二区三区国产| 久久久亚洲精品成人影院| 国产精品一区www在线观看| 亚洲av日韩在线播放| 乱系列少妇在线播放| 精品人妻偷拍中文字幕| 亚洲人与动物交配视频| 两个人的视频大全免费| 久久久色成人| 寂寞人妻少妇视频99o| 精品欧美国产一区二区三| 国产精品久久久久久久电影| 一区二区三区乱码不卡18| 网址你懂的国产日韩在线| 一个人观看的视频www高清免费观看| 免费无遮挡裸体视频| 国产高清有码在线观看视频| 欧美成人午夜免费资源| 青春草视频在线免费观看| 美女黄网站色视频| av专区在线播放| 亚洲自偷自拍三级| 99热这里只有是精品50| 2018国产大陆天天弄谢| 成人综合一区亚洲| 亚洲av成人av| 成年女人在线观看亚洲视频 | 亚洲乱码一区二区免费版| 欧美丝袜亚洲另类| 午夜福利在线在线| 水蜜桃什么品种好| 麻豆久久精品国产亚洲av| 国产精品一区www在线观看| 国产精品一区二区性色av| 欧美另类一区| 一夜夜www| 国产午夜精品论理片| 亚洲精品久久午夜乱码| 看免费成人av毛片| 少妇裸体淫交视频免费看高清| 看免费成人av毛片| videossex国产| 边亲边吃奶的免费视频| 日本黄色片子视频| 五月伊人婷婷丁香| 丝袜喷水一区| 搡老乐熟女国产| 亚洲色图av天堂| 毛片女人毛片| 亚洲精品乱码久久久久久按摩| 人妻系列 视频| 亚洲熟女精品中文字幕| 午夜精品国产一区二区电影 | 久久久欧美国产精品| 国产黄a三级三级三级人| kizo精华| 日本免费a在线| 亚洲最大成人中文| 性色avwww在线观看| 成人毛片a级毛片在线播放| 国产精品美女特级片免费视频播放器| 亚洲成人精品中文字幕电影| 色尼玛亚洲综合影院| 国产亚洲91精品色在线| 日日摸夜夜添夜夜添av毛片| 天美传媒精品一区二区| 女人久久www免费人成看片| 亚洲国产最新在线播放| 亚洲欧美一区二区三区黑人 | av又黄又爽大尺度在线免费看| 人人妻人人看人人澡| 日日干狠狠操夜夜爽| 高清午夜精品一区二区三区| 国产美女午夜福利| 哪个播放器可以免费观看大片| 日日啪夜夜爽| 色综合站精品国产| 欧美人与善性xxx| 好男人视频免费观看在线| 寂寞人妻少妇视频99o| 午夜老司机福利剧场| 国产在视频线精品| 成人亚洲欧美一区二区av| 成年人午夜在线观看视频 | 男女下面进入的视频免费午夜| 精品99又大又爽又粗少妇毛片| 丰满人妻一区二区三区视频av| 久久久精品免费免费高清| 国产黄色小视频在线观看| 成人亚洲精品一区在线观看 | 日韩在线高清观看一区二区三区| 免费观看性生交大片5|