專利名稱:一種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法
技術(shù)領(lǐng)域:
本發(fā)明涉及地理空間信息系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法。
背景技術(shù):
盡管計(jì)算機(jī)硬件技術(shù)發(fā)展迅速,數(shù)據(jù)庫管理系統(tǒng)性能也有了極大的提高,然而,快速處理復(fù)雜空間數(shù)據(jù)操作所需的處理能力和現(xiàn)有空間數(shù)據(jù)庫所提供的性能仍然無法完全匹配,這導(dǎo)致了三維空間數(shù)據(jù)庫的性能絕大多數(shù)受限于對(duì)空間操作的響應(yīng)處理能力和對(duì)大量三維空間數(shù)據(jù)存取的I/o吞吐能力。由于三維空間數(shù)據(jù)庫應(yīng)用總是伴隨著密集的I/O操作和CPU (Central Processing Unit,中央處理器)操作,通常CPU訪問內(nèi)存的速度非???納秒級(jí)),而訪問磁盤的I/O時(shí)間通常要比內(nèi)存訪問速度慢幾個(gè)數(shù)量級(jí)(微秒級(jí)),尤其是多用戶并發(fā)時(shí),三維空間數(shù)據(jù)從二級(jí)存儲(chǔ)磁盤到內(nèi)存之間存在著嚴(yán)重的I/O瓶頸。因此,針對(duì)TB級(jí)的海量三維空間數(shù)據(jù)庫高性能實(shí)時(shí)應(yīng)用的需求,磁盤讀取的性能必然成為影響海量三維空間數(shù)據(jù)讀取效率的關(guān)鍵影響因素。針對(duì)三維空間數(shù)據(jù)庫的海量性、類型復(fù)雜等特點(diǎn)以及高效數(shù)據(jù)調(diào)度的需求,亟需研究減少磁盤I/o的性能瓶頸的三維空間數(shù)據(jù)分布放置的方法,來有效分散磁盤I/O。雖然冗余磁盤陣列(Redundant Array of Inexpensive/Independent Disks, RAID)技術(shù)將多個(gè)物理磁盤按照一定方式組合起來形成大的邏輯對(duì)象,其將數(shù)據(jù)自動(dòng)分散在多個(gè)磁盤上,可以提供數(shù)據(jù)保護(hù)與提高數(shù)據(jù)讀寫速度等能力。但是,由于三維空間數(shù)據(jù)不同類型數(shù)據(jù)的組織方法、訪問特點(diǎn)等存在明顯的差異,單純采用RAID本身并不會(huì)將I/O性能提高到最佳狀態(tài),因此需要針對(duì)不同類型數(shù)據(jù)的數(shù)據(jù)特點(diǎn)、組織方法以及訪問特點(diǎn)等,研究三維空間數(shù)據(jù)不同數(shù)據(jù)在多磁盤/RAID組上的分布放置方法,來有效分散磁盤1/0,為大規(guī)模三維空間數(shù)據(jù)庫的聞效調(diào)度提供基礎(chǔ)。綜上所述,三維空間數(shù)據(jù)庫操作所涉及的數(shù)據(jù)規(guī)模巨大,不可能一次裝入內(nèi)存,必須通過密集的I/o操作反復(fù)與磁盤進(jìn)行數(shù)據(jù)交換??焖偬幚韽?fù)雜空間數(shù)據(jù)操作所需的處理能力和現(xiàn)有空間數(shù)據(jù)庫所提供的性能仍然無法完全匹配,這導(dǎo)致了三維空間數(shù)據(jù)庫的性能絕大多數(shù)受限于對(duì)空間操作的響應(yīng)處理能力和對(duì)大量三維空間數(shù)據(jù)存取的I/o吞吐能力。因此,將三維空間數(shù)據(jù)庫的數(shù)據(jù)分布放置在不同的磁盤/RAID組是必然的解決方法。但是,現(xiàn)在通用的數(shù)據(jù)分布放置方法,未充分考慮三維空間數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容及其數(shù)據(jù)訪問的特點(diǎn),因此都難以對(duì)大規(guī)模三維空間數(shù)據(jù)的多磁盤分布放置取得最佳的分布效果。
發(fā)明內(nèi)容
本發(fā)明提供了一種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法,旨在解決現(xiàn)有技術(shù)難以對(duì)大規(guī)模三維空間數(shù)據(jù)的多磁盤分布放置取得最佳的分布效果,無法突破大規(guī)模多用戶并發(fā)導(dǎo)致的三維空間數(shù)據(jù)庫讀取的I/o瓶頸這一技術(shù)問題。本發(fā)明采用如下技術(shù)方案
—種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法,所述方法包括如下步驟S1、檢測服務(wù)器存儲(chǔ)設(shè)備的硬件環(huán)境并獲取所述存儲(chǔ)設(shè)備的磁盤信息,更新所述磁盤信息的描述文件;S2、基于三維空間數(shù)據(jù)的數(shù)據(jù)內(nèi)容分析以及存儲(chǔ)設(shè)備的磁盤信息描述,確定各類型三維空間數(shù)據(jù)在存儲(chǔ)設(shè)備上的多磁盤分布放置方案;S3、根據(jù)所述多磁盤分布放置方案,對(duì)各類型三維空間數(shù)據(jù)進(jìn)行多磁盤分布放置;S4、根據(jù)各類型三維空間數(shù)據(jù)的多磁盤分布放置情況,實(shí)時(shí)更新所述存儲(chǔ)設(shè)備的磁盤信息描述文件。優(yōu)選地,所述存儲(chǔ)設(shè)備的磁盤信息包括存儲(chǔ)設(shè)備的磁盤數(shù)或RAID組數(shù),以及所述磁盤設(shè)備的容量和已使用量。優(yōu)選地,所述三維空間數(shù)據(jù)按數(shù)據(jù)類型分為地形數(shù)據(jù)、三維要素?cái)?shù)據(jù)和紋理數(shù)據(jù),其中所述地形數(shù)據(jù)包括數(shù)字高程模型數(shù)據(jù)和數(shù)字正射影像數(shù)據(jù)。優(yōu)選地,所述步驟S3具體包括A、采用基于金字塔層的多磁盤分布存儲(chǔ)方法,對(duì)分層分塊的海量地形數(shù)據(jù)進(jìn)行多磁盤分布放置;B、采用基于三維要素類的三維要素?cái)?shù)據(jù)多磁盤分布存儲(chǔ)方法,對(duì)包含多要素類的三維要素?cái)?shù)據(jù)進(jìn)行多磁盤分布放置;C、采用基于散列的分布存儲(chǔ)方法,對(duì)紋理數(shù)據(jù)進(jìn)行多磁盤分布放置。優(yōu)選地,所述步驟A具體包括Al、獲取DEM和DOM金字塔層數(shù)M,以及服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N;A2、創(chuàng)建DEM和DOM金字塔層第i層數(shù)據(jù)表,i初始化為O ;A3、將DEM金字塔層第i層數(shù)據(jù)放到第j個(gè)磁盤或RAID組,將DOM金字塔層第i層數(shù)據(jù)放到第N-j個(gè)磁盤或RAID組,j初始化為0,i和j依次遞增;A4、如果M > N,依次往磁盤或RAID組中放置N層DEM金字塔層數(shù)據(jù)之后,再從頭開始循環(huán)放置,DOM數(shù)據(jù)采用與DEM數(shù)據(jù)相反的順序進(jìn)行放置,直至全部的DEM和DOM金字塔層都找到存儲(chǔ)的磁盤或RAID組。優(yōu)選地,對(duì)于記錄數(shù)量超大的DEM和DOM金字塔層數(shù)據(jù)表,采用分區(qū)的方式對(duì)所述數(shù)據(jù)表進(jìn)行分區(qū)管理,每個(gè)分區(qū)表的數(shù)據(jù)在不同的磁盤或RAID組上分布放置。優(yōu)選地,所述步驟B具體包括B1、獲取三維要素類個(gè)數(shù)M,以及服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N ;B2、創(chuàng)建第i個(gè)三維要素集合數(shù)據(jù)表和第i個(gè)三維要素LOD集合數(shù)據(jù)表,i初始化為O ;B3、將第i個(gè)三維要素集合數(shù)據(jù)表放到第j個(gè)磁盤或RAID組,將第i個(gè)三維要素LOD集合數(shù)據(jù)表放到第N-j個(gè)磁盤或RAID組,j初始化為0,i和j依次遞增;B4、如果M > N,在依次往磁盤或RAID組中放置N個(gè)三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表之后,依次反向循環(huán)放置,直至全部的三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表都找到存儲(chǔ)的磁盤或RAID組。
優(yōu)選地,所述步驟C具體包括Cl、獲取服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N ;C2、根據(jù)所述可用磁盤或RAID組數(shù)創(chuàng)建N個(gè)紋理數(shù)據(jù)分表,每個(gè)紋理數(shù)據(jù)分表放置在每個(gè)磁盤或RAID組中;C3、對(duì)插入的每個(gè)紋理數(shù)據(jù)的ID進(jìn)行散列計(jì)算,得到新的key值;C4、根據(jù)所述key值將所述紋理數(shù)據(jù)插入到指定紋理數(shù)據(jù)分表中,放置在指定的磁盤或RAID組中。本發(fā)明針對(duì)大規(guī)模并發(fā)下三維空間數(shù)據(jù)庫操作存在的嚴(yán)重I/O瓶頸,通過對(duì)三維空間數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容以及數(shù)據(jù)類型的劃分,采用基于數(shù)據(jù)內(nèi)容的三維空間數(shù)據(jù)多磁盤放置方法,將不同類型三維空間數(shù)據(jù)在多磁盤上進(jìn)行分布放置,達(dá)到了大規(guī)模三維空間數(shù)據(jù)的多磁盤分布放置的最佳效果,有效支持大規(guī)模用戶并發(fā)的數(shù)據(jù)調(diào)度以及三維實(shí)時(shí)可視化應(yīng)用需求,對(duì)三維GIS (Geographic Information System,地理信息系統(tǒng))網(wǎng)絡(luò)化應(yīng)用具有重要意義。
圖1為本發(fā)明實(shí)施例一種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法流程圖;圖2為本發(fā)明實(shí)施例中不同類型數(shù)據(jù)及其多磁盤分布放置方案示意圖;圖3為本發(fā)明實(shí)施例中DEM和DOM金字塔層數(shù)據(jù)的多磁盤分布放置流程圖;圖4為本發(fā)明實(shí)施例中三維要素?cái)?shù)據(jù)多磁盤分布放置流程圖;圖5為本發(fā)明實(shí)施例中紋理數(shù)據(jù)多磁盤分布放置流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。針對(duì)三維空間數(shù)據(jù)的數(shù)據(jù)內(nèi)容與三維空間數(shù)據(jù)庫分類組織特點(diǎn),本發(fā)明實(shí)施例提供了一種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法,可以支持大規(guī)模并發(fā)的高效數(shù)據(jù)調(diào)度;按數(shù)據(jù)類型的不同,采用不同的多磁盤分布放置方法,提高了數(shù)據(jù)存取的效率,滿足海量數(shù)據(jù)的高效存取和實(shí)時(shí)可視化的需求。如圖1所示,該方法包括下述步驟步驟S1:檢測服務(wù)器存儲(chǔ)設(shè)備的硬件環(huán)境并獲取所述存儲(chǔ)設(shè)備的磁盤信息,更新所述磁盤信息的描述文件。其中,存儲(chǔ)設(shè)備的磁盤信息包括存儲(chǔ)設(shè)備的磁盤數(shù)/RAID組數(shù)(也即磁盤數(shù)或RAID組數(shù),下同),以及磁盤設(shè)備的容量和已使用量等信息,但不限于此。步驟S2 :基于三維空間數(shù)據(jù)的數(shù)據(jù)內(nèi)容分析以及存儲(chǔ)設(shè)備的磁盤信息描述,確定各類型三維空間數(shù)據(jù)在存儲(chǔ)設(shè)備上的多磁盤分布放置方案。其中,三維空間數(shù)據(jù)按數(shù)據(jù)類型分為地形數(shù)據(jù)、三維要素?cái)?shù)據(jù)和紋理數(shù)據(jù)等多種數(shù)據(jù)類型,不限于此處列舉的這三種,本實(shí)施例將以這三種類型的數(shù)據(jù)為例,對(duì)本發(fā)明進(jìn)行詳細(xì)闡述。地形數(shù)據(jù)包括數(shù)字高程模型數(shù)據(jù)(DEM,Digital Elevation Model)和數(shù)字正射影像數(shù)據(jù)(DOM, Digital Orthophoto Map);三維要素?cái)?shù)據(jù)包括按三維要素類組織的三維要素幾何數(shù)據(jù)與屬性數(shù)據(jù);紋理數(shù)據(jù)包括三維要素幾何貼的紋理數(shù)據(jù)。步驟S3 :根據(jù)所述多磁盤分布放置方案,對(duì)各類型三維空間數(shù)據(jù)進(jìn)行多磁盤分布放置。如圖2所示,在本實(shí)施例中,當(dāng)三維空間數(shù)據(jù)為地形數(shù)據(jù)(DEM和DOM數(shù)據(jù))時(shí),將采用基于金字塔層的多磁盤分布存儲(chǔ)方法,進(jìn)行分層分塊的海量地形數(shù)據(jù)的多磁盤分布放置;當(dāng)三維空間數(shù)據(jù)為三維要素?cái)?shù)據(jù)時(shí),將采用基于三維要素類的三維要素?cái)?shù)據(jù)多磁盤分布存儲(chǔ)方法,進(jìn)行包含多要素類的三維要素?cái)?shù)據(jù)的多磁盤分布放置;當(dāng)三維空間數(shù)據(jù)為紋理數(shù)據(jù)時(shí),將采用基于散列的分布存儲(chǔ)方法,進(jìn)行紋理數(shù)據(jù)的多磁盤分布放置。不同類型數(shù)據(jù)的具體分布放置方案將在后文中詳細(xì)說明。步驟S4 :根據(jù)各類型三維空間數(shù)據(jù)的多磁盤分布放置情況,實(shí)時(shí)更新所述存儲(chǔ)設(shè)備的磁盤信息描述文件。下面對(duì)各類型三維空間數(shù)據(jù)的多磁盤分布放置方案進(jìn)行詳細(xì)說明A、地形數(shù)據(jù)(DEM和DOM數(shù)據(jù))針對(duì)地形數(shù)據(jù)在數(shù)據(jù)庫中采用“金字塔分層+均勻分塊”的方式進(jìn)行數(shù)據(jù)庫的組織與管理的特點(diǎn),每個(gè)金字塔層的數(shù)據(jù)都放在對(duì)應(yīng)金字塔層數(shù)據(jù)表中進(jìn)行管理。在進(jìn)行地形數(shù)據(jù)調(diào)度時(shí),通常根據(jù)視點(diǎn)變化的規(guī)律,距離視點(diǎn)近的區(qū)域需要調(diào)度精細(xì)分辨率的數(shù)據(jù)塊,而距離視點(diǎn)遠(yuǎn)的區(qū)域需要調(diào)度粗糙分辨率的數(shù)據(jù)塊,這就需要同時(shí)從不同的金字塔層數(shù)據(jù)表中獲取數(shù)據(jù),以滿足不同區(qū)域不同分辨率表達(dá)的需求。因此,為了減少不同金字塔層數(shù)據(jù)同時(shí)讀取同一磁盤造成的資源競爭,將地形數(shù)據(jù)按照金字塔層在多磁盤上進(jìn)行分布放置。如圖3所示,具體包括以下步驟Al、獲取DEM和DOM金字塔層數(shù)M,以及服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N;A2、創(chuàng)建DEM和DOM金字塔層第i層數(shù)據(jù)表,i初始化為O ;A3、將DEM金字塔層第i層數(shù)據(jù)放到第j個(gè)磁盤或RAID組,將DOM金字塔層第i層數(shù)據(jù)放到第N-j個(gè)磁盤或RAID組,j初始化為0,i和j依次遞增;A4、如果M > N,依次往磁盤或RAID組中放置N層DEM金字塔層數(shù)據(jù)之后,再從頭開始循環(huán)放置,DOM數(shù)據(jù)采用與DEM數(shù)據(jù)相反的順序進(jìn)行放置,直至全部的DEM和DOM金字塔層都找到存儲(chǔ)的磁盤或RAID組。每一金字塔層的DEM層數(shù)據(jù)表和DOM層數(shù)據(jù)表,如果其記錄數(shù)量超大,則采用分區(qū)的方式對(duì)該大數(shù)據(jù)表進(jìn)行分區(qū)管理,以提高大數(shù)據(jù)表的數(shù)據(jù)查詢效率。這樣可以保證不同分辨率的DEM和DOM數(shù)據(jù)可以存儲(chǔ)在不同的磁盤上,在上層請(qǐng)求不同分辨率的數(shù)據(jù)時(shí),可以同時(shí)從多個(gè)磁盤中讀取,有效的分散了磁盤I/O。B、三維要素?cái)?shù)據(jù)在三維可視化和三維空間分析等實(shí)時(shí)應(yīng)用中,會(huì)對(duì)三維要素?cái)?shù)據(jù)頻繁進(jìn)行三維空間查詢的操作,從而產(chǎn)生了很大數(shù)量的磁盤I/o。在地上下一體化漫游的過程中,往往需要調(diào)度所有地上地下所有三維要素類的數(shù)據(jù),而且會(huì)根據(jù)視點(diǎn)的遠(yuǎn)近調(diào)動(dòng)不同細(xì)節(jié)層次的數(shù)據(jù)。由于三維要素?cái)?shù)據(jù)按照三維要素類進(jìn)行分類管理,每個(gè)三維要素類對(duì)應(yīng)一個(gè)三維要素集合數(shù)據(jù)表和一個(gè)三維要素LOD (Levels of Detail,多細(xì)節(jié)層次)集合數(shù)據(jù)表,其中三維要素集合數(shù)據(jù)表存儲(chǔ)該三維要素類的最粗細(xì)節(jié)層次的三維要素?cái)?shù)據(jù),三維要素LOD集合數(shù)據(jù)表存儲(chǔ)該三維要素類其他精細(xì)細(xì)節(jié)層次的三維要素?cái)?shù)據(jù),在進(jìn)行數(shù)據(jù)調(diào)度時(shí)都是先調(diào)度粗細(xì)節(jié)層次的三維要素?cái)?shù)據(jù),隨后調(diào)度其更高細(xì)節(jié)層次的三維要素?cái)?shù)據(jù)。因此,將不同三維要素類的三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表在多磁盤/RAID組上進(jìn)行分布存儲(chǔ),可以有效的分散磁盤I/O。如圖4所示,具體包括以下步驟B1、獲取三維要素類個(gè)數(shù)M,以及服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N ;B2、創(chuàng)建第i個(gè)三維要素集合數(shù)據(jù)表和第i個(gè)三維要素LOD集合數(shù)據(jù)表,i初始化為O ;B3、將第i個(gè)三維要素集合數(shù)據(jù)表放到第j個(gè)磁盤或RAID組,將第i個(gè)三維要素LOD集合數(shù)據(jù)表放到第N-j個(gè)磁盤或RAID組,j初始化為0,i和j依次遞增;B4、如果M > N,在依次往磁盤或RAID組中放置N個(gè)三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表之后,依次反向循環(huán)放置,直至全部的三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表都找到存儲(chǔ)的磁盤或RAID組。在三維要素?cái)?shù)據(jù)的多磁盤分布放置流程中,每個(gè)三維要素類型的數(shù)據(jù)表循環(huán)排列,分布在不同的磁盤/RAID組中。為了避免多細(xì)節(jié)層次數(shù)據(jù)請(qǐng)求造成的資源競爭,一個(gè)三維要素類對(duì)應(yīng)的三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表分布在不同的磁盤/RAID組中,這樣有利于不同細(xì)節(jié)層次數(shù)據(jù)的高效讀取。針對(duì)三維要素?cái)?shù)據(jù)邏輯結(jié)構(gòu)的特點(diǎn),將三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表采用錯(cuò)位分布法,并循環(huán)分布,直至結(jié)束。C、紋理數(shù)據(jù)紋理數(shù)據(jù)直接決定了三維空間數(shù)據(jù)的真實(shí)感與辨識(shí)能力,為了能夠達(dá)到更逼真的視覺效果,三維空間數(shù)據(jù)包括了大量復(fù)雜、高質(zhì)量的紋理數(shù)據(jù),幾乎占據(jù)了三維空間數(shù)據(jù)庫總數(shù)據(jù)量的80%以上,從而紋理數(shù)據(jù)讀取效率的提高對(duì)于整個(gè)三維空間數(shù)據(jù)庫的調(diào)度效率提高至關(guān)重要。由于每個(gè)三維空間對(duì)象,比如每個(gè)建筑大多都貼有多張紋理數(shù)據(jù),這樣在三維可視化過程中,往往將多個(gè)紋理數(shù)據(jù)同時(shí)從三維空間數(shù)據(jù)庫中調(diào)度出來,如果將這些數(shù)據(jù)能分散存儲(chǔ)在不同的磁盤上,就可以同時(shí)從多個(gè)磁盤上讀取出來,能有效地利用多磁盤的性能優(yōu)勢。如圖5所示,具體包括以下步驟Cl、獲取服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N ;C2、根據(jù)所述可用磁盤或RAID組數(shù)創(chuàng)建N個(gè)紋理數(shù)據(jù)分表,每個(gè)紋理數(shù)據(jù)分表放置在每個(gè)磁盤或RAID組中;C3、對(duì)插入的每個(gè)紋理數(shù)據(jù)的ID進(jìn)行散列計(jì)算,得到新的key值;C4、根據(jù)所述key值將所述紋理數(shù)據(jù)插入到指定紋理數(shù)據(jù)分表中,放置在指定的磁盤或RAID組中。在紋理數(shù)據(jù)的多磁盤分布放置流程中,根據(jù)獲得的磁盤數(shù)/RAID組數(shù)得到紋理數(shù)據(jù)表的分表數(shù)量,每個(gè)磁盤對(duì)應(yīng)一個(gè)紋理數(shù)據(jù)分表,將分表編號(hào)記錄在紋理數(shù)據(jù)表的表名中,以區(qū)分不同的紋理數(shù)據(jù)分表;在紋理數(shù)據(jù)入庫時(shí),通過散列算法達(dá)到紋理數(shù)據(jù)均勻分散存儲(chǔ)在多個(gè)磁盤的效果。此外,為了快速的判斷某一個(gè)紋理數(shù)據(jù)所在的紋理表,將紋理數(shù)據(jù)的原ID與新生成的key值都記錄在紋理數(shù)據(jù)分表中,以便快速查詢。通過將紋理數(shù)據(jù)盡可能的分布在多個(gè)數(shù)據(jù)表中,并分布存儲(chǔ)在不同的磁盤上,這樣當(dāng)需要調(diào)用這些紋理時(shí),可以采用多線程在多個(gè)磁盤上實(shí)現(xiàn)并行讀取,充分利用了多個(gè)磁盤驅(qū)動(dòng)器的優(yōu)勢,從而大幅提高了紋理數(shù)據(jù)的讀取效率。
根據(jù)本發(fā)明實(shí)施例提出的用于支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法,設(shè)計(jì)了三維空間數(shù)據(jù)庫多磁盤存儲(chǔ)的數(shù)據(jù)庫結(jié)構(gòu)。對(duì)于三維空間數(shù)據(jù)庫中存取產(chǎn)生大量I/o的地形數(shù)據(jù)、三維要素?cái)?shù)據(jù)和紋理數(shù)據(jù)等,在多個(gè)磁盤/RAID組中進(jìn)行了數(shù)據(jù)文件的規(guī)劃,以充分利用多磁盤的高性能存取優(yōu)勢,在多用戶并發(fā)情況下能有效地提高不同類型數(shù)據(jù)的存取效率。DEM和DOM數(shù)據(jù)每個(gè)金字塔層數(shù)據(jù)表存儲(chǔ)為一個(gè)單獨(dú)的數(shù)據(jù)文件,循環(huán)分布在多個(gè)磁盤/RAID組中,并且DEM和DOM相同金字塔層數(shù)據(jù)存儲(chǔ)在不同的磁盤上。三維要素?cái)?shù)據(jù)通過三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表錯(cuò)位分布在多個(gè)磁盤/RAID組中,以利用多細(xì)節(jié)層次數(shù)據(jù)的高效調(diào)度。紋理數(shù)據(jù)根據(jù)可用磁盤/RAID數(shù)創(chuàng)建多個(gè)紋理數(shù)據(jù)分表,將紋理數(shù)據(jù)循環(huán)插入到各個(gè)紋理數(shù)據(jù)分表中,達(dá)到盡可能將每個(gè)幾何模型所對(duì)應(yīng)的紋理數(shù)據(jù)分散在不同的磁盤上,以盡可能地分散磁盤I/O。本發(fā)明實(shí)施例針對(duì)大規(guī)模并發(fā)下三維空間數(shù)據(jù)庫操作存在的嚴(yán)重I/O瓶頸,通過對(duì)三維空間數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容以及數(shù)據(jù)類型的劃分,采用基于數(shù)據(jù)內(nèi)容的三維空間數(shù)據(jù)多磁盤放置方法,將不同類型三維空間數(shù)據(jù)在多磁盤上進(jìn)行分布放置,達(dá)到了大規(guī)模三維空間數(shù)據(jù)的多磁盤分布放置的最佳效果,有效支持大規(guī)模用戶并發(fā)的數(shù)據(jù)調(diào)度以及三維實(shí)時(shí)可視化應(yīng)用需求,對(duì)三維GIS網(wǎng)絡(luò)化應(yīng)用具有重要意義。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法,其特征在于,所述方法包括如下步驟: 51、檢測服務(wù)器存儲(chǔ)設(shè)備的硬件環(huán)境并獲取所述存儲(chǔ)設(shè)備的磁盤信息,更新所述磁盤信息的描述文件; 52、基于三維空間數(shù)據(jù)的數(shù)據(jù)內(nèi)容分析以及存儲(chǔ)設(shè)備的磁盤信息描述,確定各類型三維空間數(shù)據(jù)在存儲(chǔ)設(shè)備上的多磁盤分布放置方案; 53、根據(jù)所述多磁盤分布放置方案,對(duì)各類型三維空間數(shù)據(jù)進(jìn)行多磁盤分布放置; 54、根據(jù)各類型三維空間數(shù)據(jù)的多磁盤分布放置情況,實(shí)時(shí)更新所述存儲(chǔ)設(shè)備的磁盤信息描述文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)設(shè)備的磁盤信息包括:存儲(chǔ)設(shè)備的磁盤數(shù)或RAID組數(shù),以及所述磁盤設(shè)備的容量和已使用量。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述三維空間數(shù)據(jù)按數(shù)據(jù)類型分為:地形數(shù)據(jù)、三維要素?cái)?shù)據(jù)和紋理數(shù)據(jù),其中所述地形數(shù)據(jù)包括數(shù)字高程模型數(shù)據(jù)和數(shù)字正射影像數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S3具體包括: A、采用基于金字塔層的多磁盤分布存儲(chǔ)方法,對(duì)分層分塊的海量地形數(shù)據(jù)進(jìn)行多磁盤分布放置; B、采用基于三維要素類的三維要素?cái)?shù)據(jù)多磁盤分布存儲(chǔ)方法,對(duì)包含多個(gè)三維要素類的三維要素?cái)?shù)據(jù)進(jìn)行多磁盤 分布放置; C、采用基于散列的分布存儲(chǔ)方法,對(duì)紋理數(shù)據(jù)進(jìn)行多磁盤分布放置。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟A具體包括: Al、獲取DEM和DOM金字塔層數(shù)M,以及服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N ; A2、創(chuàng)建DEM和DOM金字塔層第i層數(shù)據(jù)表,i初始化為O ; A3、將DEM金字塔層第i層數(shù)據(jù)放到第j個(gè)磁盤或RAID組,將DOM金字塔層第i層數(shù)據(jù)放到第N-j個(gè)磁盤或RAID組,j初始化為0,i和j依次遞增; A4、如果M > N,依次往磁盤或RAID組中放置N層DEM金字塔層數(shù)據(jù)之后,再從頭開始循環(huán)放置,DOM數(shù)據(jù)采用與DEM數(shù)據(jù)相反的順序進(jìn)行放置,直至全部的DEM和DOM金字塔層都找到存儲(chǔ)的磁盤或RAID組。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,對(duì)于記錄數(shù)量超大的DEM和DOM金字塔層數(shù)據(jù)表,采用分區(qū)的方式對(duì)所述數(shù)據(jù)表進(jìn)行分區(qū)管理,每個(gè)分區(qū)表的數(shù)據(jù)在不同的磁盤或RAID組上分布放置。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟B具體包括: B1、獲取三維要素類個(gè)數(shù)M,以及服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N ; B2、創(chuàng)建第i個(gè)三維要素集合數(shù)據(jù)表和第i個(gè)三維要素LOD集合數(shù)據(jù)表,i初始化為O ; B3、將第i個(gè)三維要素集合數(shù)據(jù)表放到第j個(gè)磁盤或RAID組,將第i個(gè)三維要素LOD集合數(shù)據(jù)表放到第N-j個(gè)磁盤或RAID組,j初始化為0,i和j依次遞增; B4、如果M > N,在依次往磁盤或RAID組中放置N個(gè)三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表之后,依次反向循環(huán)放置,直至全部的三維要素集合數(shù)據(jù)表和三維要素LOD集合數(shù)據(jù)表都找到存儲(chǔ)的磁盤或RAID組。
8.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟C具體包括: Cl、獲取服務(wù)器存儲(chǔ)設(shè)備的可用磁盤數(shù)或RAID組數(shù)N ; C2、根據(jù)所述可用磁盤或RAID組數(shù)創(chuàng)建N個(gè)紋理數(shù)據(jù)分表,每個(gè)紋理數(shù)據(jù)分表放置在每個(gè)磁盤或RA ID組中; C3、對(duì)插入的每個(gè)紋理數(shù)據(jù)的ID進(jìn)行散列計(jì)算,得到新的key值; C4、根據(jù)所述key值將所述紋理數(shù)據(jù)插入到指定紋理數(shù)據(jù)分表中,放置在指定的磁盤或RAID組中。
全文摘要
本發(fā)明涉及地理空間信息系統(tǒng)技術(shù)領(lǐng)域,提供了一種支持大規(guī)模并發(fā)的三維空間數(shù)據(jù)放置方法,步驟包括檢測服務(wù)器存儲(chǔ)設(shè)備的硬件環(huán)境并獲取所述存儲(chǔ)設(shè)備的磁盤信息,更新所述磁盤信息的描述文件;基于三維空間數(shù)據(jù)的數(shù)據(jù)內(nèi)容分析以及存儲(chǔ)設(shè)備的磁盤信息描述,確定各類型三維空間數(shù)據(jù)在存儲(chǔ)設(shè)備上的多磁盤分布放置方案;根據(jù)所述多磁盤分布放置方案,對(duì)各類型三維空間數(shù)據(jù)進(jìn)行多磁盤分布放置;根據(jù)各類型三維空間數(shù)據(jù)的多磁盤分布放置情況,實(shí)時(shí)更新所述存儲(chǔ)設(shè)備的磁盤信息描述文件。本發(fā)明通過對(duì)三維空間數(shù)據(jù)不同類型數(shù)據(jù)進(jìn)行多磁盤分布放置,有效支持大規(guī)模用戶并發(fā)的數(shù)據(jù)調(diào)度以及三維實(shí)時(shí)可視化的應(yīng)用需求。
文檔編號(hào)G06F17/30GK103077209SQ201210584430
公開日2013年5月1日 申請(qǐng)日期2012年12月28日 優(yōu)先權(quán)日2012年12月28日
發(fā)明者李曉明, 馮圣中, 修文群, 胡金星, 張寶運(yùn), 李微微 申請(qǐng)人:深圳先進(jìn)技術(shù)研究院