專利名稱:一種通過數(shù)據(jù)信息關鍵域存儲和讀取數(shù)據(jù)信息的方法
技術領域:
本發(fā)明涉及數(shù)據(jù)信息存取技術,具體涉及一種通過數(shù)據(jù)信息關鍵域存儲和讀取數(shù)據(jù)信息的方法。
背景技術:
在電信目益普及的今天,電信用戶的數(shù)量也迅速增加。這些用戶在申請其電信終端加入電信網(wǎng)絡之后,網(wǎng)絡需要將所有簽約用戶的相關信息放置在諸如位置寄存器等的網(wǎng)絡設備上。當有電話呼叫時,網(wǎng)絡根據(jù)呼叫的電話號碼訪問這些存儲信息的設備,并從中提取和電話呼叫相關的信息,從而正確地接續(xù)該電話呼叫。當用戶數(shù)量非常多時,這些用戶的相關信息的數(shù)量將是一個十分龐大的數(shù)字。那么如何將這些大量的數(shù)據(jù)分別放置在不同的設備上進行管理,又怎樣對這些儲存在設備上的數(shù)據(jù)進行隨機訪問,則直接影響到整個電信系統(tǒng)的建設開發(fā)維護成本和運轉(zhuǎn)的效率。
目前的解決辦法一般是為諸如電信用戶個人信息的每個數(shù)據(jù)進行編號,例如電話號碼或手機號碼,這個編號被稱為該數(shù)據(jù)的關鍵域。要實現(xiàn)完全根據(jù)關鍵域來隨機訪問相關的數(shù)據(jù),例如通過手機號碼查詢用戶的簽約信息等,在目前必須保證關鍵域中包含存儲該關鍵域?qū)獢?shù)據(jù)的設備的編號,也就是關鍵域?qū)臄?shù)據(jù)的歸屬服務器的編號,例如,目前手機號碼中的第四位至第七位即是該手機號碼的歸屬位置寄存器的編號。
目前由于用戶在地理上的遷移十分普遍,因此和用戶相關的數(shù)據(jù)也需要進行搬移,這樣在數(shù)據(jù)搬移到遷移地新的設備之后,用戶號碼將不再對應原來申請?zhí)柎a時對應的設備,因此通過用戶號碼原來對應的設備不能獲取用戶的當前信息,從而迫使用戶在遷移到外地后需要重新申請新的電話號碼。而這將給用戶帶來很多的不便,用戶需要將新的電話號碼告訴所有需要聯(lián)系的人,如果用戶遷移頻繁且需要聯(lián)系的人很多,這將是難以忍受的。目前的移動電話可以實現(xiàn)漫游業(yè)務,但是在漫游地撥打或接收電話呼叫時,需要支付漫游費,給用戶增加了經(jīng)濟上的負擔。
如果在電信號碼等數(shù)據(jù)的關鍵域中不包含設備編號,例如采用個人號碼技術,那么就可以解決上述問題。無論是固定電話還是移動電話,在用戶遷移到外地后,通過將個人信息從原有設備中遷移到新的設備中,然后在新的遷移地可以通過到新的設備獲取數(shù)據(jù)信息而繼續(xù)使用原有的個人號碼,將給用戶帶來很大的方便。為了滿足這種愿望,可以隨機存儲用戶的個人信息并采用對所有設備進行遍歷查詢的方法來獲取諸如用戶實際電話號碼的用戶信息,但是這種遍歷訪問需要訪問大量甚至所有的設備,其效率非常低。同時,也可以采用在網(wǎng)絡中廣播的方式來解決這個問題,但是這樣會明顯地增加設備之間的數(shù)據(jù)流量,對于設備很多的情況,這種大量增加的數(shù)據(jù)流量有可能引起網(wǎng)絡癱瘓,從而使電信網(wǎng)絡不能正常運轉(zhuǎn)。因此,目前提出的這兩種想法對于解決采用設備無關性編碼存取數(shù)據(jù)信息的這一構想來說,都存在著致命的缺陷而難以實現(xiàn)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的一個目的是克服現(xiàn)有技術的不足,提供一種迅速方便地在設備上存儲數(shù)據(jù)的方法。
本發(fā)明的另一個目的是提供一種迅速方便地獲取數(shù)據(jù)信息的方法。
本發(fā)明的目的是通過如下的技術方案予以解決的一種根據(jù)數(shù)據(jù)信息關鍵域存儲數(shù)據(jù)信息的方法,它包括如下步驟a.預先在網(wǎng)絡中建立并存儲從根節(jié)點映射到葉子節(jié)點的由多級非葉子節(jié)點和一級葉子節(jié)點連接組成的散射樹,散射樹是反映從數(shù)據(jù)信息關鍵域映射到網(wǎng)絡中設備的逐級映射對照表,散射樹中的非葉子節(jié)點至少包括子節(jié)點數(shù)量以及向子節(jié)點映射的散列運算方法信息;
b.根據(jù)散射樹對數(shù)據(jù)信息的關鍵域進行逐級散列運算,并根據(jù)逐級散列運算結(jié)果將數(shù)據(jù)信息映射到相應葉子節(jié)點;c.將數(shù)據(jù)信息存儲到葉子節(jié)點對應的設備上。
在上述存儲數(shù)據(jù)信息的方法中,散射樹中各個非葉子節(jié)點包括的子節(jié)點數(shù)量和散列運算方法可以相同,也可以不同。
在上述存儲數(shù)據(jù)信息的方法中,當一個設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值時,可以對該設備進行擴容。
在上述存儲數(shù)據(jù)信息的方法中,當數(shù)據(jù)信息需要搬移時,可以以葉子節(jié)點為單位將設備中該葉子節(jié)點對應的全部數(shù)據(jù)信息搬移到一個目的設備中,并在散射樹中將該葉子節(jié)點對應的設備編號修改為目的設備編號。
在上述存儲數(shù)據(jù)信息的方法中,當一個設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值時,可以將該設備對應的一個葉子節(jié)點映射的全部數(shù)據(jù)信息搬移到其它具有相應存儲空間的一個設備中。
在上述存儲數(shù)據(jù)信息的方法中,當一個設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值時,可以新建一個設備,并將達到容量閾值的設備中部分葉子節(jié)點所映射的全部數(shù)據(jù)信息搬移到新建的設備中。
在上述存儲數(shù)據(jù)信息的方法中,當原有設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值并且該原有設備只對應一個葉子節(jié)點時,可以通過散射樹的生長方式將該葉子節(jié)點變成非葉子節(jié)點,并確定該節(jié)點的子節(jié)點數(shù)和散列運算方法,然后通過該散列運算方法,將該原有設備中的數(shù)據(jù)信息散射到該節(jié)點的各個子節(jié)點中,并將部分子節(jié)點所對應的數(shù)據(jù)分別搬移到包括新建設備的其它設備中,其他子節(jié)點對應的數(shù)據(jù)保留在原有設備中,在散射樹中設置其他子節(jié)點對應的設備編號為該原有設備編號。
在上述存儲數(shù)據(jù)信息的方法中,當大于1個的設備中存儲的數(shù)據(jù)信息的使用容量分別低于設備的最小容量閾值時,將大于1個的設備中所有數(shù)據(jù)信息通過搬移方式合并到其中一個所述設備中。
在上述存儲數(shù)據(jù)信息的方法中,當一個非葉子節(jié)點映射的所有數(shù)據(jù)信息容量小于另一個設備的剩余容量,將該非葉子節(jié)點映射的全部數(shù)據(jù)信息搬移到另一個設備中,在散射樹中刪除該非葉子節(jié)點下的所有葉子節(jié)點,使非葉子節(jié)點變成葉子節(jié)點,并使該節(jié)點指向另一個設備。
在上述存儲數(shù)據(jù)信息的方法中,當一個非葉子節(jié)點對應的數(shù)據(jù)信息已經(jīng)集中到該節(jié)點的某一個子節(jié)點中,取消該非葉子節(jié)點以及除該子節(jié)點之外的其他子節(jié)點,在散射樹中將數(shù)據(jù)信息集中的子節(jié)點上移到非葉子節(jié)點的位置。
在上述存儲數(shù)據(jù)信息的方法中,數(shù)據(jù)信息關鍵域可以不包括設備編號信息。
一種針對按照上述方法存儲的數(shù)據(jù)信息的讀取方法,它包括如下步驟a.根據(jù)散射樹對數(shù)據(jù)信息關鍵域進行逐級散列運算;b.根據(jù)逐級散列運算結(jié)果將數(shù)據(jù)信息映射到相應葉子節(jié)點;c.從葉子節(jié)點對應的設備中讀取對應于數(shù)據(jù)信息關鍵域的數(shù)據(jù)信息。
在上述讀取數(shù)據(jù)信息的方法中,數(shù)據(jù)信息關鍵域可以不包括設備編號信息。
通過本發(fā)明的技術方案可以看出,由于預先給數(shù)據(jù)信息分配不包含設備編號的數(shù)據(jù)信息關鍵域并在網(wǎng)絡中存儲數(shù)據(jù)信息關鍵域與設備編號的逐級映射對照表,當需要存儲某個數(shù)據(jù)信息時,對數(shù)據(jù)信息關鍵域進行散列運算,根據(jù)運算結(jié)果將數(shù)據(jù)信息存儲到散列運算結(jié)果所映射的相應設備上。如果該設備沒有足夠的存儲空間,則可以通過新建設備、數(shù)據(jù)信息搬移、對設備擴容等方法來解決。因此,使用本發(fā)明可以將數(shù)據(jù)信息快速方便地存儲到某個設備中。當需要根據(jù)數(shù)據(jù)信息關鍵域讀取數(shù)據(jù)信息時,通過存儲的數(shù)據(jù)信息關鍵域和數(shù)據(jù)信息之間的對照表,即可根據(jù)散列運算結(jié)果通過表中的某一個分支快速地確定存儲信息的設備,不再需要在網(wǎng)絡中訪問所有的設備,也不再需要在整個網(wǎng)絡中對數(shù)據(jù)進行廣播,這樣就有效地解決了現(xiàn)有技術的缺點,使整個數(shù)據(jù)信息的存儲和讀取過程快速、方便、準確、有效。
下面結(jié)合附圖和具體實施方式
對本發(fā)明進行進一步的說明。
圖1是根據(jù)本發(fā)明的散射樹的示意圖;圖2是根據(jù)本發(fā)明的一個簡單散射樹的示意圖;圖3是圖2的散射樹的根節(jié)點分出子節(jié)點之后的示意圖;圖4是圖3的散射樹基礎上新建一個數(shù)據(jù)設備之后的示意圖;圖5是將個人號碼對應個人信息存儲到數(shù)據(jù)設備過程的流程圖;圖6是圖1的散射樹基礎上進行數(shù)據(jù)信息搬移之后的示意圖;圖7是圖1的散射樹基礎上新建數(shù)據(jù)設備并進行數(shù)據(jù)信息搬移之后的示意圖;圖8是圖7的散射樹基礎上再次新建數(shù)據(jù)設備并進行數(shù)據(jù)信息搬移之后的示意圖;圖9是圖8的散射樹基礎上數(shù)據(jù)設備合并之后的示意圖。
具體實施例方式
在電信網(wǎng)絡中,用個人信息歸屬服務器(PIHLR)存儲用戶的個人信息,該個人信息的關鍵域——個人號碼中不包含PIHLR的編號。下面具體介紹怎樣通過在個人信息的關鍵域中不包含PIHLR編號的情況下,迅速將用戶個人信息分配到某一個PIHLR,以及在需要獲取用戶信息時,快速直接地定位到該個人號碼相關的PIHLR地址并從中獲取用戶信息。
在電話網(wǎng)絡建立之后,在市內(nèi)電話網(wǎng)絡通達的地區(qū)覆蓋范圍內(nèi)建立PIHLR,用于存儲該地區(qū)內(nèi)所有用戶的個人信息資料。設置個人號碼和PIHLR編號的對照表,并存儲在網(wǎng)絡的交換機或其他網(wǎng)絡設備中。由于個人號碼和PIHLR編號之間的對應關系呈樹狀結(jié)構,因此稱其為散射樹。圖1示出了一個散射樹的結(jié)構。在圖1中可以看出,該散射樹的根節(jié)點和5個節(jié)點有直接對應關系,也就是在圖中有實線直接連接。將散射樹的根節(jié)點稱為0級節(jié)點,它所包含的5個節(jié)點都稱為1級節(jié)點。在這5個1級節(jié)點中,第3個1級節(jié)點和第4個1級節(jié)點又分別包含5個子節(jié)點和7個子節(jié)點,將這些包含在I級節(jié)點中的子節(jié)點稱為2級節(jié)點。從圖1中可以看到,所有的這些節(jié)點中,第1個1級節(jié)點、第2個1級節(jié)點和第5個1級節(jié)點以及所有2級節(jié)點都直接對應實際的網(wǎng)絡設備,即PIHLR,將它們稱為葉子節(jié)點,也就是圖中用虛線和PIHLR連接的橢圓形節(jié)點,其中標注的數(shù)字表示它們對應的PIHLR的編號。在散射樹中,只能有一個根節(jié)點,在根節(jié)點之下根據(jù)系統(tǒng)容量和用戶數(shù)量可以有多個1級節(jié)點,同時,每個1級節(jié)點下面可以有多個2級節(jié)點,每個2級節(jié)點下面還可以有多個3級節(jié)點,依此類推。直接對應PIHLR設備的是葉子節(jié)點,其他節(jié)點都是非葉子節(jié)點。散射樹的每個非葉子節(jié)點都包含該節(jié)點向下遍歷的方法,也就是存儲于網(wǎng)絡設備中的個人號碼與PIHLR編號的對照表中的該非葉子節(jié)點旁,都標注了從該節(jié)點如何向下定位其子節(jié)點的方法,這種方法包括該節(jié)點下的分組數(shù)以及所適用的散列運算方法等信息。
圖1是一個已經(jīng)基本成型的散射樹示意圖。而在網(wǎng)絡建立之初,用戶數(shù)量還比較少的時候,可能只有一個PIHLR,而散射樹也只有一個根節(jié)點,沒有子節(jié)點,根節(jié)點直接對應PIHLR,這種情況如圖2所示。在圖2中可以看出,根節(jié)點就是葉子節(jié)點,所有用戶的個人信息直接通過根節(jié)點映射到PIHLR1。此時,由于根節(jié)點不包含子節(jié)點,因此它也不包含分組信息和散列運算信息。如果在電信網(wǎng)絡中要增加一個用戶個人信息,直接將該個人號碼通過根節(jié)點映射到PIHLR1,并將該個人號碼對應的個人信息存儲到PIHLR1即可。
如果由于用戶數(shù)量增多,PIHLR1所儲存的用戶信息量已經(jīng)達到它目前的最大儲存容量或者預先設置的容量上限閾值,例如最大儲存容量的80%。那么新增的用戶信息將不能再插入到PIHLR1中。在這種情況下,可以首先考慮對PIHLR1進行擴容。也就是說,如果PIHLR1目前的可以使用的容量尚未達到其最大設計容量時,可以通過增加諸如數(shù)據(jù)板等存儲體的辦法對其進行擴容。這樣,就可以在原有PIHLR1中繼續(xù)存儲新增的用戶個人信息。
如果原有PIHLR已經(jīng)達到最大設計容量,不能通過擴容的辦法存儲新的個人信息,那么就需要增加新的PIHLR了。首先,新增一個PIHLR,稱其為PIHLR2。由于PIHLR1對應的葉子節(jié)點只有一個根節(jié)點,此時,需要根據(jù)該PIHLR1中用戶號碼分布特征,選擇合適分組數(shù)G和散列運算方法,將PIHLR1中的個人號碼分組映射到G個分組中。用每個分組創(chuàng)建一個節(jié)點,分別為Node1~NodeG,并將這G個節(jié)點作為根節(jié)點的子節(jié)點。將G個節(jié)點分成1~m和m+1~G兩組,讓第一組1~m個節(jié)點對應原來的PIHLR1,讓第二組m+1~G個節(jié)點對應新增加的PIHLR2,并將原來PIHLR1中m+1~G分組中的個人號碼對應信息轉(zhuǎn)移到新增的PIHLR2中。
在這個例子中,分組數(shù)G是5,也就是將根節(jié)點下面分為5個1級節(jié)點,它們都指向PIHLR1,如圖3所示。這里的散列運算方法是公知技術,在實際操作中可以根據(jù)具體情況針對某一個節(jié)點采用一種具體的散列運算方法,不同節(jié)點的散列運算方法可以不同。在這里可以舉一個簡單的例子,例如個人號碼由6位數(shù)字組成,將個人號碼的前3位號碼除以5取余數(shù),根據(jù)余數(shù)將個人號碼分別映射到不同的1級節(jié)點中。例如,余數(shù)是0則映射到第1個1級節(jié)點,余數(shù)是1則映射到第2個1級節(jié)點,余數(shù)是2則映射到第3個1級節(jié)點,依此類推。這樣,就將原來都對應根節(jié)點的所有個人號碼分別映射到不同的1級節(jié)點之中。
在這個例子中,m取3,這樣就是第1個、第2個和第3個1級節(jié)點依然對應PIHLR1,而其余2個1級節(jié)點則對應PIHLR2。同時將映射到其余2個1級節(jié)點的個人號碼相應的個人信息從PIHLR1搬移到PIHLR2中,之后的散射樹結(jié)構如圖4所示。
上面通過一個簡單的例子介紹了PIHLR擴容、新建和PIHLR中數(shù)據(jù)的搬移。為了不失一般性,下面針對圖1的散射樹對本發(fā)明的技術方案進行更全面和系統(tǒng)的敘述。
在圖1中,根據(jù)根節(jié)點包含的散列運算方法,例如是將個人號碼的前3位號碼除以5取余數(shù),然后根據(jù)余數(shù)的不同將個人號碼分別映射到不同的1級節(jié)點。如果某一個1級節(jié)點所對應的個人號碼較多,例如由于外地遷移到本地的個人號碼集中在這一個號碼段中,那么可以在該1級節(jié)點之下再根據(jù)前述新建PIHLR中講述的節(jié)點分組方法分為不同個數(shù)的2級節(jié)點。這些2級節(jié)點分別對應不同的PIHLR。
如圖5所示,在目前的散射樹的基礎上,如果新增一個個人號碼,需要將其個人信息分配并存儲到某一個PIHLR中,則首先執(zhí)行步驟501,即通過散列運算將個人號碼映射到某一個葉子節(jié)點。具體地說,就是將個人號碼根據(jù)根節(jié)點的散列運算方法進行計算,根據(jù)計算結(jié)果將其映射到某一個1級節(jié)點。如果該1級節(jié)點直接對應某一個PIHLR,也就是說該1級節(jié)點是葉子節(jié)點,則將對應個人信息直接映射到該PIHLR。如果該1級節(jié)點不是葉子節(jié)點,則根據(jù)該1級節(jié)點所包含的散列運算方法繼續(xù)進行散列運算,將該個人號碼映射到該1級節(jié)點下的某一個2級節(jié)點,如果該2級節(jié)點是葉子節(jié)點,則將個人信息映射到該2級節(jié)點對應的PIHLR中。如果該2級節(jié)點還不是葉子節(jié)點,則根據(jù)該2級節(jié)點所包含的散列運算方法繼續(xù)進行散列運算,將該個人號碼映射到該2級節(jié)點下的某一個3級節(jié)點。這個過程持續(xù)進行,直到將該個人號碼映射到散射樹的某一個葉子節(jié)點為止。
然后,系統(tǒng)判斷該葉子節(jié)點對應的PIHLR容量是否已滿,如果該PIHLR還可以存儲信息,即執(zhí)行步驟510,將個人號碼對應的個人信息存儲到該葉子節(jié)點對應的PIHLR中。
如果該PIHLR已經(jīng)達到最大容量或者預先設置的容量上限閾值,例如最大容量的80%,而不能再將個人信息插入到該PIHLR中,那么可以考慮對PIHLR中的數(shù)據(jù)進行搬移,即執(zhí)行步驟503,判斷該PIHLR中的數(shù)據(jù)是否可以搬移,也就是判斷其他PIHLR是否有足夠容量容納一部分數(shù)據(jù)。如果可以通過數(shù)據(jù)搬移來存儲新的個人信息,則執(zhí)行步驟504和505,通過前述數(shù)據(jù)搬移的方法對相應的PIHLR中的數(shù)據(jù)進行搬移,并修改相關節(jié)點對應的PIHLR編號。然后執(zhí)行步驟510。
例如,參照在圖1的散射樹基礎上進行數(shù)據(jù)信息搬移之后而形成的圖6,圖1中的第3個1級節(jié)點下的第4個2級節(jié)點原來對應到PIHLR2。如果PIHLR2的容量已經(jīng)不允許再進行存儲數(shù)據(jù)的操作,即可查找哪些葉子節(jié)點對應了PIHLR2,并計算出PIHLR2對應的每個節(jié)點映射的個人號碼數(shù)量,然后查找其余各個PIHLR的剩余容量,將其余PIHLR的剩余容量和上述PIHLR2對應的每個節(jié)點映射的個人號碼數(shù)量進行比較,從其余PIHLR中確定一個合適的PIHLR,使其剩余容量可以容納以上某個合適的2級節(jié)點映射的全部個人號碼對應信息,例如發(fā)現(xiàn)PIHLR3可以容納第3個1級節(jié)點下第4個2級節(jié)點的所有信息。然后,將第3個1級節(jié)點下的第4個2級節(jié)點映射的個人號碼的相應信息從原來的PIHLR2搬移到PIHLR3,同時在映射表中將該節(jié)點對應的PIHLR更改為PIHLR3。經(jīng)過上述數(shù)據(jù)搬移之后的散射樹結(jié)構如圖6所示。如果新增的個人號碼通過散列運算映射到第3個1級節(jié)點下的第4個2級節(jié)點,則將相應個人信息存儲到PIHLR3。如果新增的個人號碼通過散列運算映射到第3個1級節(jié)點下的其余節(jié)點,則將相應個人信息依然存儲到PIHLR2。
如果在步驟503中判斷所有的PIHLR的容量都已經(jīng)接近飽和,而不宜采用數(shù)據(jù)搬移的方法插入新增數(shù)據(jù),則執(zhí)行步驟506,考慮通過前述擴容方法對某些PIHLR進行擴容。這樣可以增加系統(tǒng)的總?cè)萘?,從而使新增?shù)據(jù)可以存儲到某一個PIHLR之中。如果可以對PIHLR擴容,則執(zhí)行步驟507,按照前述擴容方法對相應PIHLR進行擴容。然后再執(zhí)行步驟510。
如果在步驟506中判斷PIHLR已經(jīng)接近設計容量的上限值而不能擴容,則執(zhí)行步驟508,即新建PIHLR,然后在步驟509中,將原有PIHLR內(nèi)的數(shù)據(jù)搬移到新建的PIHLR中,然后執(zhí)行步驟510,將個人號碼對應個人信息插入到相應的PIHLR中。
參照在圖1的散射樹基礎上新建數(shù)據(jù)設備并進行數(shù)據(jù)信息搬移之后形成的圖7。例如,圖1中的第5個1級節(jié)點對應的PIHLR5容量已經(jīng)達到設計容量的閾值,并且不能通過數(shù)據(jù)搬移和對PIHLR擴容來存儲新增數(shù)據(jù),那么就需要增加新的PIHLR了。首先,新增一個PIHLR,在這個例子中稱其為PIHLR6。然后查找哪些葉子節(jié)點對應了PIHLR5,可以發(fā)現(xiàn)對應PIHLR5的葉子節(jié)點包括第5個1級節(jié)點、第4個1級節(jié)點下的第6個和第7個2級節(jié)點。計算這三個葉子節(jié)點映射的個人號碼數(shù)量,將映射用戶數(shù)量最多的那個葉子節(jié)點所對應的用戶信息全部搬移到新建的PIHLR6中,例如是第5個1級節(jié)點映射的個人號碼數(shù)量最多,則將其對應的用戶信息全部搬移到PIHLR6中,并使該節(jié)點指向PIHLR6,其結(jié)果如圖7所示。
參照在圖7的散射樹基礎上再次新建數(shù)據(jù)設備并進行數(shù)據(jù)信息搬移之后形成的圖8。如果達到設計容量閾值的PIHLR對應的葉子節(jié)點只有一個,例如圖7中的PIHLR6只對應于第5個1級節(jié)點,而PIHLR6不能再存儲新的數(shù)據(jù),此時,需要新建一個PIHLR7,根據(jù)PIHLR6中的用戶號碼分布特征,選擇合適的分組數(shù)G和散列運算方法,將PIHLR6中的個人號碼散射到G個分組中。用每個分組創(chuàng)建一個節(jié)點,分別為Node1~NodeG,并將這G個節(jié)點作為第5個1級節(jié)點的子節(jié)點。將這G個2級節(jié)點分成1~m和m+1~G兩組,讓第一組1~m個節(jié)點對應原來的PIHLR6,讓第二組m+1~G個節(jié)點對應新增加的PIHLR7,并將原來PIHLR6中m+1~G分組中的個人號碼對應信息轉(zhuǎn)移到新增的PIHLR7中。在這個例子中,取m為1,G為3,散列運算方法采用個人號碼的第4位至第6位組成的數(shù)除以3取余數(shù)。這樣,在第5個1級節(jié)點下,第1個2級節(jié)點依然對應PIHLR6,而其余2個2級節(jié)點則對應PIHLR7。同時將映射到第2個和第3個2級節(jié)點的個人號碼相應的個人信息從PIHLR6搬移到PIHLR7中,之后的散射樹絡構如圖8所示。個人號碼對應的個人信息即可存儲到相應的PIHLR中。
上面講述了如何通過散射樹將個人號碼對應的信息插入到實際的PIHLR中。下面講述對于已經(jīng)成型的散射樹的結(jié)構可以進行的某些優(yōu)化,以提高數(shù)據(jù)信息存儲和讀取的效率。
在散射樹中,如果某幾個PIHLR的用戶數(shù)量非常少,例如其現(xiàn)有信息存儲數(shù)量低于實際容量的20%,就可以考慮對PIHLR進行合并。參照在圖8的散射樹基礎上數(shù)據(jù)設備合并之后形成的圖9。例如,由于用戶的遷移或者退出該網(wǎng)絡服務等原因,圖8中的PIHLR1和PIHLR2中的節(jié)點所映射的用戶容量都接近容量下限閾值,則將PIHLR2中的個人用戶信息全部轉(zhuǎn)移到PIHLR1中,同時,將散射樹中PIHLR2對應的那些節(jié)點所對應的個人信息歸屬服務器編號,全部改為PIHLR1。這種合并后的散射樹如圖9所示。
當一個節(jié)點下只有一個子節(jié)點為非空時,也就是其他子節(jié)點下所有葉子節(jié)點映射的用戶數(shù)為零,則將只包含一個非空子節(jié)點的該節(jié)點刪除,并將其唯一的非空子節(jié)點上移一級,例如從2級節(jié)點上移為1級節(jié)點。
當一個節(jié)點下的所有子節(jié)點都是葉子節(jié)點,且都指向同一個PIHLR時,則可以將該節(jié)點更改為葉子節(jié)點,并使其指向PIHLR,同時,刪除原來該節(jié)點下的所有子節(jié)點。
當一個節(jié)點不是葉子節(jié)點,其映射數(shù)為S,且存在一個PIHLR,該PIHLR的現(xiàn)有用戶數(shù)加上S后,仍然沒有達到該PIHLR的容量上限閾值,則可以將該節(jié)點映射的用戶全部搬移到該PIHLR下,而后將該節(jié)點下的所有葉子節(jié)點全部刪除,使該節(jié)點變成葉子節(jié)點,并使該節(jié)點指向該PIHLR。
對于上述PIHLR的搬移、新建和合并都將改變散射樹的結(jié)構,因此,需要將這些修改廣播到網(wǎng)絡內(nèi)的相應交換機。
這樣,根據(jù)個人號碼,通過散列運算逐級映射散射樹的節(jié)點,直到映射到葉子節(jié)點,從葉子節(jié)點獲取PIHLR地址,這樣即可將用戶個人信息存儲到該PIHLR。在接收到針對個人號碼的電話呼叫時,通過對個人號碼進行逐級的散列運算,確定該個人號碼映射的葉子節(jié)點,然后在該葉子節(jié)點對應的PIHLR中獲取相應的用戶信息,例如實際電話號碼,即可正確地接續(xù)該呼叫。
以上的實施例介紹了如何使用本發(fā)明在電信領域里根據(jù)個人號碼在服務器上存取數(shù)據(jù)。本領域的技術人員可以理解,本發(fā)明的思想和方法還可以應用于不同的場合和環(huán)境,例如計算機網(wǎng)絡以及數(shù)據(jù)庫應用、網(wǎng)絡管理應用等方面,只要涉及到通過設備編碼在設備上存儲和讀取數(shù)據(jù),都可以使用本發(fā)明提供的方法。因此,上述只是本發(fā)明的作為示范的具體實施方式
,并不用以限制本發(fā)明的保護范圍。
權利要求
1.一種根據(jù)數(shù)據(jù)信息關鍵域存儲數(shù)據(jù)信息的方法,它包括如下步驟a.預先在網(wǎng)絡中建立并存儲從根節(jié)點映射到葉子節(jié)點的由多級非葉子節(jié)點和一級葉子節(jié)點連接組成的散射樹,所述散射樹是反映從數(shù)據(jù)信息關鍵域映射到網(wǎng)絡中設備的逐級映射對照表,散射樹中的非葉子節(jié)點至少包括子節(jié)點數(shù)量以及向子節(jié)點映射的散列運算方法信息;b.根據(jù)所述散射樹對數(shù)據(jù)信息的關鍵域進行逐級散列運算,并根據(jù)所述逐級散列運算結(jié)果將數(shù)據(jù)信息映射到相應葉子節(jié)點;c.將所述數(shù)據(jù)信息存儲到所述葉子節(jié)點對應的設備上。
2.根據(jù)權利要求1所述的存儲數(shù)據(jù)信息的方法,其特征是,所述散射樹中各個非葉子節(jié)點包括的子節(jié)點數(shù)量和散列運算方法可以相同,也可以不同。
3.根據(jù)權利要求1所述的存儲數(shù)據(jù)信息的方法,其特征是,當一個設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值時,對該設備進行擴容。
4.根據(jù)權利要求1所述的存儲數(shù)據(jù)信息的方法,其特征是,當數(shù)據(jù)信息需要搬移時,以葉子節(jié)點為單位將設備中該葉子節(jié)點對應的全部數(shù)據(jù)信息搬移到一個目的設備中,并在散射樹中將該葉子節(jié)點對應的設備編號修改為目的設備編號。
5.根據(jù)權利要求4所述的存儲數(shù)據(jù)信息的方法,其特征是,當一個設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值時,將該設備對應的一個葉子節(jié)點映射的全部數(shù)據(jù)信息搬移到其它具有相應存儲空間的一個設備中。
6.根據(jù)權利要求4所述的存儲數(shù)據(jù)信息的方法,其特征是,當一個設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值時,新建一個設備,并將達到容量閾值的設備中部分葉子節(jié)點所映射的全部數(shù)據(jù)信息搬移到新建的設備中。
7.根據(jù)權利要求4所述的存儲數(shù)據(jù)信息的方法,其特征是,當原有設備中存儲的數(shù)據(jù)信息的使用容量達到該設備的最大容量閾值并且該原有設備只對應一個葉子節(jié)點時,通過散射樹的生長方式將該葉子節(jié)點變成非葉子節(jié)點,并確定該節(jié)點的子節(jié)點數(shù)和散列運算方法,然后通過該散列運算方法,將該原有設備中的數(shù)據(jù)信息散射到該節(jié)點的各個子節(jié)點中,并將部分子節(jié)點所對應的數(shù)據(jù)分別搬移到包括新建設備的其它設備中,其他子節(jié)點對應的數(shù)據(jù)保留在所述原有設備中,在散射樹中設置所述其他子節(jié)點對應的設備編號為該原有設備編號。
8.根據(jù)權利要求4所述的存儲數(shù)據(jù)信息的方法,其特征是,當大于1個的設備中存儲的數(shù)據(jù)信息的使用容量分別低于設備的最小容量閾值時,將所述大于1個的設備中所有數(shù)據(jù)信息通過搬移方式合并到其中一個所述設備中。
9.根據(jù)權利要求4所述的存儲數(shù)據(jù)信息的方法,其特征是,當一個非葉子節(jié)點映射的所有數(shù)據(jù)信息容量小于另一個設備的剩余容量,將該非葉子節(jié)點映射的全部數(shù)據(jù)信息搬移到所述另一個設備中,在散射樹中刪除該非葉子節(jié)點下的所有葉子節(jié)點,使所述非葉子節(jié)點變成葉子節(jié)點,并使該節(jié)點指向所述另一個設備。
10.根據(jù)權利要求1所述的存儲數(shù)據(jù)信息的方法,其特征是,當一個非葉子節(jié)點對應的數(shù)據(jù)信息已經(jīng)集中到該節(jié)點的某一個子節(jié)點中,取消該非葉子節(jié)點以及除該子節(jié)點之外的其他子節(jié)點,在散射樹中將數(shù)據(jù)信息集中的子節(jié)點上移到所述非葉子節(jié)點的位置。
11.根據(jù)權利要求1至10中任一權利要求所述的存儲數(shù)據(jù)信息的方法,其特征是,所述數(shù)據(jù)信息關鍵域不包括設備編號信息。
12.一種針對按照權利要求1所述方法存儲的數(shù)據(jù)信息的讀取方法,它包括如下步驟a.根據(jù)散射樹對數(shù)據(jù)信息關鍵域進行逐級散列運算;b.根據(jù)所述逐級散列運算結(jié)果將數(shù)據(jù)信息映射到相應葉子節(jié)點;c.從所述葉子節(jié)點對應的設備中讀取對應于所述數(shù)據(jù)信息關鍵域的數(shù)據(jù)信息。
13.根據(jù)權利要求12所述的讀取數(shù)據(jù)信息的方法,其特征是,所述數(shù)據(jù)信息關鍵域不包括設備編號信息。
全文摘要
本發(fā)明公開了一種根據(jù)數(shù)據(jù)信息關鍵域存儲數(shù)據(jù)信息的方法,使用這種方法時,預先在網(wǎng)絡中建立并存儲從根節(jié)點映射到葉子節(jié)點的由多級非葉子節(jié)點和一級葉子節(jié)點連接組成的散射樹;根據(jù)散射樹對數(shù)據(jù)信息關鍵域進行逐級散列運算,并根據(jù)逐級散列運算結(jié)果將數(shù)據(jù)信息映射到葉子節(jié)點;將數(shù)據(jù)信息存儲到葉子節(jié)點對應的設備上。在上述存儲數(shù)據(jù)信息的基礎上,本發(fā)明還公開了一種相應地讀取數(shù)據(jù)信息的方法,即根據(jù)散射樹對數(shù)據(jù)信息關鍵域進行逐級散列運算;根據(jù)逐級散列運算結(jié)果將數(shù)據(jù)信息映射到葉子節(jié)點;從葉子節(jié)點對應的設備中讀取對應于數(shù)據(jù)信息關鍵域的數(shù)據(jù)信息。使用本發(fā)明可以在數(shù)據(jù)信息關鍵域不包含設備編號信息的情況下,快速、準確地存儲和讀取數(shù)據(jù)信息,有利于個人號碼的遷移攜帶。
文檔編號H04M3/00GK1494301SQ02146090
公開日2004年5月5日 申請日期2002年10月30日 優(yōu)先權日2002年10月30日
發(fā)明者王正偉 申請人:華為技術有限公司