專利名稱:一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于緩存技術(shù)領(lǐng)域,特別地涉及一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)及方法。
背景技術(shù):
緩存技術(shù)誕生于上世紀(jì)70年代,最初是為了解決CPU與外部存儲(chǔ)設(shè)備之間的速率不平衡問題。隨著計(jì)算機(jī)技術(shù)的發(fā)展,緩存技術(shù)已經(jīng)成為現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)技術(shù)的關(guān)鍵技術(shù)之一。在大規(guī)模的企業(yè)級(jí)應(yīng)用系統(tǒng)中,緩存一般介于用戶訪問接口和數(shù)據(jù)存儲(chǔ)服務(wù)器之間,以緩沖者的角色出現(xiàn),其作用是為了降低數(shù)據(jù)中心存儲(chǔ)服務(wù)器訪問的頻率,從而提高系統(tǒng)的運(yùn)行性能。緩存內(nèi)的數(shù)據(jù)是對(duì)數(shù)據(jù)庫(kù)中經(jīng)常會(huì)訪問到的數(shù)據(jù)進(jìn)行副本。對(duì)這類數(shù)據(jù)的請(qǐng)求,如果命中緩存,則不需要再去對(duì)數(shù)據(jù)進(jìn)行查詢,從而大大減輕了存儲(chǔ)服務(wù)器的壓力,提升了系統(tǒng)性能。通常情況下采用單點(diǎn)的緩存,緩存數(shù)據(jù)置于服務(wù)器內(nèi)存內(nèi)部。緩存的所有數(shù)據(jù)都通過一定組織放在單臺(tái)節(jié)點(diǎn)上。但在處理大量用戶的并發(fā)訪問時(shí),單點(diǎn)的結(jié)構(gòu)導(dǎo)致系統(tǒng)響應(yīng)負(fù)載加重,響應(yīng)延遲增加,出現(xiàn)性能瓶頸,并且也有緩存容量受限,無(wú)法有效擴(kuò)充的問題。因此分布式緩存的出現(xiàn)解決了這個(gè)問題。分布式緩存是高性能網(wǎng)絡(luò)計(jì)算的一個(gè)熱點(diǎn)研究方向,分布式緩存一般是以傳統(tǒng)的網(wǎng)絡(luò)通信協(xié)議為基礎(chǔ),在網(wǎng)路由中的關(guān)鍵節(jié)點(diǎn)集中部署緩存節(jié)點(diǎn),保存整個(gè)網(wǎng)絡(luò)中的熱點(diǎn)信息副本,從而在用戶最終訪問時(shí)減少數(shù)據(jù)傳輸記錄,降低網(wǎng)絡(luò)延遲和帶寬消耗。緩存節(jié)點(diǎn)之間通過特定的協(xié)議或數(shù)據(jù)調(diào)度算法進(jìn)行信息的交互、共享訪問,并且不會(huì)產(chǎn)生層次式緩存體系結(jié)構(gòu)帶來(lái)的高層往來(lái)節(jié)點(diǎn)的延遲和性能瓶頸問題。另外分布式緩存作為一個(gè)獨(dú)立的中間件,避免了用戶訪問與緩存實(shí)現(xiàn)之間的耦
口 ο空間和時(shí)間是現(xiàn)實(shí)世界最基本、最重要的屬性。許多空間應(yīng)用系統(tǒng),尤其是地理信息系統(tǒng)都需要表達(dá)地學(xué)對(duì)象的時(shí)空屬性。例如在地籍變更、環(huán)境監(jiān)測(cè)、城市演化等領(lǐng)域都需要管理歷史變化數(shù)據(jù),以便重建歷史、跟蹤變化、預(yù)測(cè)未來(lái)。人類對(duì)地學(xué)中時(shí)空概念的認(rèn)知可以追溯到19世紀(jì)末20世紀(jì)初,文獻(xiàn)中有當(dāng)時(shí)對(duì)地貌循環(huán)、歷史地理學(xué)的研究和對(duì)地域差異的研究的記載。說明了人類很早就認(rèn)識(shí)到地學(xué)中時(shí)空相互作用的重要性??臻g和時(shí)間是地學(xué)對(duì)象的兩個(gè)基本特征,是反映地學(xué)對(duì)象狀態(tài)和演變過程的重要組成部分。在時(shí)空數(shù)據(jù)模型中,空間刻畫了地學(xué)對(duì)象的空間位置分布和空間相關(guān)性;時(shí)間則刻畫了地學(xué)對(duì)象的存在時(shí)間、變化狀況和時(shí)間相關(guān)性。地學(xué)對(duì)象之間的空間關(guān)系往往隨著時(shí)間而變化,與時(shí)間關(guān)系交織在一起就形成了多種時(shí)空關(guān)系。時(shí)空數(shù)據(jù)面向?qū)I(yè)性的特征決定了其應(yīng)用的特殊性,首先時(shí)空數(shù)據(jù)需要遵循明確的標(biāo)準(zhǔn)規(guī)范;另外,時(shí)空數(shù)據(jù)一般是通過衛(wèi)星傳感器等數(shù)據(jù)采集設(shè)備采集而來(lái)的,因此對(duì)某一特定時(shí)空區(qū)間內(nèi)的時(shí)空數(shù)據(jù)在生成后一般不會(huì)有改動(dòng)操作,所以時(shí)空數(shù)據(jù)具有一次寫入、多次讀取的特征。
傳統(tǒng)的地理位置信息系統(tǒng)使用一些如四分樹或者R-Tree來(lái)做地理位置索引。這些數(shù)據(jù)結(jié)構(gòu)的內(nèi)容需要被在適當(dāng)?shù)奈恢酶?,并且如果?shù)據(jù)量很大的話,操作成本會(huì)很高。另一個(gè)方法是可以遍歷一個(gè)η維的數(shù)據(jù)結(jié)構(gòu)并將其扁平成一個(gè)列表。一個(gè)眾所周知的例子是由Universal B-Tree生成的地理哈希。一個(gè)地理哈希使用“之字形”的路線掃描一個(gè)η維空間最終可以將空間中的每一個(gè)點(diǎn)對(duì)應(yīng)一個(gè)一維度的數(shù)值。由此可見,時(shí)空數(shù)據(jù)具有許多專業(yè)性很強(qiáng)的組織特性,采用傳統(tǒng)的緩存方式無(wú)法有效地對(duì)其進(jìn)行索引緩存,即使通過修改使之能適應(yīng)傳統(tǒng)的緩存策略,緩存的存儲(chǔ)結(jié)構(gòu)也與時(shí)空特性無(wú)關(guān)。如果能有效地利用數(shù)據(jù)的時(shí)空特征,將時(shí)間或空間特征相近的數(shù)據(jù)緩存放置的物理位置相近,由數(shù)據(jù)訪問的局部性原理可知,這樣設(shè)計(jì)緩存的利用率較高,整個(gè)系統(tǒng)的吞吐量與響應(yīng)速度也有較大提升。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明的目的在于提供一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng),工作在用戶對(duì)數(shù)據(jù)中心訪問的中間層,能夠在不改變用戶原有訪問方式的情況下,實(shí)現(xiàn)對(duì)時(shí)空特征的數(shù)據(jù)的緩存,以加快時(shí)空特征數(shù)據(jù)訪問速度。本發(fā)明的又一目的在于提供一種面向時(shí)空數(shù)據(jù)的分布式緩存方法,能夠有效地解決時(shí)空特征數(shù)據(jù)的緩存問題。為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng),該分布式緩存系統(tǒng)包括多個(gè)分布式緩存集群,每個(gè)集群對(duì)應(yīng)于一定空間特征范圍的數(shù)據(jù),不同集群負(fù)責(zé)的緩存范圍有相互重疊,每個(gè)集群內(nèi)部由若干緩存節(jié)點(diǎn)組成,同一集群內(nèi)每個(gè)緩存節(jié)點(diǎn)所對(duì)應(yīng)的空間特征范圍信息都相同,但是每個(gè)緩存節(jié)點(diǎn)對(duì)應(yīng)于不同時(shí)間范圍內(nèi)的空間數(shù)據(jù)信息。優(yōu)選地,當(dāng)數(shù)據(jù)讀取速度要求較高時(shí),將請(qǐng)求的空間范圍劃分為若干段,將各段數(shù)據(jù)分配到不同的分發(fā)集群處理。一種面向時(shí)空數(shù)據(jù)的分布式緩存方法,包括以下步驟:
SI,針對(duì)要處理的時(shí)空數(shù)據(jù)范圍,對(duì)集群負(fù)責(zé)處理的范圍進(jìn)行劃分,以及 S2,針對(duì)時(shí)空數(shù)據(jù),在分布式緩存系統(tǒng)中選擇適合的緩存節(jié)點(diǎn),以及 S3,包括當(dāng)用戶訪問數(shù)據(jù)命中與未命中時(shí)各種情況的處理,
其中SI包括以下子步驟,
S11,時(shí)空數(shù)據(jù)的空間索引范圍確定,具體為,首先對(duì)整個(gè)系統(tǒng)中所存儲(chǔ)的空間數(shù)據(jù)進(jìn)行建模,分析其使用的維度范圍,建立全局的Universal B-Tree用對(duì)多維空間進(jìn)行劃分,并使用Universal B-Tree中的Z值作為索引值,對(duì)每一個(gè)空間數(shù)據(jù)的特征點(diǎn)可以得到唯一的索引標(biāo)識(shí);
S12,對(duì)緩存集群與集群中的緩存節(jié)點(diǎn)的索引范圍分配,具體為,對(duì)于緩存集群,首先根據(jù)空間數(shù)據(jù)特征索引有可能的范圍,對(duì)當(dāng)前系統(tǒng)中所有集群統(tǒng)一分配其對(duì)應(yīng)空間范圍,要求各個(gè)集群分配到的范圍相互有重疊,并且其范圍之并集覆蓋整個(gè)空間范圍;
其中S2包括以下子步驟,
S21,空間特征點(diǎn)選取,具體為,空間特征點(diǎn)提取可以根據(jù)空間數(shù)據(jù)元信息中表示空間信息的具體描述來(lái)選取; S22,目標(biāo)緩存集群的選取,具體為,由S21中選擇的空間特征點(diǎn),根據(jù)Sll中建立的Universal B-Tree確定該特征點(diǎn)所對(duì)應(yīng)的空間索引標(biāo)識(shí),然后將S12中所有包含該索引的集群確定為備選集群;
S23,從備選集群中選擇一個(gè)集群作為操作集群,用于承擔(dān)此次的緩存操作;
S24,時(shí)間特征點(diǎn)提取,從空間數(shù)據(jù)的元信息中選取相應(yīng)的時(shí)間特征點(diǎn);
S25,目標(biāo)緩存節(jié)點(diǎn)的選取,具體為,對(duì)S23中選取的時(shí)間特征點(diǎn)對(duì)某特定數(shù)值取模,將得到的結(jié)果作為選取集群內(nèi)節(jié)點(diǎn)的索引號(hào);
S3包括以下子步驟:
S31,緩存命中時(shí)的處理,在帶操作集群中根據(jù)時(shí)間特征選擇出待操作節(jié)點(diǎn)后,通過該節(jié)點(diǎn)間所需數(shù)據(jù)是否存在,若存在則直接返回;
S32,緩存未命中時(shí)的處理,緩存未命中時(shí)的處理分為兩步,從數(shù)據(jù)中心直接向用戶返回?cái)?shù)據(jù)和將選取出數(shù)據(jù)分配到緩存系統(tǒng)中。優(yōu)選地,S21中,針對(duì)任意維度的空間信息,可以選取某一個(gè)向量作為其特征值向量,然后通過Universal B-Tree算法,將該特征值向量轉(zhuǎn)化為單維度的索引值。優(yōu)選地,S23中從備選集群中選擇一個(gè)集群作為操作集群,其選擇方式可以分為隨機(jī)選取和按條件選取,其中隨機(jī)選取是在集群狀態(tài)未知或狀態(tài)參數(shù)沒有更新時(shí),采用的選取方法;按條件選取則是在各集群狀態(tài)已知的情況下,通過選取負(fù)載最小的集群作為待操作集群的方法。優(yōu)選地,S24中,對(duì)于給定時(shí)空數(shù)據(jù),若該時(shí)空數(shù)據(jù)的時(shí)間對(duì)應(yīng)的為某一時(shí)刻,則選取該時(shí)刻的時(shí)間戳作為時(shí)間索弓丨,否則若時(shí)空數(shù)據(jù)的時(shí)間為某一段時(shí)間,則選取這段時(shí)間的起點(diǎn)作為時(shí)間索引。優(yōu)選地,S32中,當(dāng)用戶所指定的時(shí)空特征數(shù)據(jù)在緩存中沒用命中時(shí),從數(shù)據(jù)中心取出該數(shù)據(jù)后,將該數(shù)據(jù)廣播分發(fā)到每一個(gè)根據(jù)該數(shù)據(jù)空間特征選擇出的備選集群中的每一個(gè)集群。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
1、步驟S22及S24中,本發(fā)明實(shí)施例利用時(shí)空數(shù)據(jù)本身的元信息確定其緩存索引,而不依賴手工編目等操作,應(yīng)用簡(jiǎn)單方便;
2、有效地利用了Universal B-Tree的劃分算法,解決了高維度空間數(shù)據(jù)的編目索引問題,降低了計(jì)算索引的復(fù)雜度;
3、同一個(gè)索引值由多個(gè)目標(biāo)集群負(fù)責(zé),步驟S2中根據(jù)索引選出的緩存集群組后,再?gòu)闹羞x擇一個(gè)集群負(fù)責(zé)緩存任務(wù),這樣可以有效地根據(jù)網(wǎng)絡(luò)環(huán)境等因素選擇最佳處理集群,提聞系統(tǒng)效率。
圖1為本發(fā)明實(shí)施例中面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)的結(jié)構(gòu) 圖2為本發(fā)明實(shí)施例中面向時(shí)空數(shù)據(jù)的分布式緩存方法的流程 圖3為圖2中SI的流程 圖4為圖2中S2的流程 圖5為圖2中S3的流程圖; 圖6為本發(fā)明實(shí)施例中面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)中的集群的對(duì)應(yīng)空間范圍分配圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。相反,本發(fā)明涵蓋任何由權(quán)利要求定義的在本發(fā)明的精髓和范圍上做的替代、修改、等效方法以及方案。進(jìn)一步,為了使公眾對(duì)本發(fā)明有更好的了解,在下文對(duì)本發(fā)明的細(xì)節(jié)描述中,詳盡描述了一些特定的細(xì)節(jié)部分。對(duì)本領(lǐng)域技術(shù)人員來(lái)說沒有這些細(xì)節(jié)部分的描述也可以完全理解本發(fā)明。本發(fā)明中面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)體系結(jié)構(gòu)如圖1所示。其中整個(gè)分布式緩存系統(tǒng)由若干個(gè)分布式緩存集群構(gòu)成。這些分布式集群本身可以置于同一位置,也可以異地分布,實(shí)際操作時(shí),根據(jù)系統(tǒng)用戶地理位置分布,可以在用戶較多的地方放置緩存集群,以平衡整個(gè)系統(tǒng)的平均訪問時(shí)間。另外如圖1所示,每一個(gè)分布式緩存集群內(nèi)部由若干緩存節(jié)點(diǎn)組成,這些節(jié)點(diǎn)按序編號(hào),以便于根據(jù)時(shí)空數(shù)據(jù)中的時(shí)間特征可以直接選出唯一的一個(gè)緩存節(jié)點(diǎn)。從圖1中可以看出,該分布式系統(tǒng)從物理上分為兩層,首先該分布式緩存系統(tǒng)由若干個(gè)分布式的緩存集群組成,而每個(gè)分布式緩存集群內(nèi)含若干個(gè)緩存節(jié)點(diǎn)。該分布式系統(tǒng)從邏輯角度上也分為兩層,首先該分布式系統(tǒng)根據(jù)時(shí)空特征中的空間特征劃分為若干區(qū)段,這些區(qū)段互有重疊,并且所有區(qū)段的交集覆蓋整個(gè)空間范圍;其次對(duì)于每個(gè)空間區(qū)段內(nèi)的節(jié)點(diǎn),每一個(gè)負(fù)責(zé)離散的某些時(shí)間戳,具體地,對(duì)于一個(gè)時(shí)間戳,可以唯一地找到一個(gè)節(jié)點(diǎn)與之對(duì)應(yīng),而每一個(gè)節(jié)點(diǎn)可能會(huì)對(duì)應(yīng)多個(gè)時(shí)間戳。進(jìn)一步地,該系統(tǒng)的物理層次與邏輯層次一一相對(duì)應(yīng)。首先,邏輯上由空間特征劃分的區(qū)段對(duì)應(yīng)與物理上的一個(gè)集群;而邏輯上負(fù)責(zé)某一個(gè)時(shí)間戳的節(jié)點(diǎn)則對(duì)應(yīng)物理集群中的某個(gè)具體節(jié)點(diǎn)。由于每一個(gè)給緩存集群分配的空間特征區(qū)段有相互重疊,這就決定了對(duì)應(yīng)于任何一份時(shí)空特征數(shù)據(jù),在系統(tǒng)中都有多份緩存副本;當(dāng)某一特定范圍數(shù)據(jù)訪問較為密集導(dǎo)致某一集群負(fù)載較重時(shí),可以選擇由另一包含相同空間區(qū)間范圍數(shù)據(jù)的集群來(lái)處理數(shù)據(jù)訪問請(qǐng)求。從而達(dá)到了整個(gè)緩存系統(tǒng)上負(fù)載均衡的效果。在系統(tǒng)投入應(yīng)用之前,首先要確定系統(tǒng)所面向的時(shí)空數(shù)據(jù)的范圍,并針對(duì)空間特征信息,給系統(tǒng)中每一個(gè)緩存集群分配相應(yīng)的空間索引范圍段,以便通過根據(jù)空間特征信息選取一系列的可用的緩存集群。進(jìn)一步地,在其它應(yīng)用實(shí)例中,當(dāng)數(shù)據(jù)讀取速度要求較高時(shí),可以將請(qǐng)求的空間范圍劃分為若干段,將各段數(shù)據(jù)分配到不同的分發(fā)集群處理。這樣可以防止單個(gè)集群的數(shù)據(jù)物理出口被過度占用,充分利用整個(gè)系統(tǒng)的帶寬。一種面向時(shí)空數(shù)據(jù)的分布式緩存方法,參考圖2至圖5,包括以下步驟:
SI,針對(duì)要處理的時(shí)空數(shù)據(jù)范圍,對(duì)集群負(fù)責(zé)處理的范圍進(jìn)行劃分,以及 S2,針對(duì)時(shí)空數(shù)據(jù),在分布式緩存系統(tǒng)中選擇適合的緩存節(jié)點(diǎn),以及 S3,包括當(dāng)用戶訪問數(shù)據(jù)命中與未命中時(shí)各種情況的處理,
其中SI包括以下子步驟,
S11,時(shí)空數(shù)據(jù)的空間索引范圍確定,具體為,首先對(duì)整個(gè)系統(tǒng)中所存儲(chǔ)的空間數(shù)據(jù)進(jìn)行建模,分析其使用的維度范圍后,建立全局的Universal B-Tree用對(duì)多維空間進(jìn)行劃分,并使用Universal B-Tree中的Z值作為索引值,對(duì)每一個(gè)空間數(shù)據(jù)的特征點(diǎn)可以得到唯一的索引標(biāo)識(shí);
S12,對(duì)緩存集群與集群中的緩存節(jié)點(diǎn)的索引范圍分配,具體為,對(duì)于緩存集群,首先根據(jù)空間數(shù)據(jù)特征索引有可能的范圍,對(duì)當(dāng)前系統(tǒng)中所有集群統(tǒng)一分配其對(duì)應(yīng)空間范圍,要求各個(gè)集群分配到的范圍相互有重疊,并且其范圍之并集覆蓋整個(gè)空間范圍。在一具體應(yīng)用實(shí)例中,索引范圍為ZO至Z5,而系統(tǒng)中總共有5個(gè)緩存集群,先將ZO至Z5的范圍等分為4等分,其中間的索引值分別為Zl、Z2、Z3,取好這些值之后開始將空間一次分配給5個(gè)緩存集群,如圖6所示,給5個(gè)集群依次分配上[Z0,Z2)、[Z1,Z3)、[Z2, Z4)、[Z3, Z5)、[Z4, Z5]U[Z0, Zl),這樣5個(gè)集群分配到的索引范圍大小相等、兩兩相互重疊,并且并集覆蓋整個(gè)空間索引區(qū)間的范圍。其中S2包括以下子步驟,
S21,空間特征點(diǎn)選取,具體為,空間特征點(diǎn)提取可以選取該數(shù)據(jù)某一個(gè)向量作為其特征值向量,然后通過Universal B-Tree算法,將該特征值向量轉(zhuǎn)化為單維度的索引值;S22,目標(biāo)緩存集群的選取,具體為,由S21中選擇的空間特征點(diǎn),根據(jù)Sll中建立的Universal B-Tree確定該特征點(diǎn)所對(duì)應(yīng)的空間索引標(biāo)識(shí),然后將S12中所有包含該索引的集群確定為備選集群;
S23,從備選集群中選擇一個(gè)集群作為操作集群,其選擇方式可以分為隨機(jī)選取和按條件選取,其中隨機(jī)選取是在集群狀態(tài)未知或狀態(tài)參數(shù)沒有更新時(shí),采用的選取方法;按條件選取則是在各集群狀態(tài)已知的情況下,通過選取負(fù)載最小的集群作為待操作集群的方法;S24,時(shí)間特征點(diǎn)提取,從空間數(shù)據(jù)的元信息中選取相應(yīng)的時(shí)間特征點(diǎn),若該時(shí)空數(shù)據(jù)的時(shí)間對(duì)應(yīng)的為某一時(shí)刻,則選取該時(shí)刻的時(shí)間戳作為時(shí)間索弓I,否則若時(shí)空數(shù)據(jù)的時(shí)間為某一段時(shí)間,則選取這段時(shí)間的起點(diǎn)作為時(shí)間索引;
S25,目標(biāo)緩存節(jié)點(diǎn)的選取,具體為,對(duì)S23中選取的時(shí)間特征點(diǎn)對(duì)某特定數(shù)值取模,將得到的結(jié)果作為選取集群內(nèi)節(jié)點(diǎn)的索引號(hào);
S3包括以下子步驟:
S31,緩存命中時(shí)的處理,在帶操作集群中根據(jù)時(shí)間特征選擇出待操作節(jié)點(diǎn)后,通過該節(jié)點(diǎn)間所需數(shù)據(jù)是否存在,若存在則直接返回;
S32,緩存未命中時(shí)的處理,當(dāng)用戶所指定的時(shí)空特征數(shù)據(jù)在緩存中沒用命中時(shí),從數(shù)據(jù)中心取出該數(shù)據(jù)后,將該數(shù)據(jù)廣播分發(fā)到每一個(gè)根據(jù)該數(shù)據(jù)空間特征選擇出的備選集群中的每一個(gè)集群。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng),其特征在于,該分布式緩存系統(tǒng)包括多個(gè)分布式緩存集群,每個(gè)集群對(duì)應(yīng)于一定空間特征范圍的數(shù)據(jù),不同集群負(fù)責(zé)的緩存范圍有相互重疊,每個(gè)集群內(nèi)部由若干緩存節(jié)點(diǎn)組成,同一集群內(nèi)每個(gè)緩存節(jié)點(diǎn)所對(duì)應(yīng)的空間特征范圍信息都相同,但是每個(gè)緩存節(jié)點(diǎn)對(duì)應(yīng)于不同時(shí)間范圍內(nèi)的空間數(shù)據(jù)信息。
2.根據(jù)權(quán)利要求1所述的面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng),其特征在于,當(dāng)數(shù)據(jù)讀取速度要求較高時(shí),將請(qǐng)求的空間范圍劃分為若干段,將各段數(shù)據(jù)分配到不同的分發(fā)集群處理。
3.一種面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于,包括以下步驟: SI,針對(duì)要處理的時(shí)空數(shù)據(jù)范圍,對(duì)集群負(fù)責(zé)處理的范圍進(jìn)行劃分,以及 S2,針對(duì)時(shí)空數(shù)據(jù),在分布式緩存系統(tǒng)中選擇適合的緩存節(jié)點(diǎn),以及 S3,包括當(dāng)用戶訪問數(shù)據(jù)命中與未命中時(shí)各種情況的處理, 其中SI包括以下子步驟, S11,時(shí)空數(shù)據(jù)的空間索引范圍確定,具體為,首先對(duì)整個(gè)系統(tǒng)中所存儲(chǔ)的空間數(shù)據(jù)進(jìn)行建模,分析其使用的維度范圍,建立全局的Universal B-Tree用對(duì)多維空間進(jìn)行劃分,并使用Universal B-Tree中的Z值作為索引值,對(duì)每一個(gè)空間數(shù)據(jù)的特征點(diǎn)可以得到唯一的索引標(biāo)識(shí); S12,對(duì)緩存集群與集群中的緩存節(jié)點(diǎn)的索引范圍分配,具體為,對(duì)于緩存集群,首先根據(jù)空間數(shù)據(jù)特征索引有可能 的范圍,對(duì)當(dāng)前系統(tǒng)中所有集群統(tǒng)一分配其對(duì)應(yīng)空間范圍,要求各個(gè)集群分配到的范圍相互有重疊,并且其范圍之并集覆蓋整個(gè)空間范圍; S2包括以下子步驟, S21,空間特征點(diǎn)選取,具體為,空間特征點(diǎn)提取可以根據(jù)空間數(shù)據(jù)元信息中表示空間信息的具體描述來(lái)選??; S22,目標(biāo)緩存集群的選取,具體為,由S21中選擇的空間特征點(diǎn),根據(jù)Sll中建立的Universal B-Tree確定該特征點(diǎn)所對(duì)應(yīng)的空間索引標(biāo)識(shí),然后將S12中所有包含該索引的集群確定為備選集群; S23,從備選集群中選擇一個(gè)集群作為操作集群,用于承擔(dān)此次的緩存操作; S24,時(shí)間特征點(diǎn)提取,從空間數(shù)據(jù)的元信息中選取相應(yīng)的時(shí)間特征點(diǎn); S25,目標(biāo)緩存節(jié)點(diǎn)的選取,具體為,對(duì)S23中選取的時(shí)間特征點(diǎn)對(duì)某特定數(shù)值取模,將得到的結(jié)果作為選取集群內(nèi)節(jié)點(diǎn)的索引號(hào); S3包括以下子步驟: S31,緩存命中時(shí)的處理,在帶操作集群中根據(jù)時(shí)間特征選擇出待操作節(jié)點(diǎn)后,通過該節(jié)點(diǎn)間所需數(shù)據(jù)是否存在,若存在則直接返回; S32,緩存未命中時(shí)的處理,緩存未命中時(shí)的處理分為兩步,從數(shù)據(jù)中心直接向用戶返回?cái)?shù)據(jù)和將選取出數(shù)據(jù)分配到緩存系統(tǒng)中。
4.根據(jù)權(quán)利要求3所述的面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于,S21中,針對(duì)任意維度的空間信息,可以選取某一個(gè)向量作為其特征值向量,然后通過UniversalB-Tree算法,將該特征值向量轉(zhuǎn)化為單維度的索引值。
5.根據(jù)權(quán)利要求3所述的面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于,S24中,對(duì)于給定時(shí)空數(shù)據(jù),可以選取其時(shí)間維度上某一個(gè)點(diǎn)作為該數(shù)據(jù)的特征時(shí)間戳,并作為時(shí)間特征索引。
6.根據(jù)權(quán)利要求3中所述的面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于,S23中選擇緩存節(jié)點(diǎn)時(shí),首先根據(jù)待緩存的空間特征選取目的緩存集群,然后根據(jù)時(shí)間特征選取該集群中的某個(gè)節(jié)點(diǎn)將數(shù)據(jù)進(jìn)行緩存。
7.根據(jù)權(quán)利要求6中所述的面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于, 根據(jù)待緩存數(shù)據(jù)的空間特征選取緩存集群時(shí),首先提取出一個(gè)單維度的索引值,然后將包含該索引值的所有集群都納入選擇范圍。
8.根據(jù)權(quán)利要求6中所述的面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于,根據(jù)用戶指定空間特征選擇目標(biāo)數(shù)據(jù)時(shí),首先根據(jù)空間特征選出滿足要求的備選集群,然后根據(jù)集群的位置、負(fù)載情況等信息從備選集群中選擇出一個(gè)理想的目標(biāo)集群負(fù)責(zé)此次緩存的讀取操作。
9.根據(jù)權(quán)利要求3所述的面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于,S25中,在根據(jù)空間特征選定某緩存集群之后,根據(jù)時(shí)間特征唯一地選定該集群中的某一個(gè)節(jié)點(diǎn)作為緩存的目標(biāo)節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求3所述的面向時(shí)空數(shù)據(jù)的分布式緩存方法,其特征在于,S32中,當(dāng)用戶所指定的時(shí)空特征數(shù)據(jù)在緩存中沒用命中時(shí),從數(shù)據(jù)中心取出該數(shù)據(jù)后,將該數(shù)據(jù)廣播分發(fā)到每一個(gè)根據(jù)該 數(shù)據(jù)空間特征選擇出的備選集群中的每一個(gè)集群。
全文摘要
本發(fā)明實(shí)施例公開了一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)及方法。其中一實(shí)施例中,一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)包括多個(gè)分布式緩存集群,每個(gè)集群對(duì)應(yīng)于一定空間特征范圍的數(shù)據(jù),不同集群負(fù)責(zé)的緩存范圍有相互重疊,每個(gè)集群內(nèi)部由若干緩存節(jié)點(diǎn)組成,同一集群內(nèi)每個(gè)緩存節(jié)點(diǎn)所對(duì)應(yīng)的空間特征范圍信息都相同,但是每個(gè)緩存節(jié)點(diǎn)對(duì)應(yīng)于不同時(shí)間范圍內(nèi)的空間數(shù)據(jù)信息。本發(fā)明用于提供一種面向時(shí)空數(shù)據(jù)的分布式緩存系統(tǒng)及方法,此系統(tǒng)工作在用戶對(duì)數(shù)據(jù)中心訪問的中間層,能夠在不改變用戶原有訪問方式的情況下,實(shí)現(xiàn)對(duì)時(shí)空特征的數(shù)據(jù)的緩存,以加快時(shí)空特征數(shù)據(jù)訪問速度。
文檔編號(hào)H04L29/08GK103118132SQ20131006276
公開日2013年5月22日 申請(qǐng)日期2013年2月28日 優(yōu)先權(quán)日2013年2月28日
發(fā)明者陳華鈞, 劉 東, 方聰, 胡磊, 楊建華, 鄭國(guó)軸, 吳朝暉 申請(qǐng)人:浙江大學(xué)