一種實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法
【專利摘要】本發(fā)明涉及一種實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,采用至少一個以上數(shù)據(jù)節(jié)點(diǎn)對數(shù)據(jù)進(jìn)行存儲;查詢方法步驟如下:1)客戶端提交查詢請求至業(yè)務(wù)節(jié)點(diǎn);2)業(yè)務(wù)節(jié)點(diǎn)接收查詢請求,判斷查詢請求中包含的請求顯示的信息條數(shù)、頁碼;業(yè)務(wù)節(jié)點(diǎn)以當(dāng)前查詢頁面的首個數(shù)據(jù)的對象id,結(jié)合當(dāng)前查詢頁面顯示的信息條數(shù)進(jìn)行運(yùn)算,得出所請求的數(shù)據(jù)的起始數(shù)據(jù)的對象id,并結(jié)合請求顯示的信息條數(shù),運(yùn)算得出查詢結(jié)果,并從數(shù)據(jù)節(jié)點(diǎn)輸出符合顯示的信息條數(shù)、頁碼的查詢結(jié)果。在分頁查詢中,不僅可以保證快速有效查詢到結(jié)果,而且還能避免在訪問“下一頁”時出現(xiàn)數(shù)據(jù)重復(fù)的現(xiàn)象,這大大的改善了用戶的體驗(yàn)。
【專利說明】一種實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)存儲與查詢方法,更具體地說,涉及一種實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法。
【背景技術(shù)】
[0002]在當(dāng)今的社交網(wǎng)絡(luò)中,用戶會產(chǎn)生大量的實(shí)時數(shù)據(jù),而往往這些實(shí)時數(shù)據(jù)需要進(jìn)行分布式存儲,此時能夠快速分頁查詢這些實(shí)時數(shù)據(jù)就顯得尤為重要。
[0003]目前,實(shí)現(xiàn)快速查詢分布式數(shù)據(jù)的方法,大多以數(shù)據(jù)偏移量和獲取個數(shù)進(jìn)行分頁查詢,這種技術(shù)存在一點(diǎn)不足:在查看當(dāng)前頁數(shù)據(jù)時,如果數(shù)據(jù)庫增加了新的實(shí)時數(shù)據(jù),當(dāng)你點(diǎn)擊獲取下一頁數(shù)據(jù)時,就會發(fā)現(xiàn)前一頁的數(shù)據(jù)會重復(fù)出現(xiàn)在下一頁上,這樣就會給用戶造成了不好的體驗(yàn)。如圖1所示,時間軸由上到下分別表示訪問第一頁、訪問第二頁的數(shù)據(jù)分布曲線,及其對比。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種解決在訪問下一頁數(shù)據(jù)時出現(xiàn)數(shù)據(jù)重復(fù)現(xiàn)象的問題的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法。
[0005]本發(fā)明的技術(shù)方案如下:
[0006]一種實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,采用至少一個以上數(shù)據(jù)節(jié)點(diǎn)對數(shù)據(jù)進(jìn)行存儲;查詢方法步驟如下:
[0007]I)客戶端提交查詢請求至業(yè)務(wù)節(jié)點(diǎn);
[0008]2)業(yè)務(wù)節(jié)點(diǎn)接收查詢請求,判斷查詢請求中包含的請求顯示的信息條數(shù)、頁碼;業(yè)務(wù)節(jié)點(diǎn)以當(dāng)前查詢頁面的首個數(shù)據(jù)的對象id,結(jié)合當(dāng)前查詢頁面顯示的信息條數(shù)進(jìn)行運(yùn)算,得出所請求的數(shù)據(jù)的起始數(shù)據(jù)的對象id,并結(jié)合請求顯示的信息條數(shù),運(yùn)算得出查詢結(jié)果,并從數(shù)據(jù)節(jié)點(diǎn)輸出符合顯示的信息條數(shù)、頁碼的查詢結(jié)果。
[0009]作為優(yōu)選,所述的對象id按所屬數(shù)據(jù)生成時間的先后呈遞增序列。
[0010]作為優(yōu)選,步驟I)具體為:
[0011]1.1)在客戶端中設(shè)置記錄標(biāo)簽參數(shù),該標(biāo)簽的起始值為空,之后的值由業(yè)務(wù)節(jié)點(diǎn)重新計(jì)算再傳回給客戶端;
[0012]1.2)客戶端在每次請求實(shí)時數(shù)據(jù)時,將頁碼標(biāo)簽、每頁顯示信息數(shù)標(biāo)簽、記錄標(biāo)簽發(fā)送至業(yè)務(wù)節(jié)點(diǎn);
[0013]步驟2)具體為:
[0014]2.1)業(yè)務(wù)節(jié)點(diǎn)接收客戶端發(fā)過來的參數(shù),判斷請求數(shù)據(jù)的起始值是否為O或記錄標(biāo)簽是否為空,如果滿足其中任一項(xiàng),直接按請求數(shù)據(jù)的起始值、每頁顯示信息數(shù)標(biāo)簽參數(shù)訪問數(shù)據(jù)節(jié)點(diǎn),進(jìn)行分頁查詢;
[0015]2.2)從數(shù)據(jù)節(jié)點(diǎn)得到查詢結(jié)果之后,業(yè)務(wù)節(jié)點(diǎn)開始計(jì)算記錄標(biāo)簽的值,并和查詢結(jié)果一起返回給客戶端;[0016]2.3)如果步驟2.1)的請求數(shù)據(jù)的起始值和記錄標(biāo)簽均不為空,業(yè)務(wù)節(jié)點(diǎn)判斷查詢請求的頁碼與當(dāng)前頁碼的大小關(guān)系;
[0017]2.4)計(jì)算請求的頁碼與當(dāng)前頁碼差乘以每頁顯示信息條數(shù)得到下一頁偏移值,如果查詢請求的頁碼大于當(dāng)前頁碼,則查詢的首個數(shù)據(jù)的對象id為當(dāng)前頁首個數(shù)據(jù)的對象id減去下一頁偏移值;如果查詢請求的頁碼小于當(dāng)前頁碼,則查詢的首個數(shù)據(jù)的對象id為當(dāng)前頁首個數(shù)據(jù)的對象id加上下一頁偏移值;
[0018]2.5)業(yè)務(wù)節(jié)點(diǎn)重新計(jì)算記錄標(biāo)簽的值,與數(shù)據(jù)節(jié)點(diǎn)查詢結(jié)果一起返回給客戶端。
[0019]作為優(yōu)選,步驟2.5)所述的計(jì)算記錄標(biāo)簽的值,方法如下:
[0020]a、記錄下查詢結(jié)果最后一條記錄的對象id ;
[0021]b、將請求數(shù)據(jù)的起始值與查詢結(jié)果個數(shù)進(jìn)行相加得到下一頁偏移值;
[0022]C、再將步驟a中的最后一條記錄的對象id與步驟b中的偏移值拼接為記錄標(biāo)簽的值。
[0023]作為優(yōu)選,步驟2.4)具體為:
[0024]業(yè)務(wù)節(jié)點(diǎn)從記錄標(biāo)簽中獲取下一頁偏移值和查詢結(jié)果最后一條記錄的對象id,如果請求數(shù)據(jù)的起始值大于等于下一頁偏移值,則只在數(shù)據(jù)節(jié)點(diǎn)中查詢對象id小于查詢結(jié)果最后一條記錄的對象id ;
[0025]如果請求數(shù)據(jù)的起始值小于下一頁偏移值,則只在數(shù)據(jù)節(jié)點(diǎn)中查詢對象id大于查詢結(jié)果最后一條記錄的對象id。
[0026]作為優(yōu)選,所述的對象id為全局唯一,對象id的生成規(guī)則為:時間戳+業(yè)務(wù)節(jié)點(diǎn)內(nèi)流水號+業(yè)務(wù)節(jié)點(diǎn)編號。
[0027]作為優(yōu)選,數(shù)據(jù)的存儲規(guī)則為:對象id與數(shù)據(jù)節(jié)點(diǎn)個數(shù)取模,得到的結(jié)果為該數(shù)據(jù)對應(yīng)存儲的數(shù)據(jù)節(jié)點(diǎn)編號。
[0028]作為優(yōu)選,所述的數(shù)據(jù)節(jié)點(diǎn)為在至少一個物理數(shù)據(jù)節(jié)點(diǎn)上創(chuàng)建的不少物理數(shù)據(jù)節(jié)點(diǎn)的虛擬數(shù)據(jù)節(jié)點(diǎn)。
[0029]作為優(yōu)選,從數(shù)據(jù)節(jié)點(diǎn)獲取數(shù)據(jù)的步驟如下:
[0030]1.獲取所請求數(shù)據(jù)的對象id:當(dāng)標(biāo)志位id為空時,表示請求的是第一頁的數(shù)據(jù),則從各個數(shù)據(jù)節(jié)點(diǎn)中,按請求的數(shù)據(jù)的對象id的倒序取出請求的數(shù)據(jù)總量的對象id,然后將各個數(shù)據(jù)節(jié)點(diǎn)取出的所有對象id再倒序重新排列,再從前面取出請求的數(shù)據(jù)總量的對象id,該數(shù)量的對象id就是業(yè)務(wù)節(jié)點(diǎn)所請求數(shù)據(jù)的對象id ;當(dāng)標(biāo)志位id不為空時,根據(jù)運(yùn)算得出所請求的數(shù)據(jù)的起始數(shù)據(jù)的對象id,從各個數(shù)據(jù)節(jié)點(diǎn)中,按請求的數(shù)據(jù)的對象id順序取出請求的數(shù)據(jù)總量的對象id,然后將各個數(shù)據(jù)節(jié)點(diǎn)取出的所有對象id再順序重新排列,再從前面取出請求的數(shù)據(jù)總量的對象id,該數(shù)量的對象id就是業(yè)務(wù)節(jié)點(diǎn)所請求數(shù)據(jù)的對象id ;
[0031]再根據(jù)獲取的對象id在數(shù)據(jù)節(jié)點(diǎn)中查詢數(shù)據(jù),然后將結(jié)果集返回給業(yè)務(wù)節(jié)點(diǎn)。
[0032]本發(fā)明的有益效果如下:
[0033]本發(fā)明在“實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法”技術(shù)方案中,實(shí)時數(shù)據(jù)的分布存儲可以保證實(shí)時數(shù)據(jù)的快速有效存儲,因?qū)ο骾d生成的算法與時間有關(guān),所以不必對每個數(shù)據(jù)節(jié)點(diǎn)都進(jìn)行遍歷搜索,大大提高訪問效率,這為數(shù)據(jù)查詢做了很好的鋪墊;在分頁查詢中,不僅可以保證快速有效查詢到結(jié)果,而且還能避免在訪問“下一頁”時出現(xiàn)數(shù)據(jù)重復(fù)的現(xiàn)象,這大大的改善了用戶的體驗(yàn)。
【專利附圖】
【附圖說明】
[0034]圖1是現(xiàn)有技術(shù)中客戶端在兩次訪問時有可能產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)圖;
[0035]圖2是系統(tǒng)的邏輯結(jié)構(gòu)示意圖;
[0036]圖3是數(shù)據(jù)分布存儲方法步驟(3)的示意圖;
[0037]圖4是將數(shù)據(jù)映射到N個物理數(shù)據(jù)節(jié)點(diǎn)的M個虛擬數(shù)據(jù)節(jié)點(diǎn)的示意圖;
[0038]圖5是增加數(shù)據(jù)節(jié)點(diǎn)后數(shù)據(jù)的映射示意圖;
[0039]圖6是主從數(shù)據(jù)節(jié)點(diǎn)間進(jìn)行數(shù)據(jù)備份和分散讀取的示意圖;
[0040]圖7是查詢數(shù)據(jù)步驟一、步驟二的示意圖;
[0041]圖8是查詢數(shù)據(jù)步驟三、步驟四的示意圖;
[0042]圖9是查詢數(shù)據(jù)步驟五的示意圖;
[0043]圖10是查詢數(shù)據(jù)步驟七的示意圖,圖中,時間軸由上到下分別表示訪問第二頁、訪問第三頁的數(shù)據(jù)分布曲線,及其對比;
[0044]圖11是查詢數(shù)據(jù)步驟九的示意圖,圖中,時間軸由上到下分別表示訪問第三頁、訪問第二頁的數(shù)據(jù)分布曲線,及其對比;
[0045]圖12是請求第一頁的數(shù)據(jù)的獲取示意圖;
[0046]圖13是請求非第一頁的數(shù)據(jù)的獲取示意圖;
[0047]圖14是獲取用戶請求數(shù)據(jù)的步驟B的示意圖。
【具體實(shí)施方式】
[0048]以下結(jié)合附圖及實(shí)施例對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說明。
[0049]本發(fā)明所述的方法涉及到的系統(tǒng)包括下述節(jié)點(diǎn):數(shù)據(jù)節(jié)點(diǎn)、業(yè)務(wù)節(jié)點(diǎn)、接入節(jié)點(diǎn)以及客戶端,系統(tǒng)的邏輯結(jié)構(gòu)如圖2所示。
[0050]各節(jié)點(diǎn)的功能和作用如下:
[0051]數(shù)據(jù)節(jié)點(diǎn):具備數(shù)據(jù)存儲功能,負(fù)責(zé)存儲實(shí)時數(shù)據(jù);
[0052]業(yè)務(wù)節(jié)點(diǎn):與數(shù)據(jù)節(jié)點(diǎn)和接入節(jié)點(diǎn)相交互,負(fù)責(zé)業(yè)務(wù)邏輯的處理;
[0053]接入節(jié)點(diǎn):負(fù)責(zé)協(xié)調(diào)負(fù)載均衡;
[0054]客戶端:用戶請求和展示數(shù)據(jù)。
[0055]查詢方法步驟如下:
[0056]I)客戶端提交查詢請求至業(yè)務(wù)節(jié)點(diǎn);
[0057]2)業(yè)務(wù)節(jié)點(diǎn)接收查詢請求,判斷查詢請求中包含的請求顯示的信息條數(shù)、頁碼;業(yè)務(wù)節(jié)點(diǎn)以當(dāng)前查詢頁面的首個數(shù)據(jù)的對象id,結(jié)合當(dāng)前查詢頁面顯示的信息條數(shù)進(jìn)行運(yùn)算,得出所請求的數(shù)據(jù)的起始數(shù)據(jù)的對象id,并結(jié)合請求顯示的信息條數(shù),運(yùn)算得出查詢結(jié)果,并從數(shù)據(jù)節(jié)點(diǎn)輸出符合顯示的信息條數(shù)、頁碼的查詢結(jié)果。
[0058]本發(fā)明所闡述的方法包括:
[0059]1、數(shù)據(jù)分布存儲方法:
[0060](I)采用多個數(shù)據(jù)節(jié)點(diǎn)進(jìn)行存儲。
[0061]因?qū)崟r數(shù)據(jù)的數(shù)據(jù)量比較大,如果只用一個數(shù)據(jù)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)存儲,則該數(shù)據(jù)節(jié)點(diǎn)的負(fù)載壓力會非常的大,為了負(fù)載均衡目的,由N個(N>=1)數(shù)據(jù)節(jié)點(diǎn)來存儲數(shù)據(jù)。
[0062](2)對象id自定義生成,全局唯一,而且id大小體現(xiàn)時間先后。
[0063]對象id (64bit)的生成規(guī)則:時間戳(42bit) +業(yè)務(wù)節(jié)點(diǎn)內(nèi)流水號(16bit) +業(yè)務(wù)節(jié)點(diǎn)編號(5bit)”,其中:時間戳表示當(dāng)前毫秒數(shù),所以對象id大小表示對象生成時間的近遠(yuǎn);業(yè)務(wù)節(jié)點(diǎn)內(nèi)的流水號在各業(yè)務(wù)節(jié)點(diǎn)內(nèi)獨(dú)立順序生成,用于解決同一時間(毫秒)內(nèi)產(chǎn)生多個對象時能夠區(qū)分;業(yè)務(wù)節(jié)點(diǎn)編號防止不同業(yè)務(wù)節(jié)點(diǎn)內(nèi)生成的id重復(fù),而且能夠區(qū)分對象來自哪個業(yè)務(wù)節(jié)點(diǎn)。
[0064](3)通過對象id與數(shù)據(jù)節(jié)點(diǎn)個數(shù)η取模,來決定對象存儲在哪個數(shù)據(jù)節(jié)點(diǎn)。
[0065]例如,對象id 為 2798784880146645024,有 5 個數(shù)據(jù)節(jié)點(diǎn),2798784880146645024%5得到4,則將此對象存儲在余為4的數(shù)據(jù)節(jié)點(diǎn)中;如下圖3所示。
[0066]數(shù)據(jù)節(jié)點(diǎn)在實(shí)際實(shí)現(xiàn)中通常指的是數(shù)據(jù)庫表。不同的數(shù)據(jù)庫表可以存儲在同一個物理節(jié)點(diǎn)中,也可以存儲在不同的物理節(jié)點(diǎn)中。
[0067]為了便于通過增加數(shù)據(jù)節(jié)點(diǎn)來實(shí)現(xiàn)系統(tǒng)擴(kuò)展,通常創(chuàng)建M (M>=N)個虛擬的數(shù)據(jù)節(jié)點(diǎn),將id與M取模后的數(shù)據(jù)映射到N個實(shí)際的數(shù)據(jù)節(jié)點(diǎn)中,如圖4所示。
[0068]在增加K個數(shù)據(jù)節(jié)點(diǎn)時,需將之前N個節(jié)點(diǎn)中的對象id重新與M取模后,再將數(shù)據(jù)映射到N+K個實(shí)際的數(shù)據(jù)節(jié)點(diǎn)中,如圖5所示。
[0069]當(dāng)數(shù)據(jù)節(jié)點(diǎn)的負(fù)載壓力比較大時,可以通過主從復(fù)制的方式來實(shí)現(xiàn)數(shù)據(jù)備份和分散讀取的目的,如圖6所示。
[0070]2、業(yè)務(wù)節(jié)點(diǎn)分頁查詢方法:
[0071](I)表I是在分頁查詢過程中涉及到的一些參數(shù)以及參數(shù)的類型和描述:
[0072]表1:查詢請求涉及的參數(shù)及描述
[0073]
【權(quán)利要求】
1.一種實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,采用至少一個以上數(shù)據(jù)節(jié)點(diǎn)對數(shù)據(jù)進(jìn)行存儲;查詢方法步驟如下: .1)客戶端提交查詢請求至業(yè)務(wù)節(jié)點(diǎn); .2)業(yè)務(wù)節(jié)點(diǎn)接收查詢請求,判斷查詢請求中包含的請求顯示的信息條數(shù)、頁碼;業(yè)務(wù)節(jié)點(diǎn)以當(dāng)前查詢頁面的首個數(shù)據(jù)的對象ID,結(jié)合當(dāng)前查詢頁面顯示的信息條數(shù)進(jìn)行運(yùn)算,得出所請求的數(shù)據(jù)的起始數(shù)據(jù)的對象ID,并結(jié)合請求顯示的信息條數(shù),運(yùn)算得出查詢結(jié)果,并從數(shù)據(jù)節(jié)點(diǎn)輸出符合顯示的信息條數(shù)、頁碼的查詢結(jié)果。
2.根據(jù)權(quán)利要求1所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,所述的對象ID按所屬數(shù)據(jù)生成時間的先后呈遞增序列。
3.根據(jù)權(quán)利要求2所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,步驟I)具體為: .1.1)在客戶端中設(shè)置記錄標(biāo)簽參數(shù),該標(biāo)簽的起始值為空,之后的值由業(yè)務(wù)節(jié)點(diǎn)重新計(jì)算再傳回給客戶端; .1.2)客戶端在每次請求實(shí)時數(shù)據(jù)時,將頁碼標(biāo)簽、每頁顯示信息數(shù)標(biāo)簽、記錄標(biāo)簽發(fā)送至業(yè)務(wù)節(jié)點(diǎn); 步驟2)具體為: .2.1)業(yè)務(wù)節(jié)點(diǎn)接收客戶端發(fā)過來的參數(shù),判斷請求數(shù)據(jù)的起始值是否為O或記錄標(biāo)簽是否為空,如果滿足其 中任一項(xiàng),直接按請求數(shù)據(jù)的起始值、每頁顯示信息數(shù)標(biāo)簽參數(shù)訪問數(shù)據(jù)節(jié)點(diǎn),進(jìn)行分頁查詢; .2.2)從數(shù)據(jù)節(jié)點(diǎn)得到查詢結(jié)果之后,業(yè)務(wù)節(jié)點(diǎn)開始計(jì)算記錄標(biāo)簽的值,并和查詢結(jié)果一起返回給客戶端; .2.3)如果步驟2.1)的請求數(shù)據(jù)的起始值和記錄標(biāo)簽均不為空,業(yè)務(wù)節(jié)點(diǎn)判斷查詢請求的頁碼與當(dāng)前頁碼的大小關(guān)系; .2.4)計(jì)算請求的頁碼與當(dāng)前頁碼差乘以每頁顯示信息條數(shù)得到下一頁偏移值,如果查詢請求的頁碼大于當(dāng)前頁碼,則查詢的首個數(shù)據(jù)的對象ID為當(dāng)前頁首個數(shù)據(jù)的對象ID減去下一頁偏移值;如果查詢請求的頁碼小于當(dāng)前頁碼,則查詢的首個數(shù)據(jù)的對象ID為當(dāng)前頁首個數(shù)據(jù)的對象ID加上下一頁偏移值; .2.5)業(yè)務(wù)節(jié)點(diǎn)重新計(jì)算記錄標(biāo)簽的值,與數(shù)據(jù)節(jié)點(diǎn)查詢結(jié)果一起返回給客戶端。
4.根據(jù)權(quán)利要求3所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,步驟.2.5)所述的計(jì)算記錄標(biāo)簽的值,方法如下: a、記錄下查詢結(jié)果最后一條記錄的對象ID; b、將請求數(shù)據(jù)的起始值與查詢結(jié)果個數(shù)進(jìn)行相加得到下一頁偏移值; C、再將步驟a中的最后一條記錄的對象ID與步驟b中的偏移值拼接為記錄標(biāo)簽的值。
5.根據(jù)權(quán)利要求3所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,步驟.2.4)具體為: 業(yè)務(wù)節(jié)點(diǎn)從記錄標(biāo)簽中獲取下一頁偏移值和查詢結(jié)果最后一條記錄的對象ID,如果請求數(shù)據(jù)的起始值大于等于下一頁偏移值,則只在數(shù)據(jù)節(jié)點(diǎn)中查詢對象ID小于查詢結(jié)果最后一條記錄的對象ID ; 如果請求數(shù)據(jù)的起始值小于下一頁偏移值,則只在數(shù)據(jù)節(jié)點(diǎn)中查詢對象ID大于查詢結(jié)果最后一條記錄的對象ID。
6.根據(jù)權(quán)利要求1所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,所述的對象ID為全局唯一,對象ID的生成規(guī)則為:時間戳+業(yè)務(wù)節(jié)點(diǎn)內(nèi)流水號+業(yè)務(wù)節(jié)點(diǎn)編號。
7.根據(jù)權(quán)利要求6所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,數(shù)據(jù)的存儲規(guī)則為:對象ID與數(shù)據(jù)節(jié)點(diǎn)個數(shù)取模,得到的結(jié)果為該數(shù)據(jù)對應(yīng)存儲的數(shù)據(jù)節(jié)點(diǎn)編號。
8.根據(jù)權(quán)利要求7所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,所述的數(shù)據(jù)節(jié)點(diǎn)為在至少一個物理數(shù)據(jù)節(jié)點(diǎn)上創(chuàng)建的不少物理數(shù)據(jù)節(jié)點(diǎn)的虛擬數(shù)據(jù)節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求1所述的實(shí)時數(shù)據(jù)的分布存儲和分頁查詢方法,其特征在于,從數(shù)據(jù)節(jié)點(diǎn)獲取數(shù)據(jù)的步驟如下: i.獲取所請求數(shù)據(jù)的對象ID:當(dāng)標(biāo)志位ID為空時,表示請求的是第一頁的數(shù)據(jù),則從各個數(shù)據(jù)節(jié)點(diǎn)中,按請求的數(shù)據(jù)的對象ID的倒序取出請求的數(shù)據(jù)總量的對象ID,然后將各個數(shù)據(jù)節(jié)點(diǎn)取出的所有對象ID再倒序重新排列,再從前面取出請求的數(shù)據(jù)總量的對象ID,該數(shù)量的對象ID就是業(yè)務(wù)節(jié)點(diǎn)所請求數(shù)據(jù)的對象ID ;當(dāng)標(biāo)志位ID不為空時,根據(jù)運(yùn)算得出所請求的數(shù)據(jù)的起始數(shù)據(jù)的對象ID,從各個數(shù)據(jù)節(jié)點(diǎn)中,按請求的數(shù)據(jù)的對象ID順序取出請求的數(shù)據(jù)總量的對象ID,然后將各個數(shù)據(jù)節(jié)點(diǎn)取出的所有對象ID再順序重新排列,再從前面取出請求的數(shù)據(jù)總量的對象ID,該數(shù)量的對象ID就是業(yè)務(wù)節(jié)點(diǎn)所請求數(shù)據(jù)的對象ID ; ii.再根據(jù)獲取的對象ID在數(shù)據(jù)節(jié)點(diǎn)中查詢數(shù)據(jù),然后將結(jié)果集返回給業(yè)務(wù)節(jié)點(diǎn)。
【文檔編號】G06F17/30GK103778135SQ201210400710
【公開日】2014年5月7日 申請日期:2012年10月18日 優(yōu)先權(quán)日:2012年10月18日
【發(fā)明者】李志櫪, 程行榮, 張文章, 余小峰 申請人:廈門雅迅網(wǎng)絡(luò)股份有限公司