一種存儲動態(tài)消息的索引的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種存儲動態(tài)消息的索引的方法和裝置。該方法中設置存儲動態(tài)消息的索引的索引數(shù)據(jù)庫包含M組時間軸索引表,每組包含N個時間軸索引表,將用戶ID分為M組,與所述M組時間軸索引表一一對應,在保存用戶發(fā)布的動態(tài)消息的索引時,使同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開,這樣至少部分用戶的時間軸索引表的跳表時間點是錯開的,在不同的時間點跳表,因此緩解了在特定時間點由于跳表操作量大,導致數(shù)據(jù)庫訪問量成倍增大,進而可能會令數(shù)據(jù)庫崩潰的問題。對于分發(fā)索引表進行同樣的處理,也能帶來相同的有益效果。
【專利說明】一種存儲動態(tài)消息的索引的方法和裝置
【技術領域】
[0001]本發(fā)明涉及計算機網(wǎng)絡【技術領域】,特別涉及一種存儲動態(tài)消息的索引的方法和裝置。
【背景技術】
[0002]社會性網(wǎng)絡服務(SNS, Social Networking Services)專指旨在幫助人們建立社會性網(wǎng)絡的互聯(lián)網(wǎng)應用服務。如當下流行的多種社交網(wǎng)站,以及其他門戶網(wǎng)站提供的人與人之間的關系網(wǎng)絡服務,如微博、即時通信系統(tǒng)提供的聯(lián)系人關系服務等。
[0003]為了提供這種人際關系服務,需要在后臺保存SNS用戶所發(fā)布的動態(tài)消息(一般稱為feed),以供用戶自己或其聯(lián)系人相互查詢動態(tài)消息。
[0004]由于SNS得到了廣大用戶的喜愛,其后臺數(shù)據(jù)也呈數(shù)量級暴增,容易出現(xiàn)數(shù)據(jù)堵塞和訪問延時等現(xiàn)象,這對SNS后臺數(shù)據(jù)的存儲提出了挑戰(zhàn)。
[0005]圖1是現(xiàn)有的一種SNS后臺數(shù)據(jù)的存儲示意圖。參見圖1,本站的動態(tài)消息的實體內(nèi)容,存入本站內(nèi)容數(shù)據(jù)庫,并將實體內(nèi)容緩存到實體內(nèi)容緩存中。存入實體內(nèi)容數(shù)據(jù)主要包括:動態(tài)消息標識,動態(tài)消息實體內(nèi)容以及發(fā)布時間、發(fā)布人、評論數(shù)、轉發(fā)數(shù)等信息。此夕卜,還需要將本站的動態(tài)消息的索引保存到索引數(shù)據(jù)庫中,同時將索引存入索引緩存中一份。
[0006]從外站抓過來的動態(tài)消息,會按時間存入外站內(nèi)容數(shù)據(jù)庫中的不同的表中。定期(如每個月初),會將上個月本站實體內(nèi)容數(shù)據(jù)庫中的內(nèi)容轉存到歸檔數(shù)據(jù)庫中。
[0007]參見圖1,某SNS網(wǎng)站的索引數(shù)據(jù)庫由4組子庫組成,分別為:索引子庫一、索引子庫二、索引子庫三和索引子庫四。每個索引子庫都由兩臺設備組成,一主一從,做主從備份。
[0008]這里,將索引按10進制的用戶標識(UserID)的后2位進行分子庫存儲,這里用戶標識后2位的取值范圍O?24、25?49、50?74和75?99,分別對應索引子庫一至四。每個索引子庫中均存儲動態(tài)消息索引表(Newsfeed)、時間軸索引表(Timeline)和分發(fā)索引表中(DispatchBuddy)三類索引表。
[0009]其中,Timeline和DispatchBuddy,按日期再分成后綴為_0和_1兩套表,如:DispatchBuddy_0006_0, DispatchBuddy_0006_l, TimeIine_0006_0, Timeline_0006_l,用來存放一個月內(nèi)的日期在I?8、9?16、17?24和25?31四個時間段內(nèi)的信息。即將一個月中的I?8日和17?24日所產(chǎn)生的消息的索引保存到后綴為_0的Timeline和DispatchBuddy表中,將一個月中的9?16日25?31日所產(chǎn)生的消息的索引保存到后綴為 _1 的 Timeline 和 DispatchBuddy 表中。
[0010]舉例:用戶A的聯(lián)系人用戶B在2012年5月20日16:16發(fā)布了一條動態(tài),則保存該動態(tài)消息的實體內(nèi)容和索引的具體流程為:
[0011]a)向本站內(nèi)容數(shù)據(jù)庫中插入一條feed內(nèi)容記錄,同時存入實體內(nèi)容緩存中一份。
[0012]b)根據(jù)用戶B的userid的10進制數(shù)的后兩位路由到相關的索引數(shù)據(jù)庫。如果用戶B的userid=90098743,則根據(jù)后兩位43,會路由到索引子庫二,再根據(jù)43,將索引內(nèi)容插入到NewsFeed_0043表中,并同時存入索引緩存中。
[0013]c)同時,在索引子庫二,根據(jù)當前日期,路由到相關timeline表。如今天是20號,則會在Timeline_0043_0表插入一條索引記錄,同時存一份到索引緩存中。
[0014]d)同樣方法操作dispatchbuddy表,由于此表是分發(fā)給聯(lián)系人的索引表,要根據(jù)聯(lián)系人A的userid進行路由,如果A的userid=100092357,則會路由到索引子庫三,根據(jù)user id和當前日期20號,在Di spatchBuddy_0057_0表插入一條索弓I記錄,同時在索弓I緩存中保存一份。對用戶B的其他聯(lián)系人依此方法執(zhí)行相應的操作。這樣當用戶B的聯(lián)系人,如用戶A登錄后,可直接在dispatchbuddy表中查找到聯(lián)系人的發(fā)布。
[0015]但是,該方案存在如下缺陷:對于Timeline表和DispatchBuddy表,在一個月中的
1、9、17和25這四個日期,會有很大的幾率取不夠前臺要求的數(shù)量,這樣,就要查詢前一個時間段的表中的記錄,例如在9日取后綴為_1的Timeline和DispatchBuddy表中的數(shù)據(jù),如果數(shù)量不夠需要取8日的后綴為_0的Timeline和DispatchBuddy表中的數(shù)據(jù),這相當于,前臺取一次記錄,會進行兩次查表操作,即需要兩次數(shù)據(jù)庫訪問操作。因此在1、9、17和25這四個日期,由于跳表操作量非常大,會導致數(shù)據(jù)庫訪問量成倍增大,數(shù)據(jù)庫壓力劇增,極端情況下,可能會令數(shù)據(jù)庫崩潰。
【發(fā)明內(nèi)容】
[0016]有鑒于此,本發(fā)明提供了一種存儲動態(tài)消息的索引的方法和裝置,以解決現(xiàn)有技術中的索引數(shù)據(jù)庫由于同一日期內(nèi)跳表操作量大,導致數(shù)據(jù)庫訪問量成倍增大的問題。
[0017]為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的:
[0018]本發(fā)明公開了一種存儲動態(tài)消息的索引的方法,該方法適用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫,其特征在于,該方法包括:
[0019]設置所述索引數(shù)據(jù)庫包含M組時間軸索引表,每組包含N個時間軸索引表,將用戶
ID分為M組,與所述M組時間軸索引表--對應,每當一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一組時間軸索引表,根據(jù)第一預設策略確定該組中的一個時間軸索引表,將該動態(tài)消息的索引保存到所確定的該時間軸索引表中;
[0020]和/ 或,
[0021]設置所述索引數(shù)據(jù)庫包含M組分發(fā)索引表,每組包含N個分發(fā)索引表,將用戶ID分為M組,與所述M組分發(fā)索引表對應,每當一個用戶發(fā)布一條動態(tài)消息時,對于該用戶的每個聯(lián)系人,根據(jù)該聯(lián)系人的ID查找到對應的一組分發(fā)索引表,根據(jù)第二預設策略確定該組中的一個分發(fā)索引表,將該動態(tài)消息的索引保存到所確定的該分發(fā)索引表中;
[0022]其中,
[0023]所述第一預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開;
[0024]其中,所述第二預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個分發(fā)索引表中,且至少部分用戶的輪循時間點相互錯開;
[0025]所述M和N均為大于I的自然數(shù)。
[0026]可選地,所述將用戶ID分為M組包括:
[0027]根據(jù)用戶ID的指定的X位的取值劃分成M組,X為自然數(shù);
[0028]其中,M為所述X位所能取的不同值的個數(shù)。
[0029]可選地,該方法進一步包括:
[0030]每當一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID從所述索引數(shù)據(jù)庫查找到對應的一個動態(tài)消息索引表,將該動態(tài)消息的索引保存到查找到的該動態(tài)消息索引表中。
[0031]可選地,所述根據(jù)第一預設策略確定該組中的一個時間軸索引表具體包括:每組中的N個時間軸索引表都被依次編號為O?N-1 ;計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù);計算該用戶的ID的指定X位值與所述時間差的和值;用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個時間軸索引表;
[0032]所述根據(jù)第二預設策略確定該組中的一個分發(fā)索引表具體包括:每組中的N個分發(fā)索引表都被依次編號為O?N-1 ;計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù);計算該聯(lián)系人的ID的指定X位值與所述時間差的和值;用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表。
[0033]可選地,所述根據(jù)第一預設策略確定該組中的一個時間軸索引表具體包括:每組中的N個時間軸索引表都被依次編號為O?N-1 ;計算當前日期與該用戶的ID的指定X位值的和值,該和值為自然數(shù);用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個時間軸索引表;
[0034]所述根據(jù)第二預設策略確定該組中的一個分發(fā)索引表具體包括:每組中的N個分發(fā)索引表都被依次編號為O?N-1 ;計算當前日期與該聯(lián)系人的ID的指定X位值的和值,該和值為自然數(shù);用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表。
[0035]本發(fā)明還公開了一種存儲動態(tài)消息的索引的裝置,該裝置包括:索引保存單元和用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫;
[0036]所述索引數(shù)據(jù)庫,用于保存M組時間軸索引表,每組包含N個時間軸索引表;以及,
所述索引保存單元,用于將用戶ID分為M組,與所述M組時間軸索引表--對應;所述索引保存單元還用于在一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一組時間軸索引表,根據(jù)第一預設策略確定該組中的一個時間軸索引表,將該動態(tài)消息的索引保存到所確定的該時間軸索引表中;
[0037]和/ 或,
[0038]所述索引數(shù)據(jù)庫,用于保存M組分發(fā)索引表,每組包含N個分發(fā)索引表;以及,所述索引保存單元,用于將用戶ID分為M組,與所述M組分發(fā)索引表一一對應;所述索引保存單元還用于在一個用戶發(fā)布一條動態(tài)消息時,對于該用戶的每個聯(lián)系人,根據(jù)該聯(lián)系人的ID查找到對應的一組分發(fā)索引表,根據(jù)第二預設策略確定該組中的一個分發(fā)索引表,將該動態(tài)消息的索引保存到所確定的該分發(fā)索引表中;
[0039]其中,
[0040]所述第一預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開;
[0041]所述第二預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個分發(fā)索引表中,且至少部分用戶的輪循時間點相互錯開;
[0042]所述M和N均為大于I的自然數(shù)。
[0043]可選地,所述索引保存單元,用于根據(jù)用戶ID的指定的X位的取值劃分成M組,X為自然數(shù);其中,M為所述X位所能取的不同值的個數(shù)。
[0044]可選地,所述索引數(shù)據(jù)庫,進一步用于保存動態(tài)消息索引表;
[0045]所述索引保存單元,進一步用于在一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一個動態(tài)消息索引表,將該動態(tài)消息的索引保存到查找到的該動態(tài)消息索引表中。
[0046]可選地,所述索引保存單元,用于計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù),然后計算該用戶的ID的指定X位值與所述時間差的和值,用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個時間軸索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1 ;
[0047]和/ 或,
[0048]所述索引保存單元,用于計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù),計算該聯(lián)系人的ID的指定X位值與所述時間差的和值,用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1。
[0049]可選地,所述索引保存單元,用于計算當前日期與該用戶的ID的指定X位值的和值,該和值為自然數(shù),用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個時間軸索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1 ;
[0050]和/ 或,
[0051]所述索引保存單元,用于計算當前日期與該聯(lián)系人的ID的指定X位值的和值,該和值為自然數(shù),用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1。
[0052]本發(fā)明實施例的有益效果是:由于設置了 M組時間軸索引表,每組包含N個時間軸索引表,將用戶ID分為M組,與所述M組時間軸索引表--對應,在保存用戶發(fā)布的動態(tài)消息的索引時,使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開,這樣就不會像現(xiàn)有技術那樣所有用戶的時間軸索引表都會在同一時間點跳表,而是至少部分用戶的時間軸索引表的跳表時間點是錯開的,在不同的時間點跳表,因此緩解了在特定時間點由于跳表操作量大,導致數(shù)據(jù)庫訪問量成倍增大,進而可能會令數(shù)據(jù)庫崩潰的問題。對于分發(fā)索引表進行同樣的處理,也能帶來相同的有益效果。
【專利附圖】
【附圖說明】
[0053]圖1是現(xiàn)有的一種SNS后臺數(shù)據(jù)的存儲示意圖;
[0054]圖2是本發(fā)明實施例中的一種存儲動態(tài)消息的索引的方法和流程圖;
[0055]圖3是本發(fā)明又一實施例中的一種存儲動態(tài)消息的索引的方法和流程圖;
[0056]圖4是本發(fā)明實施例中的各用戶在不同日期輪循到的索引表后綴編號的示意圖;
[0057]圖5是本發(fā)明實施例中一種存儲動態(tài)消息的索引的裝置的結構圖。
【具體實施方式】
[0058]現(xiàn)有的技術方案中,時間軸索引表(Timeline)和分發(fā)索引表(DispatchBuddy)中未考慮分時段的臨界點(如【背景技術】中舉例的I日、9日、17日和25日)大用戶量訪問時,出現(xiàn)集中跳表操作(取所有用戶的動態(tài)消息索引記錄時在該臨界點都會有跳表操作),導致索引數(shù)據(jù)庫的訪問壓力劇增的問題。為解決該問題,本發(fā)明的核心思想是:
[0059]設置M組時間軸索引表,每組包含N個時間軸索引表,將用戶ID分為M組,與所述M組時間軸索引表一一對應,在保存用戶發(fā)布的動態(tài)消息的索引時,使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開的。這樣就不會像現(xiàn)有技術那樣所有用戶的時間軸索引表都會在同一時間點跳表,而是至少部分用戶的時間軸索引表的跳表時間點是錯開的,在不同的時間點跳表,因此緩解了在特定時間點由于跳表操作量大,導致數(shù)據(jù)庫訪問量成倍增大,進而可能會令數(shù)據(jù)庫崩潰的問題。對于分發(fā)索引表進行同樣的處理作同樣的處理,也能帶來相同的有益效果。
[0060]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0061]圖2是本發(fā)明實施例中的一種存儲動態(tài)消息的索引的方法和流程圖。該方法適用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫(例如,用于存儲SNS用戶發(fā)布的動態(tài)消息的索引的索引數(shù)據(jù)庫),在本實施例中用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫包括時間軸索引表,這里針對時間軸索引表進行改進,具體地該方法包括:
[0062]步驟S210,設置用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫包括M組時間軸索引表,
每組包含N個時間軸索引表;將用戶ID分為M組,與所述M組時間軸索引表--對應…和
N均為大于I的自然數(shù)。
[0063]在本發(fā)明的一個實施例中,可以根據(jù)用戶ID的指定的X位的取值劃分成M組,X為自然數(shù)。其中,M為所述X位所能取的不同值的個數(shù)。例如,可以取用戶十進制ID的最后兩位,則可以取O?99的100個不同數(shù)值,即M= 100,即根據(jù)用戶ID的后兩位的取值,可以將用戶ID分為100組。并且設置100組時間軸索引表,與100組用戶一一對應,另外設N取3,則每組包含3個時間軸索引表,總共300個時間軸索引表。
[0064]步驟S220,每當一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一組時間軸索引表,根據(jù)第一預設策略確定該組中的一個時間軸索引表,將該動態(tài)消息的索引保存到所確定的該時間軸索引表中;所述第一預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開。
[0065]時間以“天”計算為例,假設固定時間間隔為4天,則對于同一個用戶來說,其所發(fā)布的動態(tài)消息的索引根據(jù)發(fā)布的日期,按照每隔4天輪循一次的規(guī)則,輪循保存到該用戶ID對應組內(nèi)的3個時間軸索引表中。將每組中的三個時間軸索引表都分別編號為0、1和2。
[0066]例如,一部分用戶(用a表不)的輪循規(guī)則是:
[0067]I?4日產(chǎn)生的動態(tài)消息索引保存到編號為O的時間軸索引表;
[0068]5?8日產(chǎn)生的動態(tài)消息索引保存到編號為I的時間軸索引表;
[0069]9?12日產(chǎn)生的動態(tài)消息索引保存到編號為2的時間軸索引表;
[0070]13?16日產(chǎn)生的動態(tài)消息索引保存到編號為O的時間軸索引表;
[0071]17?20日產(chǎn)生的動態(tài)消息索引保存到編號為2的時間軸索引表;以此類推。
[0072]一部分用戶(用b表示)的輪循規(guī)則是:
[0073]2?5日產(chǎn)生的動態(tài)消息索引保存到編號為O的時間軸索引表;
[0074]6?9日產(chǎn)生的動態(tài)消息索引保存到編號為I的時間軸索引表;
[0075]10?13日產(chǎn)生的動態(tài)消息索引保存到編號為2的時間軸索引表;
[0076]14?17日產(chǎn)生的動態(tài)消息索引保存到編號為O的時間軸索引表;
[0077]18?21日產(chǎn)生的動態(tài)消息索引保存到編號為2的時間軸索引表;以此類推。
[0078]又一部分用戶(用c表示)的輪循規(guī)則是:
[0079]3?6日產(chǎn)生的動態(tài)消息索引保存到編號為O的時間軸索引表;
[0080]7?10日產(chǎn)生的動態(tài)消息索引保存到編號為I的時間軸索引表;
[0081]11?14日產(chǎn)生的動態(tài)消息索引保存到編號為2的時間軸索引表;
[0082]15?18日產(chǎn)生的動態(tài)消息索引保存到編號為O的時間軸索引表;
[0083]19?22日產(chǎn)生的動態(tài)消息索引保存到編號為2的時間軸索引表;以此類推。
[0084]這樣就不會像現(xiàn)有技術那樣所有用戶的時間軸索引表都會在同一時間點跳表,而是至少部分用戶的時間軸索引表的跳表時間點是錯開的,在不同的時間點跳表。例如,在5日這一天,如果前臺取一次記錄需要5日和4日的記錄,則a部分用戶的記錄會跳表,而b部分和c部分用戶的記錄不會跳表。
[0085]可見,本發(fā)明的技術方案使得所有用戶的動態(tài)消息索引記錄的跳表時間點在時間軸上錯開,避免集中在一個時間點全部用戶的記錄都跳表。
[0086]圖3是本發(fā)明又一實施例中的一種存儲動態(tài)消息的索引的方法和流程圖。該方法適用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫(例如,用于存儲SNS用戶發(fā)布的動態(tài)消息的索引的索引數(shù)據(jù)庫),在本實施例中用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫包括分發(fā)索引表,這里針對分發(fā)索引表進行改進,具體地該方法包括:
[0087]步驟S310,設置用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫包括M組分發(fā)索引表,每組包含N個分發(fā)索引表;將用戶ID分為M組,與所述M組分發(fā)索引表一一對應;M和N均為大于I的自然數(shù)。
[0088]在本發(fā)明的一個實施例中,可以根據(jù)用戶ID的指定的X位的取值劃分成M組,X為自然數(shù)。其中,M為所述X位所能取的不同值的個數(shù)。例如,可以取用戶ID的最后兩位,則可以取O?99的100個不同數(shù)值,即M = 100,即根據(jù)用戶ID的后兩位的取值,可以將用戶ID分為100組。并且設置100組時間軸索引表,與100組用戶——對應,另外設N取3,則每組包含3個時間軸索引表,總共300個時間軸索引表。
[0089]步驟320,每當一個用戶發(fā)布一條動態(tài)消息時,對于該用戶的每個聯(lián)系人,根據(jù)該聯(lián)系人的ID查找到對應的一組分發(fā)索引表,根據(jù)第二預設策略確定該組中的一個分發(fā)索引表,將該動態(tài)消息的索引保存到所確定的該分發(fā)索引表中;所述第二預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個分發(fā)索引表中,且至少部分用戶的輪循時間點相互錯開。
[0090]本步驟中的第二策略可以和步驟220中的第一策略相同。
[0091]在圖2和圖3所示的實施例中,分別針對時間軸索引表(Timeline)和分發(fā)索引表(DispatchBuddy )進行了改進處理。在本發(fā)明的一個較佳實施例中可以同時對Time I ine和DispatchBuddy進行改進。以下以用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫包括動態(tài)消息索引表(NewsFeed)、軸索引表(Timeline)和分發(fā)索引表(DispatchBuddy)為例進行說明:
[0092]仍以圖1所示的存儲系統(tǒng)為例,索引數(shù)據(jù)庫由4組子庫組成,分別為:索引子庫一、索引子庫二、索引子庫三和索引子庫四。每個索引子庫都由兩臺設備組成,一主一從,做主從備份。將索引按10進制的用戶ID的后2位進行分子庫存儲,例如用戶標識后2位的取值范圍O?24、25?49、50?74和75?99,分別對應索引子庫一至四。這實際上是將用戶ID 分成了 100 組。對應第有 100 個 NewsFeed表、100 組 Timeline 表和 100 組 DispatchBudd表。每組中包含3個表,分別用后綴_0、_1和_2編號。每個索引子庫中均存儲newsfeed、Timeline 和 DispatchBuddy 三類索引表。
[0093]其中,索引子庫一中存儲如下索引表:
[0094]NewsFeed_0000>NewsFeed_0002、NewsFeed_0003......、NewsFeed_0024 ;
[0095]Timel ine_0000_0> Timel ine_0000_l、Timeline_0000_2、Time I ine_0001_0 >Time I ine_0001_1、Timeline_0001_2> Timeline_0003_0> Time Iine_0003_l、Timeline_0003_2......、Timeline_0024_0> Timeline_0024_l、Timeline_0024_2 ;
[0096]DispatchBuddy_0000_0> DispatchBuddy_0000_l、DispatchBuddy_0000_2>DispatchBuddy_0001_0> DispatchBuddy_0001_l> DispatchBuddy_0001_2>
Di spatchBuddy_0003_0 > Di spatchBuddy_0003_l、DispatchBuddy_0003_2......、
Di spatchBuddy_0024_0 >DispatchBuddy_0024_l>DispatchBuddy_0024_2。
[0097]索引子庫二中存儲如下索引表:
[0098]NewsFeed—0025、NewsFeed—0026、NewsFeed—0027......、NewsFeed—0049 ;
[0099]Timeline—0025—0、 Timeline—0025—1、 Timeline—0025—2、 Timeline—0026—0、Time Iine—0026 —1、Time Iine—0026—2、Timeline—0027—0、Time Iine—0027 —1、Timeline—0027—2......、Timeline—0049—0、Timeline—0049—1、Timeline—0049—2 ;
[0100]DispatchBuddy—0025—0、 DispatchBuddy—0025—1、 DispatchBuddy—0025—2、DispatchBuddy_0026_0、 DispatchBuddy_00 26_l、 DispatchBuddy_00 26_2、
DispatchBuddy—0027—0、DispatchBuddy—0027—1、DispatchBuddy—0027—2......、
DispatchBuddy—0049—0、DispatchBuddy—0049—1、DispatchBuddy—0049—2 ;
[0101]索引子庫三中存儲如下索引表:
[0102]NewsFeed—0050、NewsFeed—0051、NewsFeed—0052......、NewsFeed—0074 ;
[0103]Timeline—0050—0、Timeline—0050—1、Timeline—0050—2、Timeline—0051—0、Time Iine—0051 — 1、TimeIine—0051 — 2、Time Iine—0052—0、Time Iine—0052—1、Timeline—0052—2......、Timeline—0074—0、Timeline—0074—1、Timeline—0074—2 ;
[0104]DispatchBuddy—0050—0、 DispatchBuddy—0050—1、 DispatchBuddy—0050—2、DispatchBuddy_0051_0、 DispatchBuddy_0051_l、 DispatchBuddy_0051_2、
DispatchBuddy—0052—0、DispatchBuddy—0052—1、DispatchBuddy—0052—2......、
DispatchBuddy—0074—0、DispatchBuddy—0074—1、DispatchBuddy—0074—2 ;
[0105]索引子庫四中存儲如下索引表:
[0106]NewsFeed—0075、NewsFeed—0076、NewsFeed—0077......、NewsFeed—0099 ;
[0107]Timeline—0075—0、 Timeline—0075—1、 Timeline—0075—2、 Timeline—0076—0、Timeline—0076 —1、Time Iine—0076—2、Timeline—0077—0、Timeline—0077 —1、Timeline—0077—2......、Timeline—0099—0、Timeline—0099—1、Timeline—0099—2 ;
[0108]DispatchBuddy—0075—0、 DispatchBuddy—0075—1、 DispatchBuddy—0075—2、DispatchBuddy_0076_0、 DispatchBuddy_0076_l、 DispatchBuddy_0076_2、
DispatchBuddy—0077—0、DispatchBuddy—0077—1、DispatchBuddy—0077—2......、
DispatchBuddy—0099—0、DispatchBuddy—0099—1、DispatchBuddy—0099—2。
[0109]基于上述的索引數(shù)據(jù)庫,每當一個用戶發(fā)布一條動態(tài)消息時,關于存儲該動態(tài)消息的索引,執(zhí)行以下操作:
[0110](I)根據(jù)該用戶的ID查找到對應的一個動態(tài)消息索引表,將該動態(tài)消息的索引保存到查找到的該動態(tài)消息索引表中。
[0111](2)根據(jù)該用戶的ID查找到對應的一組時間軸索引表,根據(jù)第一預設策略確定該組中的一個時間軸索引表,將該動態(tài)消息的索引保存到所確定的該時間軸索引表中。
[0112]在本實施例中,第一預設策略具體為:計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù);計算該用戶的ID的指定X位值與所述時間差的和值;用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個時間軸索引表;
[0113]在其他實施例中,第一預設策略還可以為:計算當前日期與該用戶的ID的指定X位值的和值,該和值為自然數(shù);用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個時間軸索引表。
[0114](3)對于該用戶的每個聯(lián)系人,根據(jù)該聯(lián)系人的ID查找到對應的一組分發(fā)索引表,根據(jù)第二預設策略確定該組中的一個分發(fā)索引表,將該動態(tài)消息的索引保存到所確定的該分發(fā)索引表中;
[0115]在本實施例中,第二預設策略具體為:計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù);計算該聯(lián)系人的ID的指定X位值與所述時間差的和值;用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表;
[0116]在其他實施例中,第二預設策略還可以為:計算當前日期與該聯(lián)系人的ID的指定X位值的和值,該和值為自然數(shù);用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表。
[0117]舉例:用戶A (其用戶ID為200098677)的聯(lián)系人用戶B (其用戶ID為200098670)在2012年5月20日16:16發(fā)布了一條動態(tài),則保存動態(tài)消息的索引的具體流程為:
[0118](I)由于用戶B的用戶ID為200098670,根據(jù)其后兩位70會路由到索引子庫三中,再根據(jù)70,將該動態(tài)消息的索引插入到NeWSFeed_0070中,并同時存入索引緩存;
[0119](2)同時,在索引子庫三中,根據(jù)70和當前日期20,計算出的后綴為0,因此會在Timeline_0070_0中插入將該動態(tài)消息的索引,同時保存到索引緩存中一份;
[0120]根據(jù)用戶ID的后兩位70和當前日期20,計算出的后綴為O的過程為:固定時間戳為2012年4月29日,則與當前日期的時間差為21天,70+21 = 91,91整除3為30,30模3余數(shù)為O。
[0121](3)同樣的方法操作DispatchBuddy表,由于此表是分發(fā)給聯(lián)系人的索引表,因此需要根據(jù)用戶B的聯(lián)系人的用戶ID進行路由,為用戶A為例,由于用戶A的用戶ID為200098677,根據(jù)其后兩位77會路由到索引子庫四中,在根據(jù)77和當前日期20,計算出的后綴為2,因此會在DispatchBuddy_0077_2中插入將該動態(tài)消息的索引,同時保存到索引緩存中一份。
[0122]根據(jù)77和當前日期20,計算出的后綴為2的過程為:固定時間戳為2012年4月29日,則與當前日期的時間差為21天,77+21 = 98,98整除3為32,32模3余數(shù)為2。
[0123]這樣,根據(jù)該策略計算出來的各用戶在不同日期輪循到的索引表的后綴編號如圖4所示。從圖4可以看出,在該實施例中,將用戶的索引記錄分為三個時間段存儲(在本發(fā)明的其他實施例中可以靈活調(diào)整所分時間段個數(shù),如4、5、6甚至7個時間段),即將每組的Timeline和DispatchBuddy表分為0、1和2三個表,并且各用戶所存儲記錄的時間段交錯開來,盡量避免在同一天集中跳表操作,緩解了索引數(shù)據(jù)庫在臨界時間的訪問壓力。按照圖4所示的結果,在一個臨界點日期,總共有總用戶數(shù)三分之一的用戶可能出現(xiàn)跳表操作,大大減少了同時時間點出現(xiàn)跳表操作的數(shù)量。但需要說明的是,在本實施例中單表存儲的時間為3天,但在其他實施例中可以根據(jù)需要調(diào)整正4天或5天等等,控制比較靈活。
[0124]此外,該方案還存在如下優(yōu)點:細分了索引數(shù)據(jù)的存儲粒度,利于刪除操作。根據(jù)圖4,在本實施例中,每張表每隔9天會更新,即每隔9天表中的記錄會被刪除,重新寫入新的記錄。每次刪除時,會刪除三分之一用戶的索引記錄,而不是刪除所有用戶的索引記錄。
[0125]基于上述實施例給出本發(fā)明中的存儲動態(tài)消息的索引的裝置的結構。
[0126]圖5是本發(fā)明實施例中一種存儲動態(tài)消息的索引的裝置的結構圖。參見圖5該裝置包括:索引數(shù)據(jù)庫501和用于存儲動態(tài)消息的索引的索引保存單元502。
[0127]索引數(shù)據(jù)庫501,用于保存M組時間軸索引表,每組包含N個時間軸索引表;以及,
索引保存單元502,用于將用戶ID分為M組,與所述M組時間軸索引表--對應,M和N均為自然數(shù);索引保存單元502,還用于在一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一組時間軸索引表,根據(jù)第一預設策略確定該組中的一個時間軸索引表,將該動態(tài)消息的索引保存到所確定的該時間軸索引表中;
[0128]和/ 或,
[0129]索引數(shù)據(jù)庫501,用于保存M組分發(fā)索引表,每組包含N個分發(fā)索引表;以及,索引保存單元502,用于將用戶ID分為M組,與所述M組分發(fā)索引表一一對應;索引保存單元502,還用于在一個用戶發(fā)布一條動態(tài)消息時,對于該用戶的每個聯(lián)系人,根據(jù)該聯(lián)系人的ID查找到對應的一組分發(fā)索引表,根據(jù)第二預設策略確定該組中的一個分發(fā)索引表,將該動態(tài)消息的索引保存到所確定的該分發(fā)索引表中;
[0130]其中,
[0131]所述第一預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開;
[0132]所述第二預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個分發(fā)索引表中,且至少部分用戶的輪循時間點相互錯開;
[0133]所述M和N均為大于I的自然數(shù)。
[0134]在本發(fā)明的一個實施例中,索引保存單元502用于根據(jù)用戶ID的指定的X位的取值劃分成M組,X為自然數(shù);其中,M為所述X位所能取的不同值的個數(shù)。例如,可以取用戶ID的最后兩位,則可以取O?99的100個不同數(shù)值,即M= 100,即根據(jù)用戶ID的后兩位的取值,可以將用戶ID分為100組。并且設置100組時間軸索引表,與100組用戶——對應,另外設N取3,則每組包含3個時間軸索引表,總共300個時間軸索引表。
[0135]在本發(fā)明的一個實施例中,索引數(shù)據(jù)庫501,還進一步用于保存動態(tài)消息索引表。索引保存單元502還進一步用于在一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一個動態(tài)消息索引表,將該動態(tài)消息的索引保存到查找到的該動態(tài)消息索引表中。
[0136]在本發(fā)明的一個實施例中,索引保存單元502,用于計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù),然后計算該用戶的ID的指定X位值與所述時間差的和值,用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個時間軸索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1。
[0137]在本發(fā)明的一個實施例中,索引保存單元502,用于計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù),計算該聯(lián)系人的ID的指定X位值與所述時間差的和值,用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1。
[0138]在本發(fā)明的一個實施例中,索引保存單元502,用于計算當前日期與該用戶的ID的指定X位值的和值,該和值為自然數(shù),用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個時間軸索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1 ;
[0139]在本發(fā)明的一個實施例中,索引保存單元502,用于計算當前日期與該聯(lián)系人的ID的指定X位值的和值,該和值為自然數(shù),用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1。
[0140]綜上所述,在本發(fā)明中由于設置了 M組時間軸索引表,每組包含N個時間軸索引表,將用戶ID分為M組,與所述M組時間軸索引表對應,在保存用戶發(fā)布的動態(tài)消息的索引時,使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開,這樣就不會像現(xiàn)有技術那樣所有用戶的時間軸索引表都會在同一時間點跳表,而是至少部分用戶的時間軸索引表的跳表時間點是錯開的,在不同的時間點跳表,因此緩解了在特定時間點由于跳表操作量大,導致數(shù)據(jù)庫訪問量成倍增大,進而可能會令數(shù)據(jù)庫崩潰的問題。對于分發(fā)索引表進行同樣的處理,能帶來相同的有益效果。
[0141]在本申請中將Newsfeed表稱為動態(tài)消息索引表,將Timeline表稱為時間軸索引表,以及將DispatchBuddy表稱為分發(fā)索引表。這里需要說明的是Newsfeed表、Timeline表和DispatchBuddy表的對應中文名稱不限于本申請中給出的上述中文名稱,也可以是其他的合適的中文名稱。
[0142]以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。
【權利要求】
1.一種存儲動態(tài)消息的索引的方法,該方法適用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫,其特征在于,該方法包括: 設置所述索引數(shù)據(jù)庫包含M組時間軸索引表,每組包含N個時間軸索引表,將用戶ID分為M組,與所述M組時間軸索引表--對應,每當一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一組時間軸索引表,根據(jù)第一預設策略確定該組中的一個時間軸索引表,將該動態(tài)消息的索引保存到所確定的該時間軸索引表中; 和/或, 設置所述索引數(shù)據(jù)庫包含M組分發(fā)索引表,每組包含N個分發(fā)索引表,將用戶ID分為M組,與所述M組分發(fā)索引表 對應,每當一個用戶發(fā)布一條動態(tài)消息時,對于該用戶的每個聯(lián)系人,根據(jù)該聯(lián)系人的ID查找到對應的一組分發(fā)索引表,根據(jù)第二預設策略確定該組中的一個分發(fā)索引表,將該動態(tài)消息的索引保存到所確定的該分發(fā)索引表中; 其中, 所述第一預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開; 其中,所述第二預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個分發(fā)索引表中,且至少部分用戶的輪循時間點相互錯開; 所述M和N均為大于I的自然數(shù)。
2.如權利要求1所述的方法,其特征在于,所述將用戶ID分為M組包括: 根據(jù)用戶ID的指定的X位的取值劃分成M組,X為自然數(shù); 其中,M為所述X位所能取的不同值的個數(shù)。
3.如權利要求1所述的方法,其特征在于,該方法進一步包括: 每當一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID從所述索引數(shù)據(jù)庫查找到對應的一個動態(tài)消息索引表,將該動態(tài)消息的索引保存到查找到的該動態(tài)消息索引表中。
4.如權利要求1至3中任一項所述的方法,其特征在于, 所述根據(jù)第一預設策略確定該組中的一個時間軸索引表具體包括:每組中的N個時間軸索引表都被依次編號為O?N-1 ;計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù);計算該用戶的ID的指定X位值與所述時間差的和值;用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個時間軸索引表; 所述根據(jù)第二預設策略確定該組中的一個分發(fā)索引表具體包括:每組中的N個分發(fā)索引表都被依次編號為O?N-1 ;計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù);計算該聯(lián)系人的ID的指定X位值與所述時間差的和值;用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表。
5.如權利要求1至3中任一項所述的方法,其特征在于, 所述根據(jù)第一預設策略確定該組中的一個時間軸索引表具體包括:每組中的N個時間軸索引表都被依次編號為O?N-1 ;計算當前日期與該用戶的ID的指定X位值的和值,該和值為自然數(shù);用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個時間軸索引表; 所述根據(jù)第二預設策略確定該組中的一個分發(fā)索引表具體包括:每組中的N個分發(fā)索引表都被依次編號為O?N-1 ;計算當前日期與該聯(lián)系人的ID的指定X位值的和值,該和值為自然數(shù);用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù);確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表。
6.一種存儲動態(tài)消息的索引的裝置,其特征在于,該裝置包括:索引保存單元和用于存儲動態(tài)消息的索引的索引數(shù)據(jù)庫; 所述索引數(shù)據(jù)庫,用于保存M組時間軸索引表,每組包含N個時間軸索引表;以及,所述索引保存單元,用于將用戶ID分為M組,與所述M組時間軸索引表--對應;所述索引保存單元還用于在一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一組時間軸索引表,根據(jù)第一預設策略確定該組中的一個時間軸索引表,將該動態(tài)消息的索引保存到所確定的該時間軸索引表中; 和/或, 所述索引數(shù)據(jù)庫,用于保存M組分發(fā)索引表,每組包含N個分發(fā)索引表;以及,所述索引保存單元,用于將用戶ID分為M組,與所述M組分發(fā)索引表一一對應;所述索引保存單元還用于在一個用戶發(fā)布一條動態(tài)消息時,對于該用戶的每個聯(lián)系人,根據(jù)該聯(lián)系人的ID查找到對應的一組分發(fā)索引表,根據(jù)第二預設策略確定該組中的一個分發(fā)索引表,將該動態(tài)消息的索引保存到所確定的該分發(fā)索引表中; 其中, 所述第一預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個時間軸索引表中,且至少部分用戶的輪循時間點相互錯開; 所述第二預設策略使得同一用戶的動態(tài)消息的索引按照所發(fā)布時間,依據(jù)每隔固定時間間隔輪循一次的原則,輪循保存在對應組內(nèi)的N個分發(fā)索引表中,且至少部分用戶的輪循時間點相互錯開; 所述M和N均為大于I的自然數(shù)。
7.如權利要求6所述的裝置,其特征在于, 所述索引保存單元,用于根據(jù)用戶ID的指定的X位的取值劃分成M組,X為自然數(shù);其中,M為所述X位所能取的不同值的個數(shù)。
8.如權利要求6所述的裝置,其特征在于, 所述索引數(shù)據(jù)庫,進一步用于保存動態(tài)消息索引表; 所述索引保存單元,進一步用于在一個用戶發(fā)布一條動態(tài)消息時,根據(jù)該用戶的ID查找到對應的一個動態(tài)消息索引表,將該動態(tài)消息的索引保存到查找到的該動態(tài)消息索引表中。
9.如權利要求6至8中任一項所述的裝置,其特征在于, 所述索引保存單元,用于計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù),然后計算該用戶的ID的指定X位值與所述時間差的和值,用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個時間軸索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1 ; 和/或, 所述索引保存單元,用于計算當前日期與固定時間戳之間的時間差,該時間差的數(shù)值為自然數(shù),計算該聯(lián)系人的ID的指定X位值與所述時間差的和值,用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1。
10.如權利要求6至8中任一項所述的裝置,其特征在于, 所述索引保存單元,用于計算當前日期與該用戶的ID的指定X位值的和值,該和值為自然數(shù),用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個時間軸索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1 ; 和/或, 所述索引保存單元,用于計算當前日期與該聯(lián)系人的ID的指定X位值的和值,該和值為自然數(shù),用N整除所述和值得到一個整數(shù),再將該整數(shù)模N取余數(shù),確定該組中的編號與該余數(shù)相同的一個分發(fā)索引表;其中,每組中的N個時間軸索引表都被依次編號為O?N-1。
【文檔編號】G06F17/30GK104252503SQ201310270726
【公開日】2014年12月31日 申請日期:2013年6月29日 優(yōu)先權日:2013年6月29日
【發(fā)明者】趙炳坤 申請人:北京新媒傳信科技有限公司