專利名稱:用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)通信業(yè)務(wù)領(lǐng)域,具體地說,本發(fā)明涉及用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng)。
背景技術(shù):
目前在移動(dòng)通信辦理增值業(yè)務(wù)中,參加的用戶量很大,在訪問某個(gè)用戶數(shù)據(jù)信息時(shí),還需要獲取該用戶在整個(gè)活動(dòng)中所有參加用戶中的排名。常用的大用戶量數(shù)據(jù)訪問主要依靠數(shù)據(jù)庫,即依靠數(shù)據(jù)庫查詢用戶數(shù)據(jù)。大致為在需要排序數(shù)據(jù)時(shí),依靠數(shù)據(jù)庫倒序或降序來遍歷用戶當(dāng)前所在序號(hào),進(jìn)行用戶數(shù)據(jù)的查詢。上述這種方式的缺點(diǎn)是采用的方法比較慢,效率也比較低。無法滿足人們對查詢速度和結(jié)果的訪問要求。因此,如何解決上述業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序等內(nèi)容便成為亟待解決的技術(shù)問題。
發(fā)明內(nèi)容
本發(fā)明涉及一種用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),以解決在增值業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序的效率問題。為了解決上述問題,本發(fā)明提供了一種用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),與新用戶端和訪問用戶端相連接,該系統(tǒng)包括數(shù)據(jù)存儲(chǔ)模塊、數(shù)據(jù)訪問模塊和實(shí)時(shí)數(shù)據(jù)排序模塊;其中,所述數(shù)據(jù)存儲(chǔ)模塊,與新用戶端、數(shù)據(jù)訪問模塊相耦接,用于根據(jù)新用戶端發(fā)送的用戶數(shù)量值申請的空間并創(chuàng)建帶有空間地址的內(nèi)存池,同時(shí)還進(jìn)行實(shí)時(shí)排序,然后指示所述數(shù)據(jù)訪問模塊;所述數(shù)據(jù)訪問模塊,與所述數(shù)據(jù)存儲(chǔ)模塊和實(shí)時(shí)數(shù)據(jù)排序模塊相耦接,用于接收到所述數(shù)據(jù)存儲(chǔ)模塊的指示后,根據(jù)訪問用戶端的訪問請求信息中含有的用戶的號(hào)碼信息在所述數(shù)據(jù)存儲(chǔ)模塊中查找并定位該用戶的數(shù)據(jù)內(nèi)存地址,并將該數(shù)據(jù)內(nèi)存地址發(fā)送給所述實(shí)時(shí)數(shù)據(jù)排序模塊;所述實(shí)時(shí)數(shù)據(jù)排序模塊,與所述數(shù)據(jù)訪問模塊相耦接,用于根據(jù)數(shù)據(jù)訪問模塊中獲得的該用戶的數(shù)據(jù)內(nèi)存地址定位該用戶在所有用戶中的序號(hào)。進(jìn)一步地,其中,所述用戶的號(hào)碼信息為至少是11位的號(hào)碼。進(jìn)一步地,其中,所述數(shù)據(jù)訪問模塊還用于拆分用戶的號(hào)碼信息為索引及值部分。與現(xiàn)有技術(shù)相比,本發(fā)明所述的用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),實(shí)現(xiàn)了如下效果1、實(shí)現(xiàn)了大用戶量數(shù)據(jù)快速訪問,提高業(yè)務(wù)處理速度。2、在使用內(nèi)存時(shí),可以直接在內(nèi)存池中獲取,不用再去操作系統(tǒng)申請。3、由于用戶地址列表中只存儲(chǔ)內(nèi)存地址,故其占用空間小,插入效率高。
4、一次批量申請多個(gè)內(nèi)存空間,比在使用時(shí)臨時(shí)申請單個(gè),可以減少系統(tǒng)的內(nèi)存碎片,提高系統(tǒng)內(nèi)存使用效率。5、快速計(jì)算用戶在所有用戶中的排名,速度快,無須按序一一遍歷。
圖1為本發(fā)明實(shí)施例一所述用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施例方式如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同名詞來稱呼同一個(gè)組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮艿恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達(dá)到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性連接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性連接于所述第二裝置,或通過其他裝置或連接手段間接地電性連接至所述第二裝置。說明書后續(xù)描述為實(shí)施本發(fā)明的較佳實(shí)施方式,然所述描述乃以說明本發(fā)明的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。以下結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明,但不作為對本發(fā)明的限定。如圖1所示,為本發(fā)明實(shí)施例所述的用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),與新用戶端和訪問用戶端相連接,該系統(tǒng)包括數(shù)據(jù)存儲(chǔ)模塊101、數(shù)據(jù)訪問模塊102和實(shí)時(shí)數(shù)據(jù)排序模塊103;其中,所述數(shù)據(jù)存儲(chǔ)模塊101,與新用戶端、數(shù)據(jù)訪問模塊102相耦接,用于根據(jù)新用戶端發(fā)送的用戶數(shù)量值申請的空間并創(chuàng)建帶有空間地址的內(nèi)存池,同時(shí)還進(jìn)行實(shí)時(shí)排序,然后指示所述數(shù)據(jù)訪問模塊102。這里在創(chuàng)建帶有空間地址的內(nèi)存池時(shí)包括首先進(jìn)行內(nèi)存池初始化,然后申請內(nèi)存的大小根據(jù)預(yù)估的業(yè)務(wù)活動(dòng)參與用戶數(shù)量來確定,當(dāng)內(nèi)存池空間小于預(yù)先設(shè)定下限值時(shí),再申請指定數(shù)目的內(nèi)存添加到內(nèi)存池,此預(yù)先設(shè)定的下限值是人為的設(shè)定,對其值不作具體限定。例如,可能參加用戶的數(shù)量是1000000用戶,則可以預(yù)先申請100000用戶存儲(chǔ)空間,隨著用戶參與業(yè)務(wù),當(dāng)內(nèi)存池剩余空間個(gè)數(shù)小于1000時(shí),這時(shí)候可以再申請10000個(gè)用戶存儲(chǔ)空間加入到內(nèi)存池。從內(nèi)存池中獲取出來的已經(jīng)使用的內(nèi)存,內(nèi)存池不再管理該內(nèi)存,由用戶索引部分負(fù)責(zé)釋放;在內(nèi)存池釋放時(shí),只釋放沒有使用的內(nèi)存空間。當(dāng)所述數(shù)據(jù)存儲(chǔ)模塊101接收到新用戶端發(fā)送的訪問請求數(shù)據(jù)時(shí),所述數(shù)據(jù)存儲(chǔ)模塊101用于從所述內(nèi)存池中獲取與所要存儲(chǔ)的數(shù)據(jù)大小相同的內(nèi)存空間,并將所述訪問請求數(shù)據(jù)存儲(chǔ)進(jìn)去,然后將該訪問請求數(shù)據(jù)的內(nèi)存地址按照該用戶的用戶號(hào)碼寫入到用戶索引中,形成該用戶數(shù)據(jù)內(nèi)存地址;具體地,所述用戶索引以用戶號(hào)碼后4位作為索引,所有索引值相同的用戶數(shù)據(jù)內(nèi)存地址存放在一起。如索引0001后面列表內(nèi)存地址存儲(chǔ)用戶為13812340001,13912340001,13956780001。再根據(jù)用戶的數(shù)據(jù)項(xiàng)中的一類數(shù)據(jù)項(xiàng)設(shè)置實(shí)時(shí)排序部分,即根據(jù)用戶號(hào)碼的前7位設(shè)置實(shí)時(shí)排序部分,該實(shí)時(shí)排序部分包括該類數(shù)據(jù)項(xiàng)的區(qū)間列表和對應(yīng)每個(gè)區(qū)間列表的用戶數(shù)據(jù)內(nèi)存地址列表。其中,所述該類數(shù)據(jù)項(xiàng)的區(qū)間列表包括該類數(shù)據(jù)項(xiàng)的最小值和最大值,以及該區(qū)間列表的基本區(qū)間個(gè)數(shù)閾值,同時(shí),所述實(shí)時(shí)排序部分還設(shè)置有最大存儲(chǔ)用戶個(gè)數(shù)閾值;將形成的該用戶數(shù)據(jù)內(nèi)存地址存儲(chǔ)到所述實(shí)時(shí)排序部分中。具體地,新用戶排序數(shù)據(jù)項(xiàng)值根據(jù)區(qū)間列表中的最小值和最大值定位在哪個(gè)區(qū)間列表中,該區(qū)間列表的用戶數(shù)據(jù)內(nèi)存地址也是根據(jù)排序項(xiàng)數(shù)據(jù)值順序或者倒序排列,新用戶排序項(xiàng)值可以使用二分查找方法快速定位其插入位置,完成每個(gè)區(qū)間列表的用戶數(shù)據(jù)內(nèi)存地址列表以用戶號(hào)碼前7位按照從小到大順序排列。例如,內(nèi)存數(shù)據(jù)項(xiàng)實(shí)時(shí)排序部分區(qū)間三為[40,400],即該區(qū)間用戶數(shù)據(jù)中排序數(shù)據(jù)項(xiàng)的最小值為40,最大值為400 ;該區(qū)間列表的基本區(qū)間個(gè)數(shù)閾值4,即該區(qū)間用戶個(gè)數(shù)為4個(gè);用戶列表排序項(xiàng)值順序?yàn)?0,100,134,400 ;當(dāng)新用戶數(shù)據(jù)(該用戶排序數(shù)據(jù)項(xiàng)值為200)插入時(shí),先根據(jù)區(qū)間列表定位該用戶應(yīng)該插入到區(qū)間三,因?yàn)?00在區(qū)間三的最小值40,最大值400之間,再根據(jù)區(qū)間三中用戶排序順序,用二分查找方法確定其插入位置為列表中的第三項(xiàng),最后順序?yàn)?0,100,134,200,400。所述數(shù)據(jù)訪問模塊102,與所述數(shù)據(jù)存儲(chǔ)模塊101和實(shí)時(shí)數(shù)據(jù)排序模塊103相耦接,用于接收到所述數(shù)據(jù)存儲(chǔ)模塊101的指示后,根據(jù)訪問用戶端的訪問請求信息中含有的用戶的號(hào)碼信息在所述數(shù)據(jù)存儲(chǔ)模塊101中查找并定位該用戶的數(shù)據(jù)內(nèi)存地址,并將該數(shù)據(jù)內(nèi)存地址發(fā)送給所述實(shí)時(shí)數(shù)據(jù)排序模塊103。另外,所述數(shù)據(jù)訪問模塊102還用于拆分用戶的號(hào)碼信息為索引及值部分。如13812340001索引為0001,值為1381234。在用戶數(shù)據(jù)索引中根據(jù)索引0001,定位用戶列表,根據(jù)1381234在用戶列表中使用二分查找,唯一定位該用戶的數(shù)據(jù)內(nèi)存地址,并將該數(shù)據(jù)內(nèi)存地址發(fā)送給所述實(shí)時(shí)數(shù)據(jù)排序模塊103。所述實(shí)時(shí)數(shù)據(jù)排序模塊103,與所述數(shù)據(jù)訪問模塊102相耦接,用于根據(jù)數(shù)據(jù)訪問模塊102中獲得的該用戶的數(shù)據(jù)內(nèi)存地址定位該用戶在所有用戶中的序號(hào)。具體地,所述實(shí)時(shí)數(shù)據(jù)排序模塊103進(jìn)行如下操作首先根據(jù)排序項(xiàng)值在區(qū)間列表定位其區(qū)間項(xiàng),再在該區(qū)間用戶列表中根據(jù)排序項(xiàng)值和用戶地址值定位該用戶在該區(qū)間序號(hào),最后用戶序號(hào)為該區(qū)間前所有用戶個(gè)數(shù)+當(dāng)前區(qū)間序號(hào)。如13812340002用戶,其排序項(xiàng)值為100,100在區(qū)間3中,100在區(qū)間3中的序號(hào)為2,區(qū)間3前面所有用戶個(gè)數(shù)為8(區(qū)間1:4個(gè)+區(qū)間2:4個(gè)),因此13812340002用戶在所有用戶中序號(hào)為8+2=10。當(dāng)用戶排序數(shù)據(jù)項(xiàng)值,即用戶號(hào)碼發(fā)生變化時(shí),其在所有用戶中的排序序號(hào)可能會(huì)發(fā)生改變。因此需要重建其在實(shí)時(shí)排序部分中的位置。一般是根據(jù)其歷史值(排序數(shù)據(jù)項(xiàng)值發(fā)生變化之前的值),將該用戶從實(shí)時(shí)排序部分中刪除,然后按照新值做插入。實(shí)時(shí)排序部分區(qū)間的個(gè)數(shù)可以根據(jù)實(shí)際每個(gè)區(qū)間存儲(chǔ)用戶個(gè)數(shù)做調(diào)整。區(qū)間中存儲(chǔ)用戶個(gè)數(shù)可以設(shè)定幾個(gè)閥值最大存儲(chǔ)個(gè)數(shù),基本區(qū)間個(gè)數(shù)。當(dāng)某個(gè)區(qū)間用戶個(gè)數(shù)達(dá)到最大存儲(chǔ)個(gè)數(shù)后,將區(qū)間中后面(最大存儲(chǔ)個(gè)數(shù)-基本區(qū)間個(gè)數(shù))用戶轉(zhuǎn)入下個(gè)區(qū)間,同時(shí)更改該區(qū)間和后一個(gè)區(qū)間的最小值、最大值、區(qū)間用戶個(gè)數(shù),實(shí)現(xiàn)實(shí)時(shí)排序數(shù)據(jù)順序增長。其中,本實(shí)施例中,用戶數(shù)據(jù)存儲(chǔ)空間從內(nèi)存池獲取,在整個(gè)業(yè)務(wù)活動(dòng)過程中,該內(nèi)存空間位置不變,用戶數(shù)據(jù)變化時(shí),只更改該空間中某個(gè)數(shù)據(jù)項(xiàng)的值。用戶數(shù)據(jù)訪問索引可以根據(jù)用戶號(hào)碼快速定位用戶數(shù)據(jù)存儲(chǔ)位置。當(dāng)用戶數(shù)據(jù)排序項(xiàng)值發(fā)生變化時(shí),更新實(shí)時(shí)排序部分?jǐn)?shù)據(jù)。特別地,用戶數(shù)據(jù)索引及實(shí)時(shí)排序部分都只存儲(chǔ)用戶數(shù)據(jù)內(nèi)存地址。在業(yè)務(wù)進(jìn)行當(dāng)中,用戶的內(nèi)存地址不發(fā)生變化。與現(xiàn)有技術(shù)相比,本發(fā)明所述的用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),實(shí)現(xiàn)了如下效果1、實(shí)現(xiàn)了大用戶量數(shù)據(jù)快速訪問,提高業(yè)務(wù)處理速度。2、在使用內(nèi)存時(shí),可以直接在內(nèi)存池中獲取,不用再去操作系統(tǒng)申請。3、由于用戶地址列表中只存儲(chǔ)內(nèi)存地址,故其占用空間小,插入效率高。4、一次批量申請多個(gè)內(nèi)存空間,比在使用時(shí)臨時(shí)申請單個(gè),可以減少系統(tǒng)的內(nèi)存碎片,提高系統(tǒng)內(nèi)存使用效率。5、快速計(jì)算用戶在所有用戶中的排名,速度快,無須按序一一遍歷。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),與新用戶端和訪問用戶端相連接,該系統(tǒng)包括數(shù)據(jù)存儲(chǔ)模塊、數(shù)據(jù)訪問模塊和實(shí)時(shí)數(shù)據(jù)排序模塊;其中, 所述數(shù)據(jù)存儲(chǔ)模塊,與新用戶端、數(shù)據(jù)訪問模塊相耦接,用于根據(jù)新用戶端發(fā)送的用戶數(shù)量值申請的空間并創(chuàng)建帶有空間地址的內(nèi)存池,同時(shí)還進(jìn)行實(shí)時(shí)排序,然后指示所述數(shù)據(jù)訪問模塊; 所述數(shù)據(jù)訪問模塊,與所述數(shù)據(jù)存儲(chǔ)模塊和實(shí)時(shí)數(shù)據(jù)排序模塊相耦接,用于接收到所述數(shù)據(jù)存儲(chǔ)模塊的指示后,根據(jù)訪問用戶端的訪問請求信息中含有的用戶的號(hào)碼信息在所述數(shù)據(jù)存儲(chǔ)模塊中查找并定位該用戶的數(shù)據(jù)內(nèi)存地址,并將該數(shù)據(jù)內(nèi)存地址發(fā)送給所述實(shí)時(shí)數(shù)據(jù)排序模塊; 所述實(shí)時(shí)數(shù)據(jù)排序模塊,與所述數(shù)據(jù)訪問模塊相耦接,用于根據(jù)數(shù)據(jù)訪問模塊中獲得的該用戶的數(shù)據(jù)內(nèi)存地址定位該用戶在所有用戶中的序號(hào)。
2.如權(quán)利要求1所述的用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),其特征在于,所述用戶的號(hào)碼信息為至少是11位的號(hào)碼。
3.如權(quán)利要求1所述的用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),其特征在于,所述數(shù)據(jù)訪問模塊還用于拆分用戶的號(hào)碼信息為索引及值部分。
全文摘要
本發(fā)明涉及一種用于業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序系統(tǒng),與新用戶端和訪問用戶端相連接,該系統(tǒng)包括數(shù)據(jù)存儲(chǔ)模塊、數(shù)據(jù)訪問模塊和實(shí)時(shí)數(shù)據(jù)排序模塊。本發(fā)明解決了在增值業(yè)務(wù)中大用戶量數(shù)據(jù)訪問及實(shí)時(shí)排序的效率問題。
文檔編號(hào)G06F17/30GK102999581SQ201210457628
公開日2013年3月27日 申請日期2012年11月14日 優(yōu)先權(quán)日2012年11月14日
發(fā)明者許鵬兵, 曹東, 李建濤 申請人:北京北緯點(diǎn)易信息技術(shù)有限公司