專利名稱:基于內(nèi)容訪問(wèn)網(wǎng)絡(luò)的大規(guī)??臻g矢量數(shù)據(jù)管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及空間矢量數(shù)據(jù)管理方法,尤其涉及一種基于內(nèi)容訪問(wèn)網(wǎng)絡(luò)
(Content-Addressable Network,簡(jiǎn)稱CAN)的大規(guī)??臻g矢量數(shù)據(jù)存儲(chǔ)和 檢索方法。
背景技術(shù):
空間數(shù)據(jù)是現(xiàn)代地理信息系統(tǒng)中位置信息服務(wù)、智能交通、房地產(chǎn)信 息服務(wù)、物流管理及城市基礎(chǔ)設(shè)施管理等典型地理信息系統(tǒng)應(yīng)用的支撐要 素之一,研究空間數(shù)據(jù)管理方法是控制和調(diào)節(jié)現(xiàn)代地理信息空間中物質(zhì)流、 能量流和人流動(dòng)態(tài)平衡及持續(xù)發(fā)展的基本要求。
空間數(shù)據(jù)模型是描述現(xiàn)實(shí)世界中空間實(shí)體及其相互間聯(lián)系的概念,是 研究空間數(shù)據(jù)的組織和設(shè)計(jì)空間數(shù)據(jù)庫(kù)模式的基本方法?,F(xiàn)代地理信息系 統(tǒng)中的空間數(shù)據(jù)模型有三種要素(Feature)模型、網(wǎng)絡(luò)(Network)模 型以及場(chǎng)(Field)模型。其中,要素模型強(qiáng)調(diào)離散對(duì)象,根據(jù)對(duì)象邊界線 來(lái)描述離散現(xiàn)象,這種數(shù)據(jù)模型的實(shí)現(xiàn)稱之為空間矢量數(shù)據(jù)。
在地理信息系統(tǒng)的實(shí)現(xiàn)中,空間矢量數(shù)據(jù)模型表現(xiàn)為空間矢量數(shù)據(jù)對(duì) 象(簡(jiǎn)稱為空間對(duì)象)??臻g對(duì)象具有兩個(gè)重要特征 一是所有空間對(duì)象均 嵌入一個(gè)背景坐標(biāo)空間中;二是每個(gè)空間對(duì)象均具有坐標(biāo)信息。常用的背 景坐標(biāo)空間是歐式空間,參照坐標(biāo)系是笛卡爾坐標(biāo)系。以二維歐式空間為 例,它的基本空間對(duì)象有三類,分別是點(diǎn)、線和面。點(diǎn)是有特定位置的零 維對(duì)象,通常用坐標(biāo)(x, y)表示;線是具有邊界的一維對(duì)象,由多個(gè)點(diǎn) 構(gòu)成;面是具有區(qū)域和邊界的二維對(duì)象,由一系列封閉線組成。
在基于計(jì)算機(jī)系統(tǒng)平臺(tái)的空間矢量數(shù)據(jù)的管理系統(tǒng)中,高效存儲(chǔ)和快速檢索是兩個(gè)重要的組成部分。最初,空間矢量數(shù)據(jù)管理是以文件形式存 儲(chǔ)各種自定義格式的空間矢量數(shù)據(jù),這種方法專注于高效存儲(chǔ)而忽視了快 速檢索。隨著人們對(duì)空間矢量數(shù)據(jù)的不斷應(yīng)用和認(rèn)識(shí),結(jié)合空間索引進(jìn)行 空間矢量數(shù)據(jù)管理逐漸成為一種較為成熟的方法??臻g索引是提高對(duì)空間 矢量數(shù)據(jù)獲取效率的有效方法,它通過(guò)綜合考慮計(jì)算機(jī)體系結(jié)構(gòu)和空間矢 量數(shù)據(jù)多維性來(lái)增強(qiáng)整個(gè)檢索計(jì)算過(guò)程的針對(duì)性。這種技術(shù)的發(fā)展使得各 種空間矢量數(shù)據(jù)庫(kù)及管理系統(tǒng)不斷涌現(xiàn),基于這些系統(tǒng)的管理模式已經(jīng)成 為空間矢量數(shù)據(jù)管理的典型范例。
現(xiàn)有空間矢量數(shù)據(jù)的管理方法在高效存儲(chǔ)和快速檢索方面雖然較為成 熟,但在應(yīng)對(duì)空間矢量數(shù)據(jù)管理的大規(guī)模方面遭遇新挑戰(zhàn)。當(dāng)空間矢量數(shù) 據(jù)規(guī)模增大到一定程度后,對(duì)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)平臺(tái)需要進(jìn)行擴(kuò)展和更新。 通常采用的策略是由專業(yè)技術(shù)人員進(jìn)行計(jì)算機(jī)系統(tǒng)軟硬件升級(jí)。這種方式 表面上能夠解決空間矢量數(shù)據(jù)的大規(guī)模問(wèn)題。但是,它需要專業(yè)人員利用 復(fù)雜軟件技術(shù)與硬件設(shè)備才能順利進(jìn)行,因此可擴(kuò)展性不夠強(qiáng)大。如何降 低空間矢量數(shù)據(jù)管理擴(kuò)展模式的復(fù)雜性成為人們?cè)诠芾泶笠?guī)??臻g矢量數(shù) 據(jù)中亟需解決的一個(gè)問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是解決大規(guī)??臻g矢量數(shù)據(jù)管理的可擴(kuò)展 性,提供一種基于內(nèi)容訪問(wèn)網(wǎng)絡(luò)的大規(guī)模空間矢量數(shù)據(jù)高效存儲(chǔ)、快速檢 索和可控負(fù)載均衡的管理方法。
本發(fā)明提供一種基于CAN的大規(guī)??臻g矢量數(shù)據(jù)存儲(chǔ)方法,其特征在
于包括以下步驟
第一步,針對(duì)計(jì)算機(jī)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)平臺(tái),構(gòu)建結(jié)構(gòu)化的CAN;
將空間對(duì)象的背景坐標(biāo)空間R映射為CAN的虛擬坐標(biāo)空間;建立CAN中每個(gè)計(jì)算機(jī)的邏輯數(shù)據(jù)結(jié)構(gòu)i^(/尸,ZoM,ra),A^妙6oM),稱戶 為對(duì)等存儲(chǔ)結(jié)點(diǎn),簡(jiǎn)稱結(jié)點(diǎn);其中,/戶表示結(jié)點(diǎn)戶的網(wǎng)絡(luò)地址;Zo"e表示戶 的CAN區(qū)域;WD表示尸的CAN標(biāo)識(shí),用二進(jìn)制數(shù)表示;A^g^o^表示尸的 鄰居結(jié)點(diǎn),用指向其它結(jié)點(diǎn)的指針集合表示;
如果CAN中沒(méi)有任何結(jié)點(diǎn),則新結(jié)點(diǎn)戶。直接設(shè)置為CAN結(jié)點(diǎn),即令 尸0 .Zo"e = i ,尸o , = 0 , A .iVe妙6ors =朋〃 ;
如果CAN中存在結(jié)點(diǎn),則通過(guò)任一個(gè)結(jié)點(diǎn)計(jì)算將新結(jié)點(diǎn)戶。的映射點(diǎn)^ ; 查找包含^的結(jié)點(diǎn)A;分解^的自身區(qū)域并接收新結(jié)點(diǎn)的A加入;結(jié)點(diǎn)i^與 新結(jié)點(diǎn)P。各自更新自身的數(shù)據(jù)結(jié)構(gòu)記錄;
第二步,建立空間對(duì)象索引;
建立待存儲(chǔ)空間對(duì)象的數(shù)據(jù)結(jié)構(gòu)W,"3,其中X代表空間對(duì)象特征, "°=&力稱為空間對(duì)象的控制點(diǎn),用于表示空間對(duì)象在四叉樹中的位置;
建立基于背景坐標(biāo)空間R的四叉樹索引數(shù)據(jù)結(jié)構(gòu);
利用四叉樹索引將每個(gè)空間對(duì)象在背景坐標(biāo)空間R中進(jìn)行定位,形成 每個(gè)空間對(duì)象的索引信息記錄;
第三步,將空間對(duì)象存儲(chǔ)到CAN的結(jié)點(diǎn)上;
將每個(gè)空間對(duì)象映射為CAN的虛擬坐標(biāo)空間R中的映射點(diǎn);
在CAN中采用CAN路由算法遞歸査找能夠包含該映射點(diǎn)的唯一結(jié)點(diǎn);
將空間對(duì)象存儲(chǔ)到該結(jié)點(diǎn)上,更新該結(jié)點(diǎn)上四叉樹節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)記錄。
本發(fā)明還提供一種大規(guī)??臻g矢量數(shù)據(jù)的空間范圍檢索方法,空間矢 量數(shù)據(jù)按照上述方法存儲(chǔ),其特征在于包括以下步驟-
第一步,建立空間范圍檢索條件的數(shù)據(jù)結(jié)構(gòu),描述空間范圍檢索條件的信息;
第二步,由請(qǐng)求査詢的結(jié)點(diǎn)P。根據(jù)索引判斷是否需要執(zhí)行該空間范圍檢
索;
第三步,如果需要執(zhí)行,則計(jì)算四叉樹根節(jié)點(diǎn)的映射點(diǎn),并調(diào)用CAN 路由算法將空間范圍檢索條件發(fā)送至該映射點(diǎn)所在的結(jié)點(diǎn)P上;
第四步,結(jié)點(diǎn)P執(zhí)行査詢條件并將結(jié)果返回給請(qǐng)求査詢的結(jié)點(diǎn)尸。; 第五步,結(jié)點(diǎn)P根據(jù)索引判斷是否需要繼續(xù)執(zhí)行該空間范圍檢索;
第六步,如果需要執(zhí)行,則結(jié)點(diǎn)P根據(jù)四叉樹索引計(jì)算子節(jié)點(diǎn)的映射點(diǎn), 然后調(diào)用CAN路由算法將空間范圍檢索條件發(fā)送至該映射點(diǎn)所在的結(jié)點(diǎn)上 進(jìn)行遞歸查詢。
本發(fā)明還提供一種基于前述空間矢量數(shù)據(jù)存儲(chǔ)方法的負(fù)載均衡方法, 其特征在于包括以下步驟
第一步,建立包含負(fù)載信息的每個(gè)結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。 第二步,每個(gè)結(jié)點(diǎn)根據(jù)負(fù)載信息定時(shí)判斷是否存在負(fù)載失衡。 第三步,如果結(jié)點(diǎn)P存在負(fù)載過(guò)重情況,則進(jìn)行負(fù)載均衡。 由P在CAN中啟動(dòng)泛洪式查詢機(jī)制尋找一個(gè)合適的其它結(jié)點(diǎn); 在指定的時(shí)間間隔后,判斷是否找到一個(gè)合適的結(jié)點(diǎn); 如果找到一個(gè)合適的結(jié)點(diǎn)P。,則P和尸。之間重新分配負(fù)載,更新各自的 數(shù)據(jù)結(jié)構(gòu)記錄。
第四步,對(duì)負(fù)載較輕的結(jié)點(diǎn)解除負(fù)載均衡。 判斷結(jié)點(diǎn)P是否存在負(fù)載較輕情況;
如果存在,則判斷P是否曾經(jīng)執(zhí)行過(guò)負(fù)載過(guò)重的負(fù)載均衡算法; 如果執(zhí)行過(guò),則解除P的負(fù)載均衡限制。通過(guò)采取基于CAN的存儲(chǔ)方法,取得了空間矢量數(shù)據(jù)管理模式的高擴(kuò) 展性。通過(guò)采取基于CAN和四叉樹的空間范圍檢索方法,取得了空間矢量 數(shù)據(jù)快速檢索的效果。通過(guò)采用負(fù)載均衡算法,進(jìn)一步提升了整個(gè)空間矢 量數(shù)據(jù)管理過(guò)程中的負(fù)載均衡度,增強(qiáng)了基于CAN中大規(guī)??臻g矢量數(shù)據(jù) 管理行為的可擴(kuò)展性。
圖l是本發(fā)明的基于CAN的大規(guī)??臻g矢量數(shù)據(jù)存儲(chǔ)方法的流程示意
圖2、圖3和圖4分別是按照本發(fā)明一實(shí)施方式對(duì)圖1中的步驟11、 步驟12以及步驟13進(jìn)行詳細(xì)說(shuō)明的流程示意圖5是本發(fā)明一實(shí)施方式所述的空間范圍檢索方法流程示意圖6是本發(fā)明一實(shí)施方式所述的負(fù)載均衡方法流程示意圖7是本發(fā)明一實(shí)施方式中計(jì)算映射點(diǎn)的流程示意圖8是本發(fā)明一實(shí)施方式查找包含映射點(diǎn)P的結(jié)點(diǎn)的CAN路由算法流程
示意圖9是圖1中的步驟11構(gòu)建CAN的示例圖,即圖2的一個(gè)例子; 圖10是圖1中的步驟12建立空間對(duì)象索引的示例圖,即圖3的一個(gè) 例子。
具體實(shí)施例方式
下面參照附圖對(duì)本發(fā)明的實(shí)施方式進(jìn)行更全面的描述。在不失一般性 的情況下,為表述方便,假設(shè)在二維空間中描述空間對(duì)象。
圖1是本發(fā)明提供的基于CAN的大規(guī)模空間矢量數(shù)據(jù)存儲(chǔ)方法的流程
示意圖,包括三個(gè)步驟步驟11構(gòu)建CAN;步驟12建立空間對(duì)象索引;步
驟13將空間對(duì)象存儲(chǔ)到CAN中。下面結(jié)合圖2、圖3和圖4對(duì)每一步進(jìn)行詳細(xì)說(shuō)明。
圖2是按照本發(fā)明一實(shí)施方式對(duì)圖1中的步驟11構(gòu)建CAN的詳細(xì)說(shuō)明 流程示意圖,其過(guò)程為-
步驟21.將空間對(duì)象的背景坐標(biāo)空間i 映射為CAN的虛擬坐標(biāo)空間, 即設(shè)定CAN虛擬坐標(biāo)空間為及。其中,及-((Xmin,;^),(^戰(zhàn),;w)),表示二
維笛卡爾坐標(biāo)空間中(^in,j"n)和(^^^M)兩個(gè)點(diǎn)之間的矩形區(qū)域,矩形
區(qū)域的大小根據(jù)將要存儲(chǔ)的空間對(duì)象集合的范圍確定。
步驟22.將計(jì)算機(jī)存儲(chǔ)網(wǎng)絡(luò)中的存儲(chǔ)單元視為結(jié)點(diǎn),如在微型計(jì)算機(jī) 網(wǎng)絡(luò)存儲(chǔ)平臺(tái)中,將每臺(tái)微型計(jì)算機(jī)視為一個(gè)結(jié)點(diǎn)。構(gòu)建CAN中結(jié)點(diǎn)戶的數(shù) 據(jù)結(jié)構(gòu)為(/戶,Zow,P7A^/g^o"),其中,/尸表示P的網(wǎng)絡(luò)地址;Zo"e表示尸的 CAN矩形區(qū)域,用((x。,y。),",:^)表示;KTO表示P的CAN標(biāo)識(shí),用二進(jìn)制數(shù) 表示;A^g^c^表示戶的鄰居結(jié)點(diǎn),用指向其它結(jié)點(diǎn)的指針集合表示。
步驟23.如果CAN中沒(méi)有任何結(jié)點(diǎn),則新結(jié)點(diǎn)P。直接加入CAN中,即 令尸o.Zowe-i , />0.W£> = 0, P0JVe/g/z6oM = "w〃,算法結(jié)束。否則轉(zhuǎn)入步驟24。
步驟24.由CAN中任一結(jié)點(diǎn)P計(jì)算新結(jié)點(diǎn)尸。的映射點(diǎn)^。
步驟25.對(duì)于戶的所有鄰居,采用CAN路由算法查找包含映射點(diǎn)^的結(jié) 點(diǎn),同時(shí)也將P。的信息發(fā)送到該結(jié)點(diǎn),將其記作P,。
步驟26.《.Zo"e平分為兩個(gè)部分,記作Z,和Z,。平分的計(jì)算過(guò)程為 設(shè)A.Zo"e-(",x),(X2,力",則當(dāng)|0^2-")/0^->^)|>^2—x》/(x鵬-;^)l時(shí), Z,((W,),(jc2,0;,+:k2)/2", 22={(^々1+沁)/2),(;^,>;2)}; 否貝U , zi ={(Wi),((Xi +A)/2j2)} , Z2 ={((《+12)/2,乂),(;》:2^2)} 。 i^Zo"e-Z,;尸0.2。"6 = 22; A.F/D左移一位;尸。.WD = +1 。
步驟27.對(duì)于《的所有鄰居iV,,若其與^距離不為零,即cfotanCe(A^ZO"e,A.ZO"e)! = 0,則從《鄰居中刪除之;若其與尸。距離為零,則 將其加入P。鄰居中;將A和戶。分別加入到對(duì)方的鄰居中。
圖9舉例說(shuō)明了圖1中的步驟11構(gòu)建CAN的過(guò)程。如圖所示,設(shè)CAN 中已經(jīng)存在A1、 B2、 C3、 D4、 E5、 F6六個(gè)結(jié)點(diǎn),新結(jié)點(diǎn)G7從B2上開始加 入網(wǎng)絡(luò)(圖la),則由B2計(jì)算G7的映射點(diǎn),査找包含映射點(diǎn)的結(jié)點(diǎn)D4 (圖 lb); D4結(jié)點(diǎn)將自身區(qū)域分解(圖lc); D4和G7結(jié)點(diǎn)各自更新自身鄰居關(guān) 系(圖ld)。
圖7是圖2的步驟24中計(jì)算結(jié)點(diǎn)戶。映射點(diǎn)p的過(guò)程,在本發(fā)明實(shí)施方 式的其他過(guò)程中同樣適用,包括下述步驟
步驟71.將需要映射的字符串,即結(jié)點(diǎn)P。的/P地址對(duì)應(yīng)的字符串,轉(zhuǎn) 化為哈希代碼h A為整數(shù);
步驟72.調(diào)用哈希函數(shù)y;W-(((^J + 6,)。/嗎)。/(^)將A:映射為整數(shù);c;
步驟73.調(diào)用哈希函數(shù)/2(" = ((("2^ + 62)%"2)%附2)將*映射為整數(shù):^; 步驟74.返回映射點(diǎn)p, p的坐標(biāo)值為(;c + ;c^,;; + :^)。
其中,P。的/P地址轉(zhuǎn)化為哈希代碼;t可直接在高級(jí)程序語(yǔ)言中獲取,如 C#語(yǔ)言中的S/r/wg.(^/foWCocfe()方法;上述算法中各個(gè)參數(shù)取值情況為 Wi=kax-^n|, "!=^+8, ",=2, 6,-巧-2, w2=kmax-ymin|, "2=w2+8, fl2=4, 62 ="廣4 , (^ in, JVin)和(A:隨,人ax)是虛擬坐標(biāo)空間及的坐標(biāo)。
圖8是圖2的步驟25中査找包含映射點(diǎn)p的結(jié)點(diǎn)的過(guò)程,在本發(fā)明實(shí) 施方式的其他過(guò)程中同樣適用,包括下述步驟
步驟81.由結(jié)點(diǎn)P。的每一個(gè)鄰居結(jié)點(diǎn)^,計(jì)算映射點(diǎn)p到《.&"e的距離 c/,,設(shè)《是其中最小的一個(gè),《對(duì)應(yīng)的鄰居結(jié)點(diǎn)為A。
步驟82.如果/ 在A的Zo"e內(nèi),即《等于0,則返回A,算法結(jié)束。否則,轉(zhuǎn)入步驟83。
步驟83.令尸。=《,轉(zhuǎn)入步驟81進(jìn)行遞歸。
圖3是按照本發(fā)明一實(shí)施方式對(duì)圖1的步驟12建立空間對(duì)象索引的詳 細(xì)流程示意圖,包括下述步驟
步驟31.建立待存儲(chǔ)空間對(duì)象的數(shù)據(jù)結(jié)構(gòu)為{義,"°},其中,X是描述空
間對(duì)象特征的點(diǎn)、線、面或其它數(shù)據(jù)結(jié)構(gòu),"。-(;c,力稱為空間對(duì)象的控制點(diǎn),
用于表示空間對(duì)象在四叉樹中的位置。
步驟32.建立四叉樹索引的數(shù)據(jù)結(jié)構(gòu)。令四叉樹中每個(gè)節(jié)點(diǎn)代表的區(qū) 域中心為"-k,;g,稱為節(jié)點(diǎn)的控制點(diǎn)。當(dāng)空間對(duì)象被四叉樹索引后,其
所在的四叉樹節(jié)點(diǎn)的控制點(diǎn)"就是該空間對(duì)象的控制點(diǎn)"。。數(shù)據(jù)結(jié)構(gòu) Z^)-W,《,《,《,fcO表示控制點(diǎn)為w的四叉樹節(jié)點(diǎn)信息,《、《、《和《為 整數(shù),表示4個(gè)象限的剖分深度,//W表示存儲(chǔ)在該節(jié)點(diǎn)的空間對(duì)象集合; 用i (")表示控制點(diǎn)"所在節(jié)點(diǎn)區(qū)域;用丄(")表示控制點(diǎn)"在整個(gè)四叉樹樹中 的深度;用C(",/)表示控制點(diǎn)"的第/個(gè)后代(f = 1,2,3, 4)。
步驟33.根據(jù)空間對(duì)象的數(shù)據(jù)結(jié)構(gòu)和四叉樹的數(shù)據(jù)結(jié)構(gòu)調(diào)用步驟33. 1 至步驟33. 3來(lái)計(jì)算每一個(gè)空伺對(duì)象的控制點(diǎn)^ 。
步驟33.1.令空間對(duì)象{%,}的控制點(diǎn)"°等于四叉樹樹根節(jié)點(diǎn)控制點(diǎn)
步驟33. 2.如果JiT包含在控制點(diǎn)"。所在的區(qū)域及("。)內(nèi)或者丄("。)深度達(dá) 到整個(gè)四叉樹樹的最大限定深度/_,則返回"。,算法結(jié)束。否則轉(zhuǎn)向步驟 33.3。
步驟33.3.對(duì)于"。的每個(gè)后代C("V),如果y和i (C("V))相交,則令 "、C("V),轉(zhuǎn)向步驟33.2遞歸。其中,四叉樹樹的最大限定深度/^,根據(jù)索引效率和索引精度確定,
本實(shí)施方式中/_=10。
圖IO舉例說(shuō)明了建立空間對(duì)象索引的過(guò)程。如圖所示,建立空間對(duì)象
W10和Yll的索引過(guò)程分別是得到W10的控制點(diǎn)O00和Yll的控制點(diǎn) C22。對(duì)于控制點(diǎn)O00而言,D(O00)={l,l,2,l,{W10}}, R(O00)為整個(gè)全區(qū) 域,L(O00)=l, C(OOO, 1)=A20, C(OOO, 2)=B21, C(OOO, 3)=C22,
C(OOO, 4)=D23。對(duì)于控制點(diǎn)C22而言,D(C22)={1,1,1,1,{Y11}}, R(C22) 為左下角的四分之一個(gè)區(qū)域,L(C22)=2, C(C22, 1)=CA, C(C22, 2)=CB, C(C22,3)=CC, C(C22,4)=CD。
圖4是按照本發(fā)明一實(shí)施方式對(duì)圖1中的步驟13將空間對(duì)象存儲(chǔ)到CAN 中的詳細(xì)流程示意圖,包括下述步驟
步驟41.計(jì)算空間對(duì)象pr,"3控制點(diǎn)"。的映射點(diǎn)^。
步驟42.査找包含p的結(jié)點(diǎn)^。
步驟43.將空間對(duì)象pr,tO存儲(chǔ)在A上,并更新£>("°)./加+ = %。
步驟44.如果"。的父節(jié)點(diǎn) 為空,則算法結(jié)束。否則,由g計(jì)算"p的
映射點(diǎn)&。對(duì)于^的所有鄰居,査找包含&的結(jié)點(diǎn),記作&。更新尸p上的
D K+ = 1。令^=&, "°="P,轉(zhuǎn)向第44步遞歸。
其中,"。的映射點(diǎn)計(jì)算過(guò)程為將f的坐標(biāo)轉(zhuǎn)化為字符串后再調(diào)用圖7
的算法。
圖5是本發(fā)明一實(shí)施方式所述的空間范圍檢索方法的流程示意圖,包 括下述步驟
步驟51.建立空間范圍檢索條件的數(shù)據(jù)結(jié)構(gòu)(S,"'),其中,2表示空間 對(duì)象的檢索范圍。在二維空間中,^與空間矢量模型中的面對(duì)象相同,由一
13系列封閉的線構(gòu)成;"'表示四叉樹索引中的控制點(diǎn)。
步驟52.由請(qǐng)求査詢的結(jié)點(diǎn)^判斷是否需要執(zhí)行檢索,即令"'等于四叉樹根節(jié)點(diǎn)的控制點(diǎn)",然后判斷離')門^(D是否成立,如果成立,則算法結(jié)束。否則轉(zhuǎn)入步驟53。
步驟53.計(jì)算"'的映射點(diǎn)/7,利用CAN路由算法尋找包含p的結(jié)點(diǎn)p,步驟54.由結(jié)點(diǎn)《執(zhí)行査詢,并調(diào)用CAN路由算法將結(jié)果發(fā)送至戶。。
步驟55.由P,判斷是否需要繼續(xù)執(zhí)行,即,對(duì)于"'的每一個(gè)后代C("',/),令"'-cV,!'),如果及("')r^^①成立,則轉(zhuǎn)入步驟53遞歸,否則算法結(jié)束。
上述算法中,由于四叉樹索引結(jié)構(gòu)和CAN的路由機(jī)制均能夠提供可保證的系統(tǒng)性能,因此整個(gè)空間范圍檢索過(guò)程也能提供可保證的系統(tǒng)性能。
從圖l、圖2、圖3、圖4以及圖5所示例的基于CAN的空間矢量數(shù)據(jù)管理流程可以看出本發(fā)明所闡述的空間矢量數(shù)據(jù)管理方法適合于大規(guī)模情景。當(dāng)整個(gè)CAN系統(tǒng)的空間矢量數(shù)據(jù)規(guī)模增大到一定界限時(shí),只需要在CAN中動(dòng)態(tài)添加結(jié)點(diǎn)即可。依托于CAN自身所具有的良好自適應(yīng)擴(kuò)展能力,整個(gè)升級(jí)過(guò)程能夠完全實(shí)現(xiàn)自適應(yīng)性。
本發(fā)明的上述各個(gè)實(shí)現(xiàn)過(guò)程中,采用的算法將CAN結(jié)點(diǎn)和空間對(duì)象等均勻映射為虛擬坐標(biāo)空間中的點(diǎn),因此整個(gè)系統(tǒng)的負(fù)載均衡一般是良好的。為了控制空間對(duì)象分布不均時(shí)的負(fù)載失衡,本發(fā)明提供了一種可控的負(fù)載均衡算法。
圖6是本發(fā)明基于前述空間矢量數(shù)據(jù)存儲(chǔ)和檢索方法的負(fù)載均衡流程示意圖,過(guò)程為
第一步,建立描述結(jié)點(diǎn)的負(fù)載信息的數(shù)據(jù)結(jié)構(gòu)。如圖示步驟61,將CAN中結(jié)點(diǎn)P表示為(/P,Zo"e,WA^/g^OM,ZoW,&加erZowe),其中TP 、 Zo"e 、 FH)、A^g/^c^含義不變;Z^^表示尸的負(fù)載信息,用存儲(chǔ)在戶上的空間對(duì)象個(gè)數(shù)表示;Sc加^Zo^表示P的散射區(qū),用指向其它結(jié)點(diǎn)的指針表示。
第二步,由每個(gè)結(jié)點(diǎn)根據(jù)負(fù)載信息定時(shí)判斷是否存在負(fù)載失衡。如圖示步驟62,判斷戶是否負(fù)載過(guò)重,即如果戶的丄oW大于閥值A(chǔ)^,轉(zhuǎn)向第三步。否則,轉(zhuǎn)向第四步。
第三步,進(jìn)行負(fù)載均衡。如圖示步驟63到步驟66:
步驟63.尋找負(fù)載較輕結(jié)點(diǎn)《。即,如果散射區(qū)尸.&加erZo"e不為空,則令^-尸.&加e"o"e。否則,由P啟動(dòng)泛洪式査詢,尋找Z:。W小于i^的A。
步驟64.如果在預(yù)設(shè)時(shí)間內(nèi)沒(méi)有找到^,則算法結(jié)束。否則,轉(zhuǎn)向步驟65。
步驟65.對(duì)于P中的D("V/w任意空間對(duì)象X,計(jì)算義最小包圍框中心",,并計(jì)算",的映射點(diǎn)p,若^的橫坐標(biāo)小于",中心點(diǎn)的橫坐標(biāo),則將義在結(jié)點(diǎn)P的數(shù)據(jù)結(jié)構(gòu)記錄中刪除,存儲(chǔ)至g中。轉(zhuǎn)向步驟66。
步驟66.將尺加入到尸.Sca"erZo"e中,即令戶.Sc加erZo"e =尸4 ,算法結(jié)束。
第四步,解除負(fù)載均衡。如圖示步驟67到步驟69:
步驟67.判斷結(jié)點(diǎn)P是否負(fù)載較輕,即判斷P的丄o^是否小于閥值i^,如果小于,轉(zhuǎn)向步驟68。否則,算法結(jié)束。
步驟68.如果P的&"股rZo"e不為空,即P曾經(jīng)執(zhí)行過(guò)負(fù)載過(guò)重的負(fù)載均衡,轉(zhuǎn)向步驟69。否則,算法結(jié)束。
步驟69.對(duì)于尸.&"股"0恥所指向結(jié)點(diǎn)中存儲(chǔ)的任意空間對(duì)象%,計(jì)算其控制點(diǎn)"。的映射點(diǎn)P,若^"o"e,則將X在原結(jié)點(diǎn)中刪除,存儲(chǔ)至P中,并刪除?.&"故"0加所指向的結(jié)點(diǎn),即令P.&a"wZo"e = ""http://。算法結(jié)束。
上述算法中步驟65中計(jì)算空間對(duì)象Z的最小包圍框中心的方法為將空間對(duì)象%表示為點(diǎn)集合{《}(^1,2,...,"),其中,每個(gè)X,(x,,乂)。"x = (0.5. [min(jc》+ max(x,.)],0.5 [min(_>;,.) + max(y,.)])。
上述算法中,判斷戶是否出現(xiàn)負(fù)載失衡時(shí),需要待定系數(shù)i:^和i^,
設(shè)空間對(duì)象集合的元素個(gè)數(shù)為M, CAN結(jié)點(diǎn)個(gè)數(shù)為iV,則設(shè)Z^-4M/iV;通過(guò)采用本發(fā)明內(nèi)容所提供的方法,可以對(duì)包括點(diǎn)、線、面以及其它
復(fù)雜空間對(duì)象在CAN上進(jìn)行存儲(chǔ)。由于CAN較易實(shí)現(xiàn)擴(kuò)展性,因此整個(gè)CAN存儲(chǔ)系統(tǒng)在面對(duì)數(shù)據(jù)規(guī)模問(wèn)題上體現(xiàn)出較強(qiáng)的適應(yīng)能力。上述的本發(fā)明一個(gè)實(shí)施方式以二維歐式空間為坐標(biāo)空間,管理的空間矢量數(shù)據(jù)是點(diǎn)、線、面或其組合對(duì)象。對(duì)于本領(lǐng)域技術(shù)人員而言,將其擴(kuò)展至更高維空間矢量數(shù)據(jù)的管理是可行的。
本發(fā)明在存儲(chǔ)空間矢量數(shù)據(jù)時(shí)必須確定整個(gè)空間矢量數(shù)據(jù)集的背景坐標(biāo)空間范圍*,不能支持存儲(chǔ)過(guò)程中對(duì)i 的動(dòng)態(tài)修改,這是本發(fā)明適用范圍的一個(gè)限定。本發(fā)明沒(méi)有特別限定CAN中每個(gè)結(jié)點(diǎn)如何在本地索引空間矢量數(shù)據(jù),因此保留了 CAN中結(jié)點(diǎn)的自治能力。另外,本發(fā)明中的負(fù)載均衡算法在具體實(shí)現(xiàn)時(shí)根據(jù)空間矢量數(shù)據(jù)集分布狀況也可省略。上述各種修改或變化對(duì)于本領(lǐng)域技術(shù)人員而言是為了設(shè)計(jì)出特定用途的各種具體實(shí)例。
權(quán)利要求
1. 一種基于CAN的大規(guī)??臻g矢量數(shù)據(jù)存儲(chǔ)方法,其特征在于包括以下步驟第一步,針對(duì)計(jì)算機(jī)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)平臺(tái),構(gòu)建結(jié)構(gòu)化的CAN;將空間對(duì)象的背景坐標(biāo)空間R映射為CAN的虛擬坐標(biāo)空間;建立CAN中每個(gè)計(jì)算機(jī)的邏輯數(shù)據(jù)結(jié)構(gòu)P=(IP,Zone,VID,Neighbors),稱P為對(duì)等存儲(chǔ)結(jié)點(diǎn),簡(jiǎn)稱結(jié)點(diǎn);其中,IP表示結(jié)點(diǎn)P的網(wǎng)絡(luò)地址;Zone表示P的CAN區(qū)域;VID表示P的CAN標(biāo)識(shí),用二進(jìn)制數(shù)表示;Neighbors表示P的鄰居結(jié)點(diǎn),用指向其它結(jié)點(diǎn)的指針集合表示;如果CAN中沒(méi)有任何結(jié)點(diǎn),則新結(jié)點(diǎn)P0直接設(shè)置為CAN結(jié)點(diǎn),即令P0.Zone=R,P0.VID=0,P0.Neighbors=null;如果CAN中存在結(jié)點(diǎn),則通過(guò)任一個(gè)結(jié)點(diǎn)計(jì)算新結(jié)點(diǎn)P0的映射點(diǎn)p;查找包含p的結(jié)點(diǎn)Pk;分解Pk的自身區(qū)域并接收新結(jié)點(diǎn)P0的加入;結(jié)點(diǎn)Pk與新結(jié)點(diǎn)P0各自更新自身的數(shù)據(jù)結(jié)構(gòu)記錄;第二步,建立空間對(duì)象索引;建立待存儲(chǔ)空間對(duì)象的數(shù)據(jù)結(jié)構(gòu){X,u°},其中X代表空間對(duì)象特征,u°=(x,y)稱為空間對(duì)象的控制點(diǎn),用于表示空間對(duì)象在四叉樹中的位置;建立基于背景坐標(biāo)空間R的四叉樹索引數(shù)據(jù)結(jié)構(gòu);利用四叉樹索引將每個(gè)空間對(duì)象在背景坐標(biāo)空間R中進(jìn)行定位,形成每個(gè)空間對(duì)象的索引信息記錄;第三步,將空間對(duì)象存儲(chǔ)到CAN的結(jié)點(diǎn)上;將每個(gè)空間對(duì)象映射為CAN的虛擬坐標(biāo)空間R中的映射點(diǎn);在CAN中采用CAN路由算法查找能夠包含該映射點(diǎn)的唯一結(jié)點(diǎn);將空間對(duì)象存儲(chǔ)到該結(jié)點(diǎn)上,更新該結(jié)點(diǎn)上四叉樹節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)記錄。
2. 根據(jù)權(quán)利要求1所述的大規(guī)模空間矢量數(shù)據(jù)存儲(chǔ)方法,其特征在于計(jì)算結(jié)點(diǎn)映射點(diǎn)的過(guò)程,包括下述步驟將結(jié)點(diǎn)&的//>地址轉(zhuǎn)化為整數(shù)/t;根據(jù)背景坐標(biāo)空間R的維數(shù)N,利用不同的哈希函數(shù)將;t映射為N個(gè)整數(shù), 將N個(gè)整數(shù)映射到背景坐標(biāo)空間R的范圍內(nèi),以這N個(gè)整數(shù)值為坐標(biāo)的點(diǎn)即為映 射點(diǎn)。
3. —種大規(guī)模空間矢量數(shù)據(jù)的空間范圍檢索方法,空間矢量數(shù)據(jù)按照權(quán)利要求 l所述的方法存儲(chǔ),其特征在于包括以下步驟第一步,建立空間范圍檢索條件的數(shù)據(jù)結(jié)構(gòu),描述空間范圍檢索條件的信息;第二步,由請(qǐng)求査詢的結(jié)點(diǎn)P。根據(jù)索引判斷是否需要執(zhí)行該空間范圍檢索;第三步,如果需要執(zhí)行,則計(jì)算四叉樹根節(jié)點(diǎn)的映射點(diǎn),并調(diào)用CAN路由算法將空間范圍檢索條件發(fā)送至該映射點(diǎn)所在的結(jié)點(diǎn)P上;第四步,結(jié)點(diǎn)P執(zhí)行檢索并將結(jié)果返回給請(qǐng)求查詢的結(jié)點(diǎn)戶。;第五步,結(jié)點(diǎn)戶根據(jù)索引判斷是否需要繼續(xù)執(zhí)行該空間范圍檢索;第六步,如果需要執(zhí)行,則結(jié)點(diǎn)P根據(jù)四叉樹索引計(jì)算子節(jié)點(diǎn)的映射點(diǎn),然后調(diào)用CAN路由算法將空間范圍檢索條件發(fā)送至該映射點(diǎn)所在的結(jié)點(diǎn)上進(jìn)行遞歸査詢。
4. 一種管理大規(guī)??臻g矢量數(shù)據(jù)的的負(fù)載均衡方法,使用權(quán)利要求l所述的方 法存儲(chǔ)大規(guī)??臻g矢量數(shù)據(jù),其特征在于包括以下步驟第一步,建立描述結(jié)點(diǎn)的負(fù)載信息的數(shù)據(jù)結(jié)構(gòu);將CAN中結(jié)點(diǎn)P表示為(7P,Zo"e,P7A AWg/^oM,丄otK/,Sca"erZcwe),其中/P 、 Zo"e 、 WD、 A^gMo^含義與權(quán)利要求l相同;丄o^/表示戶的負(fù)載信息,用存儲(chǔ)在f上 的空間對(duì)象個(gè)數(shù)表示;Sc加"Zo股表示P的散射區(qū),用指向其它結(jié)點(diǎn)的指針表示;第二步,由每個(gè)結(jié)點(diǎn)根據(jù)負(fù)載信息定時(shí)判斷是否存在負(fù)載失衡; 判斷P是否負(fù)載過(guò)重,如果戶的"^大于閥值丄_,轉(zhuǎn)向第三步;否則,轉(zhuǎn) 向第四步;第三步,進(jìn)行負(fù)載均衡;尋找負(fù)載較輕結(jié)點(diǎn)《,即如果尺&加erZ。"e不為空,則令A(yù) = P.&a/^Zowe ;否 則,由戶啟動(dòng)泛洪式査詢,尋找丄o^/小于閥值i^的《; 如果在預(yù)設(shè)時(shí)間內(nèi)沒(méi)有找到/1,則方法結(jié)束;否則,對(duì)于戶中的任意空間對(duì)象X,計(jì)算X最小包圍框中心tv并計(jì)算^的 映射點(diǎn)p,若p的橫坐標(biāo)小于P.Zo"e中心點(diǎn)的橫坐標(biāo),則將Z在結(jié)點(diǎn)P的數(shù)據(jù)結(jié) 構(gòu)記錄中刪除,存儲(chǔ)至A中;將A加入到戶.5t加"Zow中,即令P.Sc"f敏Zow = A , 方法結(jié)束;第四步,解除負(fù)載均衡;判斷結(jié)點(diǎn)P是否負(fù)載較輕,即判斷P的丄o^是否小于闊值4^: 如果大于等于,則方法結(jié)束;如果小于,并且P的Sca"erZo"e不為空,對(duì)于P.Sc加erZo"e所指向結(jié)點(diǎn)中存儲(chǔ) 的任意空間對(duì)象X,計(jì)算其控制點(diǎn)"。的映射點(diǎn)p,若pW.Zo"e,則將義在原結(jié) 點(diǎn)中刪除,存儲(chǔ)至P中,并刪除A&"加do恥所指向的結(jié)點(diǎn),即令
5.根據(jù)權(quán)利要求4所述的一種大規(guī)模空間矢量數(shù)據(jù)管理的的負(fù)載均衡方法,其 特征在于闊值A(chǔ)^-4M/iV, 4^=^/87^,其中,M為空間對(duì)象集合的元素個(gè) 數(shù),AT為CAN結(jié)點(diǎn)個(gè)數(shù)。
全文摘要
本發(fā)明提供了一種基于內(nèi)容訪問(wèn)網(wǎng)絡(luò)的大規(guī)??臻g矢量數(shù)據(jù)管理方法,通過(guò)采取基于CAN的存儲(chǔ)方法,取得了空間矢量數(shù)據(jù)管理模式的高擴(kuò)展性。通過(guò)采取基于CAN和四叉樹的空間范圍檢索方法,取得了空間矢量數(shù)據(jù)快速檢索的效果。通過(guò)采用負(fù)載均衡算法,進(jìn)一步提升了整個(gè)空間矢量數(shù)據(jù)管理過(guò)程中的負(fù)載均衡度,增強(qiáng)了基于CAN中大規(guī)模空間矢量數(shù)據(jù)管理行為的可擴(kuò)展性。
文檔編號(hào)G06F17/30GK101477561SQ20091004245
公開日2009年7月8日 申請(qǐng)日期2009年1月9日 優(yōu)先權(quán)日2009年1月9日
發(fā)明者吳秋云, 宇 唐, 左懷玉, 寧 景, 軍 李, 偉 熊, 鈞 王, 果 程, 丹 薛, 鐘志農(nóng), 犖 陳 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)