專利名稱:海量數(shù)據(jù)記錄的索引建立方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)及通信技術(shù)領(lǐng)域,具體而言,涉及一種海量數(shù)據(jù)記錄的索引 建立方法及裝置。
背景技術(shù):
目前的內(nèi)存數(shù)據(jù)庫(kù)中通常是通過(guò)文件的名稱或?qū)懭霑r(shí)間等屬性作為索引關(guān)鍵 字,但對(duì)于海量數(shù)據(jù)的存儲(chǔ)采用這種方式進(jìn)行索引的速度較慢或者索引的結(jié)果不唯一。 例如,當(dāng)前IPTV系統(tǒng)中通過(guò)分布式文件系統(tǒng)訪問(wèn)存儲(chǔ)的媒體文件,該文件系統(tǒng)使用內(nèi) 存數(shù)據(jù)庫(kù)管理文件系統(tǒng)的元數(shù)據(jù)。在應(yīng)用中,要求系統(tǒng)支持五百萬(wàn)文件記錄和兩千萬(wàn)塊 (CHUNK)記錄,如果采用現(xiàn)有的索引方法,則不能達(dá)到快速定位的需求。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種海量數(shù)據(jù)記錄的索引建立方法及裝置,以至少 解決上述問(wèn)題之一。根據(jù)本發(fā)明的一個(gè)方面,提供了一種海量數(shù)據(jù)記錄的索引建立方法,包括在 接收到新的寫(xiě)入文件請(qǐng)求消息時(shí),獲取當(dāng)前系統(tǒng)時(shí)間;根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述寫(xiě) 入文件請(qǐng)求消息請(qǐng)求寫(xiě)入的文件的文件標(biāo)識(shí),生成所述文件的索引關(guān)鍵字;建立所述索 弓丨關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系。其中,所述文件可以為分布式文件。其中,所述文件標(biāo)識(shí)可以包括所述分布式文件的邏輯文件的第一邏輯文件標(biāo) 識(shí);則根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述文件標(biāo)識(shí)生成所述索引關(guān)鍵字包括步驟A:根據(jù) 所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取第一時(shí)間域參數(shù);步驟B:根據(jù) 預(yù)設(shè)的配置策略,生成所述第一邏輯文件標(biāo)識(shí);步驟C:將所述第一時(shí)間域參數(shù)與所述 第一邏輯文件標(biāo)識(shí)合成為查找鍵值;步驟D:在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如 果不能查找到所述查找鍵值或者所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí)與查找到 的查找鍵值指示的第二時(shí)間域參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同,則表示所述第一邏 輯文件標(biāo)識(shí)有效,將所述第一時(shí)間域參數(shù)與所述第一邏輯文件標(biāo)識(shí)合成的所述查找鍵值 作為所述邏輯文件的唯一 ID,將所述查找鍵值作為所述索引關(guān)鍵字。其中,所述文件標(biāo)識(shí)可以包括所述分布式文件的邏輯文件的第一邏輯文件標(biāo) 識(shí)和所述分布式文件的分片文件的第一分片文件標(biāo)識(shí);則根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述 文件標(biāo)識(shí)生成所述索引關(guān)鍵字包括步驟A:根據(jù)所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間 經(jīng)歷的總時(shí)長(zhǎng),獲取第一時(shí)間域參數(shù);步驟B:根據(jù)預(yù)設(shè)的配置策略,生成所述第一邏 輯文件標(biāo)識(shí)和所述第一分片文件標(biāo)識(shí);步驟C:將所述第一時(shí)間域參數(shù)、所述第一邏輯 文件標(biāo)識(shí)與所述第一分片文件標(biāo)識(shí)合成為查找鍵值;步驟D:在記錄的數(shù)據(jù)區(qū)中查找所 述查找鍵值,如果不能查找到所述查找鍵值,或者所述第一時(shí)間域參數(shù)和所述第一邏輯 文件標(biāo)識(shí)與查找到的查找鍵值指示的第二時(shí)間域參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同,且所述第一時(shí)間域參數(shù)和所述第一分片文件標(biāo)識(shí)與所述第二時(shí)間域參數(shù)和所述第二分片 文件標(biāo)識(shí)不完成相同,則表示所述第一邏輯文件標(biāo)識(shí)與所述第一分片文件標(biāo)識(shí)的組合有 效,將所述第一時(shí)間域參數(shù)、所述第一邏輯文件標(biāo)識(shí)與所述第一分片文件標(biāo)識(shí)合成的所 述查找鍵值作為所述分片文件的唯一 ID,將所述查找鍵值作為所述索引關(guān)鍵字。其中,如果所述第一時(shí)間域參數(shù)與所述第二時(shí)間域參數(shù)相同且所述第一分片文 件標(biāo)識(shí)與所述第二分片文件標(biāo)識(shí)相同,則所述方法還包括修改所述第一分片文件標(biāo) 識(shí)的值生成新的分片文件標(biāo)識(shí),然后將所述新的分片文件標(biāo)識(shí)作為所述第一分片文件標(biāo) 識(shí),返回步驟C。其中,生成所述第一分片文件標(biāo)識(shí)可以包括獲取上一次生成的分片文件標(biāo)識(shí) 的值,將所述值增加指定的增量,得到所述第一分片文件標(biāo)識(shí),其中,所述分片文件標(biāo) 識(shí)所占的位數(shù)由所述配置策略確定;則修改所述第一分片文件標(biāo)識(shí)的值生成新的分片文 件標(biāo)識(shí)可以包括將所述第一分片文件標(biāo)識(shí)的值增加所述指定的增量得到所述新的分片 文件標(biāo)識(shí)。其中,如果所述第一時(shí)間域參數(shù)與所述第二時(shí)間域參數(shù)相同且所述第一邏輯文 件標(biāo)識(shí)與所述第二邏輯文件標(biāo)識(shí)相同,則所述方法還包括修改所述第一邏輯文件標(biāo) 識(shí)的值生成新的邏輯文件標(biāo)識(shí),然后將所述新的邏輯文件標(biāo)識(shí)作為所述第一邏輯文件標(biāo) 識(shí),返回步驟C。其中,生成所述第一邏輯文件標(biāo)識(shí)可以包括獲取上一次生成的邏輯文件標(biāo)識(shí) 的值,將所述值增加指定的增量,得到所述第一邏輯文件標(biāo)識(shí),其中,所述邏輯文件標(biāo) 識(shí)所占的位數(shù)由所述配置策略確定;則修改所述第一邏輯文件標(biāo)識(shí)的值生成新的邏輯文 件標(biāo)識(shí)可以包括將所述第一邏輯文件標(biāo)識(shí)的值增加所述指定的增量得到所述新的邏輯 文件標(biāo)識(shí)。其中,所述步驟A可以包括根據(jù)所述總時(shí)長(zhǎng),獲取時(shí)間域中各個(gè)位域的值, 其中,所述時(shí)間域的位域包括年域、小時(shí)域或分鐘域、和秒域,所述總時(shí)長(zhǎng)為m年η 小時(shí)或分鐘k秒,所述年域用于記錄所述m的值,所述小時(shí)域或分鐘域用于記錄所述η的 值,所述秒域用于記錄所述k的值,m、η和k為大于或等于0的整數(shù);按照配置策略對(duì) 所述時(shí)間域按位混合得到所述第一時(shí)間域參數(shù),其中,所述配置策略包括將單位小時(shí) 內(nèi)秒數(shù)與所述時(shí)間域?qū)R到相同數(shù)量級(jí),將所述年域,以及所述小時(shí)域或分鐘域的位移 到低位得到所述第一時(shí)間域參數(shù);或者,將單位年度內(nèi)小時(shí)或分鐘數(shù)與所述時(shí)間域?qū)R 到相同數(shù)量級(jí),將所述年域?qū)?yīng)的位移到較低位得到所述第一時(shí)間域參數(shù)。其中,在建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系之后,所述方法還可以包 括有時(shí)間相同的并發(fā)的寫(xiě)入請(qǐng)求超過(guò)預(yù)設(shè)比率;修改或配置分布式文件的邏輯文件標(biāo) 識(shí)和分片文件標(biāo)識(shí)所占的位,和/或,修改或配置按位混合得到所述第一時(shí)間域參數(shù)的 配置策略,返回所述步驟B,重新生成所述分布式文件的新的索引關(guān)鍵字。其中,可以按照折疊取模的方法合成所述查找鍵值。其中,建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系可以包括在記錄所述文件 的內(nèi)存數(shù)據(jù)庫(kù)中申請(qǐng)一個(gè)空的記錄位置,將所述分布式文件的邏輯文件名稱與所述索引 關(guān)鍵字的對(duì)應(yīng)關(guān)系存儲(chǔ)到所述記錄位置,并將所述索引關(guān)鍵字加入到索引數(shù)據(jù)區(qū)中;在 存儲(chǔ)所述分布式文件的分片文件時(shí),將所述索引關(guān)鍵字作為所述分片文件實(shí)際存儲(chǔ)的文件名稱。根據(jù)本發(fā)明的另一方面,提供了一種海量數(shù)據(jù)記錄的索引建立裝置,包括獲 取模塊,用于在接收到新的寫(xiě)入文件請(qǐng)求時(shí),獲取當(dāng)前系統(tǒng)時(shí)間;生成模塊,用于根據(jù) 所述當(dāng)前系統(tǒng)時(shí)間和所述寫(xiě)入文件請(qǐng)求消息請(qǐng)求寫(xiě)入的文件的文件標(biāo)識(shí),生成所述分布 式文件的索引關(guān)鍵字;建立模塊,用于建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系。其中,所述文件可以為分布式文件;所述文件標(biāo)識(shí)可以包括所述分布式文件 的邏輯文件的第一邏輯文件標(biāo)識(shí);則所述生成模塊包括獲取子模塊,用于根據(jù)所述 當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取第一時(shí)間域參數(shù);生成子模塊,用于 根據(jù)預(yù)設(shè)的配置策略,生成所述第一邏輯文件標(biāo)識(shí);合成子模塊,用于將所述第一時(shí)間 域參數(shù)與所述第一邏輯文件標(biāo)識(shí)合成為查找鍵值;查找子模塊,用于在記錄的數(shù)據(jù)區(qū)中 查找所述查找鍵值,如果不能查找到所述查找鍵值或者所述第一時(shí)間域參數(shù)和所述第一 邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示的第二時(shí)間域參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相 同,則將所述查找鍵值作為所述索引關(guān)鍵字。其中,所述文件標(biāo)識(shí)還可以包括所述分布式文件的分片文件的第一分片文件 標(biāo)識(shí);則所述生成子模塊,還用于根據(jù)預(yù)設(shè)的配置策略,生成所述第一分片文件標(biāo)識(shí); 所述合成子模塊,用于將所述第一時(shí)間域參數(shù)、所述第一邏輯文件標(biāo)識(shí)與所述第一分片 文件標(biāo)識(shí)合成為查找鍵值;所述查找子模塊,用于在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵 值,如果不能查找到所述查找鍵值,或者所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí) 與查找到的查找鍵值指示的第二時(shí)間域參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同且所述第一 時(shí)間域參數(shù)和所述第一分片文件標(biāo)識(shí)與所述第二時(shí)間域參數(shù)和所述第二分片文件標(biāo)識(shí)不 完成相同,則將所述查找鍵值作為所述索引關(guān)鍵字。通過(guò)本發(fā)明,將寫(xiě)入時(shí)間與文件的文件標(biāo)識(shí)結(jié)合組成索引關(guān)鍵字,解決了現(xiàn)有 技術(shù)中海量數(shù)據(jù)存儲(chǔ)的定位較慢的問(wèn)題,進(jìn)而達(dá)到了快速定位效果。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本 發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖 中圖1是根據(jù)本發(fā)明實(shí)施例的海量數(shù)據(jù)記錄的索引建立方法的流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的一種索引關(guān)鍵字的合成示意圖;圖3是根據(jù)本發(fā)明實(shí)施例的另一種索引關(guān)鍵字的合成示意圖;圖4是根據(jù)本發(fā)明實(shí)施例的時(shí)間域的位域分布示意圖;圖5是根據(jù)本發(fā)明實(shí)施例的按秒混合后的時(shí)間域的位域分布示意圖;圖6是根據(jù)本發(fā)明實(shí)施例的按小時(shí)數(shù)混合后的時(shí)間域的位域分布示意圖;圖7是根據(jù)本發(fā)明實(shí)施例的一種邏輯文件標(biāo)識(shí)與分片文件標(biāo)識(shí)的位域分布方式 的示意圖;圖8是根據(jù)本發(fā)明實(shí)施例的另一種邏輯文件標(biāo)識(shí)與分片文件標(biāo)識(shí)的位域分布方 式的示意圖;圖9是根據(jù)本發(fā)明實(shí)施例的又一種邏輯文件標(biāo)識(shí)與分片文件標(biāo)識(shí)的位域分布方式的示意圖;圖10是根據(jù)本發(fā)明實(shí)施例的分布式文件的索引關(guān)鍵字生成的流程圖;圖11是根據(jù)本發(fā)明實(shí)施例的海量數(shù)據(jù)記錄的索引建立裝置的結(jié)構(gòu)示意圖;圖12是根據(jù)本發(fā)明實(shí)施例的生成模塊20的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突 的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。圖1是根據(jù)本發(fā)明實(shí)施例的海量數(shù)據(jù)記錄的索引建立方法的流程圖,如圖1所 示,該方法主要包括以下步驟(步驟S102-步驟S106)步驟S102,在接收到新的寫(xiě)入文件請(qǐng)求消息時(shí),獲取當(dāng)前系統(tǒng)時(shí)間;在本發(fā)明實(shí)施例中,對(duì)于每次的新寫(xiě)入文件請(qǐng)求,在獲取當(dāng)前系統(tǒng)時(shí)間時(shí),可 以獲取系統(tǒng)從某一預(yù)定時(shí)間(例如,可以為1970年1月1日0點(diǎn))起到當(dāng)前所經(jīng)歷的總 時(shí)長(zhǎng),該總時(shí)長(zhǎng)可以記錄為m年η小時(shí)k秒,或者,m年η分鐘k秒。步驟S104,根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述寫(xiě)入文件請(qǐng)求消息請(qǐng)求寫(xiě)入的文件的 文件標(biāo)識(shí),生成所述文件的索引關(guān)鍵字;以分布式文件為例,在分布式文件使用分片文件存儲(chǔ)中,元數(shù)據(jù)被劃分為邏輯 文件和分片文件,在生成該文件的索引關(guān)鍵字時(shí),可以將步驟S102獲取的當(dāng)前系統(tǒng)時(shí)間 按位混合為時(shí)間域參數(shù),然后將該時(shí)間域參數(shù)與分布式文件的邏輯文件的邏輯文件標(biāo)識(shí) 組合為索引關(guān)鍵字,如圖2所示,或者,也可以將該時(shí)間域參數(shù)與分布文件的邏輯文件 的邏輯文件和分片文件的分片文件標(biāo)識(shí)一起組合為索引關(guān)鍵字,如圖3所示。例如,索 引關(guān)鍵字可以按照以下兩種方式組合得到方式一,索引關(guān)鍵字由時(shí)間域參數(shù)和邏輯文件標(biāo)識(shí)組成,主要包括以下步驟步驟A:根據(jù)所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取時(shí)間域參 數(shù);步驟B:根據(jù)預(yù)設(shè)的配置策略,生成所述邏輯文件標(biāo)識(shí);步驟C 將所述時(shí)間域參數(shù)與所述邏輯文件標(biāo)識(shí)合成為查找鍵值;步驟D:在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查找到所述查找鍵值 或者所述時(shí)間域參數(shù)和所述邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示的時(shí)間域參數(shù)和邏輯 文件標(biāo)識(shí)不完成相同,則表示步驟B生成的邏輯文件標(biāo)識(shí)有效可用,將步驟A獲取的 時(shí)間域參數(shù)與步驟B中生成的邏輯文件標(biāo)識(shí)合成的上述查找鍵值作為該邏輯文件的唯一 ID,將所述查找鍵值作為所述索引關(guān)鍵字。方式二,索引關(guān)鍵字由時(shí)間域參數(shù)、邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)組成,主要 包括以下步驟步驟A 數(shù);步驟B步驟C
找鍵值;
根據(jù)所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取時(shí)間域參
根據(jù)預(yù)設(shè)的配置策略,生成所述邏輯文件標(biāo)識(shí)和所述分片文件標(biāo)識(shí); 將所述時(shí)間域參數(shù)、所述邏輯文件標(biāo)識(shí)與所述分片文件標(biāo)識(shí)合成為查
步驟D:在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查找到所述查找鍵 值,或者步驟A中時(shí)間域參數(shù)和步驟B中邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示的時(shí)間 域參數(shù)和邏輯文件標(biāo)識(shí)不完成相同,且步驟A中的所述時(shí)間域參數(shù)和步驟B中的所述第 分片文件標(biāo)識(shí)與查找到的查找鍵值所指示的時(shí)間域參數(shù)和分片文件標(biāo)識(shí)不完成相同,則 表示步驟B中生成的邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)的組合有效可用,將步驟A獲取的時(shí) 間域參數(shù)與步驟B中生成的邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)合成的查找鍵值作為所述分片 文件的唯一 ID,將所述查找鍵值作為所述索引關(guān)鍵字。其中,在上述方式一和方式二的步驟A中,根據(jù)上述總時(shí)長(zhǎng),獲取時(shí)間域中各 個(gè)位域的值,如圖4所示,時(shí)間域可以包括年域、小時(shí)域和秒域,例如,如果總時(shí)長(zhǎng) 為m年n小時(shí)k秒,則時(shí)間域中的所述年域用于記錄所述m的值,所述小時(shí)域用于記錄 所述n的值,所述秒域用于記錄所述k的值,m、n和k為大于或等于0的整數(shù)。其中, 年域可以占用8位,小時(shí)域可以占用13-14位,而秒域可以占用13-14位?;蛘?,總時(shí) 長(zhǎng)也可以描述為m年n分鐘k秒,則將圖4中的小時(shí)域替換為分鐘域,由分鐘域來(lái)記錄總 時(shí)長(zhǎng)中的n值。然后可以按照配置策略對(duì)時(shí)間域按位混合得到新的時(shí)間域參數(shù);其中,時(shí)間域按位混合的策略可以有多種,例如,可以包括以下兩種(1)基于單位小時(shí)內(nèi)秒數(shù)的均衡將單位小時(shí)內(nèi)秒數(shù)這個(gè)相對(duì)連續(xù)變化量與數(shù)據(jù)目標(biāo)集的大小對(duì)齊到相同數(shù)量 級(jí),高于小時(shí)的位移到較低位,圖5為按秒混合后的時(shí)間域的位域分布示意圖。按照這 種方式混合,可以離散短時(shí)間內(nèi)大量文件的索引關(guān)鍵字生成的影響。(2)基于單位年度內(nèi)小時(shí)或分鐘數(shù)的均衡同上,將單位年度內(nèi)小時(shí)或分鐘數(shù)這個(gè)相對(duì)連續(xù)變化量與數(shù)據(jù)目標(biāo)集的大小對(duì) 齊到相同數(shù)量級(jí),低于小時(shí)的位移到較低位,圖6為按小時(shí)數(shù)混合后的時(shí)間域的位域分 布示意圖。采用這種方式,可以離散長(zhǎng)時(shí)間內(nèi)大量文件的索引關(guān)鍵字生成的影響。在上述方式二中,如果步驟A中的時(shí)間域參數(shù)與步驟B中的分片文件標(biāo)識(shí)與查 找到的查找關(guān)鍵值指示的時(shí)間域參數(shù)和分片文件標(biāo)識(shí)均相同,則需要修改步驟B中的分 片文件標(biāo)識(shí)的值得到新的分片文件標(biāo)識(shí),將該文片文件標(biāo)識(shí)作為該分布式文件的分片文 件標(biāo)識(shí),返回步驟C,重新生成新的索引關(guān)鍵字,直至找到未被占用的分片文件標(biāo)識(shí)。在上述方式一和方式二中,如果步驟A中的時(shí)間域參數(shù)和步驟B中的邏輯文件 標(biāo)識(shí)與查找到的查找鍵值指示的時(shí)間域參數(shù)和邏輯文件標(biāo)識(shí)均相同,則表示該時(shí)間下的 該邏輯文件標(biāo)識(shí)已被占用,則對(duì)該邏輯文件標(biāo)識(shí)進(jìn)行修改,生成新的邏輯文件標(biāo)識(shí),返 回步驟C生成新的索引關(guān)鍵字,直至找到該時(shí)間下未被占用的邏輯文件標(biāo)識(shí)。在本發(fā)明實(shí)施例中,為了使用方便,邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)可以分別進(jìn) 行全局計(jì)算增量,在步驟B中生成邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)時(shí),獲取上一次生成的 邏輯文件標(biāo)識(shí)或分片文件標(biāo)識(shí)的值,將該值增加指定增量后,得到該分布式文件的邏輯 文件標(biāo)識(shí)和分片文件標(biāo)識(shí),則在上述對(duì)文件標(biāo)識(shí)進(jìn)行修改時(shí),可以將該文件標(biāo)識(shí)增加指 定增量(例如,1)得到新的文件標(biāo)識(shí)。在本發(fā)明實(shí)施例,邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)所占的bit位需要根據(jù)邏輯文件 大小及分片文件的大小來(lái)決定,例如,對(duì)于少量的大文件,可以采用如圖7所示的位域 分布方式,在這種情況下,分片文件占用較多的位;對(duì)于大量的小文件,可以采用如圖8所示的位域分布方式,在這種情況下,需要邏輯文件占用較多位;而在混合情形下, 即有大文件,也有較多小文件的情況下或者是無(wú)法確定存儲(chǔ)的大小文件數(shù)量比例的情況 下,可以直接取均值劃分,即采用如圖9所示的位域分布方式。通過(guò)選擇不同的位域分 布方式,可以使得相同時(shí)間點(diǎn)處理的文件標(biāo)識(shí)增量不同,從而可以適用于不同的應(yīng)用場(chǎng)
旦
o在上述方式一和方式二的步驟C中,在合成查找鍵值時(shí),可以采用折疊取模法 進(jìn)行合成,例如,對(duì)于方式一,將步驟A生成的時(shí)間域參數(shù)加上步驟B生成的邏輯文件 ID或時(shí)間域參數(shù)與邏輯文件ID拼接成為64位的數(shù)值,不足64位部分用0填充,得到關(guān) 鍵字,查找鍵值即為該關(guān)鍵字對(duì)應(yīng)用規(guī)模值進(jìn)行算術(shù)取模操作得到。其中,應(yīng)用規(guī)模值 是指當(dāng)前應(yīng)用場(chǎng)景下預(yù)計(jì)系統(tǒng)可以存儲(chǔ)的文件總數(shù)。步驟S106,建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系。例如,對(duì)于分布式文件存儲(chǔ),可以在內(nèi)存數(shù)據(jù)庫(kù)中申請(qǐng)一個(gè)空的記錄位置,將 邏輯文件名稱及步驟S104得到的索引關(guān)鍵字的對(duì)應(yīng)關(guān)系存儲(chǔ)到該記錄位置,同時(shí)將該索 引關(guān)鍵字加入到索引數(shù)據(jù)區(qū)中,即將該索引關(guān)鍵字與該分布式文件的邏輯文件的存儲(chǔ)位 置對(duì)應(yīng),從而完成了索引關(guān)鍵字與邏輯文件的關(guān)聯(lián)構(gòu)建。在建立了邏輯文件與索引關(guān)鍵字的關(guān)聯(lián)后,物理存儲(chǔ)文件即分片文件使用該索 引關(guān)鍵字作為實(shí)際存儲(chǔ)的文件名稱,從而實(shí)現(xiàn)了邏輯文件名稱到物理存儲(chǔ)的映射關(guān)系。 通過(guò)邏輯文件名稱可以查詢到物理文件存儲(chǔ)名稱,通過(guò)物理存儲(chǔ)文件的名稱即索引關(guān)鍵 字也可以查詢到邏輯文件名稱。下面以采用分布式文件的邏輯文件標(biāo)識(shí)生成該分布式文件的索引關(guān)鍵字為例, 說(shuō)明在本發(fā)明實(shí)施例中如何生成分布式文件的索引關(guān)鍵字。如圖10所示,在本發(fā)明實(shí)施例中可以按照以下步驟生成分布式文件的索引關(guān)鍵 字步驟1001,在接收到寫(xiě)入分布式文件的請(qǐng)求時(shí),獲取系統(tǒng)時(shí)間的總秒數(shù);步驟1002,判斷是采用基于單位小時(shí)內(nèi)秒數(shù)的均衡的策略還是采用基于單位年 度內(nèi)小時(shí)數(shù)的均衡策略生成時(shí)間域數(shù)值;步驟1003,采用步驟1002指示的策略生成時(shí)間域數(shù)值;步驟1004,判斷是采用大文件的位域分布方式還是采用小文件的位域分布方 式,即采用如圖7所示的位域分布方式還是如圖8所示的位域分布方式;步驟1005,采用步驟1004選定的策略生成該分布式文件的邏輯文件ID ;步驟1006,將步驟1003生成的時(shí)間域數(shù)值與步驟1005生成的邏輯文件ID合成 新的查找鍵值;步驟1007,使用步驟1006合成的查找鍵值檢查哈希入口數(shù)據(jù)區(qū)中是否可以查找 到該查找鍵值的數(shù)值,如果是,則執(zhí)行步驟1008,否則,執(zhí)行步驟1010;步驟1008,判斷步驟1003生成的時(shí)間域數(shù)值和步驟1005生成的邏輯文件ID 與查找到的數(shù)值所指示的時(shí)間域數(shù)值和邏輯文件ID是否均相同,如果是,則執(zhí)行步驟 1009 ;否則,執(zhí)行步驟1010 ;步驟1009,將步驟1005生成的邏輯文件ID增加一個(gè)增量,得到該分布式文件 的新的邏輯文件ID,返回執(zhí)行步驟1006;
10
步驟1010,將步驟1003生成的時(shí)間域數(shù)值與步驟1005生成的邏輯文件ID組合 作為邏輯文件的唯一 ID,將當(dāng)前生成的查找鍵值作為該分布式文件的索引關(guān)鍵字。在本發(fā)明實(shí)施例中,建立文件的索引關(guān)鍵字后,還可以根據(jù)實(shí)際應(yīng)用情況,對(duì) 存儲(chǔ)的文件的索引關(guān)鍵字進(jìn)行修改。例如,在IPTV多個(gè)現(xiàn)場(chǎng)設(shè)備應(yīng)用中,可以通過(guò)對(duì) 設(shè)備運(yùn)行現(xiàn)場(chǎng)的數(shù)據(jù)進(jìn)行分析,得到針對(duì)每月、每天、每小時(shí)的分布統(tǒng)計(jì)數(shù)據(jù)。然后對(duì) 統(tǒng)計(jì)數(shù)據(jù)進(jìn)行分析,如果數(shù)據(jù)寫(xiě)入的時(shí)間分布是不均衡的,多數(shù)的寫(xiě)入請(qǐng)求時(shí)間重疊, 即在一秒鐘時(shí)間內(nèi),發(fā)生了多次的寫(xiě)入請(qǐng)求,對(duì)百萬(wàn)級(jí)數(shù)據(jù)量的統(tǒng)計(jì)中最高的1秒并發(fā) 寫(xiě)入請(qǐng)求可能達(dá)到400次,對(duì)千萬(wàn)級(jí)數(shù)據(jù)量的統(tǒng)計(jì)中,最高的1秒并發(fā)寫(xiě)入請(qǐng)求可能達(dá) 到2000多次。如果有時(shí)間并發(fā)的寫(xiě)入請(qǐng)求超過(guò)預(yù)定的比率(例如,80%),在這種情 況下,偏移量的位混合選擇就非常關(guān)鍵。因此,在本發(fā)明實(shí)施例中,還可以修改或配置 分布式文件的邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)占用的位,也可以修改或配置邏輯文件標(biāo)識(shí) (和分片文件標(biāo)識(shí))與時(shí)間域數(shù)值混合的順序,從而可以有效避免數(shù)據(jù)沖突。同樣,如果 統(tǒng)計(jì)結(jié)果與時(shí)間域高度相關(guān)的,則可以通過(guò)修改或配置時(shí)間域的位混合范圍及順序,即 修改或配置時(shí)間域按位混合的策略,從而有效避免數(shù)據(jù)沖突,提升數(shù)據(jù)索引的效率。進(jìn) 行修改時(shí),系統(tǒng)的索引查詢功能暫時(shí)失效,并需要重新構(gòu)建新的索引,當(dāng)新的索引創(chuàng)建 完成,系統(tǒng)能夠更加高效的進(jìn)行服務(wù)。需要說(shuō)明的是,雖然本發(fā)明實(shí)施例以分布式文件的存儲(chǔ)為例進(jìn)行說(shuō)明,但并不 限于此,本發(fā)明實(shí)施例提供的技術(shù)方案也可以應(yīng)用于其他文件的存儲(chǔ),例如,如果其他 文件不包括邏輯文件和分片文件,則可以直接以該文件的標(biāo)識(shí)與時(shí)間域數(shù)值合成該文件 的索引關(guān)鍵值,具體實(shí)施過(guò)程與分布式文件相似,在此不再贅述。圖11為根據(jù)本發(fā)明實(shí)施例的海量數(shù)據(jù)記錄的索引建立裝置,如圖11所示,該裝 置主要包括獲取模塊10,用于在接收到新的寫(xiě)入文件請(qǐng)求時(shí),獲取當(dāng)前系統(tǒng)時(shí)間;生 成模塊20,用于根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述寫(xiě)入文件請(qǐng)求消息請(qǐng)求寫(xiě)入的文件的文件 標(biāo)識(shí),生成所述分布式文件的索引關(guān)鍵字;建立模塊30,用于建立所述索引關(guān)鍵字與所 述文件的關(guān)聯(lián)關(guān)系。對(duì)于分布式文件,生成模塊20可以根據(jù)該分布式文件的第一邏輯文件標(biāo)識(shí)和所 述當(dāng)前系統(tǒng)時(shí)間生成索引,在這種情況下,如圖12所示,生成模塊20可以包括獲取子 模塊210,用于根據(jù)所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取第一時(shí)間域參 數(shù);生成子模塊220,用于根據(jù)預(yù)設(shè)的配置策略,生成所述第一邏輯文件標(biāo)識(shí);合成子 模塊230,用于將所述第一時(shí)間域參數(shù)與所述第一邏輯文件標(biāo)識(shí)合成為查找鍵值;查找 子模塊240,用于在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查找到所述查找鍵值或 者所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示的第二時(shí)間域 參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同,則將所述查找鍵值作為所述索引關(guān)鍵字。其中,獲取子模塊210根據(jù)上述總時(shí)長(zhǎng),獲取時(shí)間域中各個(gè)位域的值,其中, 時(shí)間域可以包括年域、小時(shí)域和秒域,例如,如果總時(shí)長(zhǎng)為m年n小時(shí)k秒,則時(shí)間 域中的所述年域用于記錄所述m的值,所述小時(shí)域用于記錄所述n的值,所述秒域用于 記錄所述k的值,m、n和k為大于或等于0的整數(shù)。其中,年域可以占用8位,小時(shí) 域可以占用13-14位,而秒域可以占用13-14位?;蛘?,總時(shí)長(zhǎng)也可以描述為m年n分 鐘k秒,則將圖4中的小時(shí)域替換為分鐘域,由分鐘域來(lái)記錄總時(shí)長(zhǎng)中的n值。然后可以按照配置策略對(duì)時(shí)間域按位混合得到新的時(shí)間域參數(shù);其中,可以采用上述的基于單 位小時(shí)內(nèi)秒數(shù)的均衡策略,也可以上述基于單位年度內(nèi)小時(shí)或分鐘數(shù)的均衡的策略。如果查找子模塊240從數(shù)據(jù)區(qū)中找到與上述查找鍵值相同的值,且獲取子模塊 210獲取的時(shí)間域參數(shù)和生成子模塊220生成的邏輯文件標(biāo)識(shí)與查找到的值指示的時(shí)間域 參數(shù)和邏輯文件標(biāo)識(shí)均相同,則表示該時(shí)間下的該邏輯文件標(biāo)識(shí)已被占用,查找子模塊 240觸發(fā)生成子模塊220對(duì)該邏輯文件標(biāo)識(shí)進(jìn)行修改,生成新的邏輯文件標(biāo)識(shí),將該新的 邏輯文件標(biāo)識(shí)輸入到合成子模塊230,觸發(fā)合成子模塊230合成新的查找鍵值。在本發(fā)明實(shí)施例中,生成模塊20還可以根據(jù)該分布式文件的第一邏輯文件標(biāo) 識(shí)、第二分片文件標(biāo)識(shí)和所述當(dāng)前系統(tǒng)時(shí)間生成索引,在這種情況下,所述生成子模塊 220,還用于根據(jù)預(yù)設(shè)的配置策略,生成所述第一分片文件標(biāo)識(shí);所述合成子模塊230, 用于將所述第一時(shí)間域參數(shù)、所述第一邏輯文件標(biāo)識(shí)與所述第一分片文件標(biāo)識(shí)合成為查 找鍵值;所述查找子模塊240,用于在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查 找到所述查找鍵值,或者所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí)與查找到的查找 鍵值指示的第二時(shí)間域參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同且所述第一時(shí)間域參數(shù)和所 述第一分片文件標(biāo)識(shí)與所述第二時(shí)間域參數(shù)和所述第二分片文件標(biāo)識(shí)不完成相同,則將 所述查找鍵值作為所述索引關(guān)鍵字。同樣,如果查找子模塊240從數(shù)據(jù)區(qū)中找到與上述查找鍵值相同的值,且獲取 子模塊210獲取的時(shí)間域參數(shù)和生成子模塊220生成的分片文件標(biāo)識(shí)與查找到的值指示的 時(shí)間域參數(shù)和邏輯文件標(biāo)識(shí)均相同,則表示該時(shí)間下的該分片文件標(biāo)識(shí)已被占用,查找 子模塊240觸發(fā)生成子模塊220對(duì)該分片文件標(biāo)識(shí)進(jìn)行修改,生成新的分片文件標(biāo)識(shí),將 該新的分片文件標(biāo)識(shí)輸入到合成子模塊230,觸發(fā)合成子模塊230合成新的查找鍵值。其中,建立模塊30在建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系時(shí),可以在記 錄所述文件的內(nèi)存數(shù)據(jù)庫(kù)中申請(qǐng)一個(gè)空的記錄位置,將所述分布式文件的邏輯文件名稱 與所述索引關(guān)鍵字的對(duì)應(yīng)關(guān)系存儲(chǔ)到所述記錄位置,并將所述索引關(guān)鍵字加入到索引數(shù) 據(jù)區(qū)中;并在存儲(chǔ)所述分布式文件的分片文件時(shí),將所述索引關(guān)鍵字作為所述分片文件 實(shí)際存儲(chǔ)的文件名稱。從而實(shí)現(xiàn)所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)。本發(fā)明實(shí)施例提供的上述裝置還可以包括檢測(cè)模塊,用于檢測(cè)有時(shí)間并發(fā)的寫(xiě) 入請(qǐng)求是否超過(guò)預(yù)設(shè)比率,如果是,則觸發(fā)更新模塊;所述更新模塊用于修改或配置分 布式文件的邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)所占的位,和/或,修改或配置按位混合得到 所述第一時(shí)間域參數(shù)的配置策略,觸發(fā)生成模塊20,重新生成所述分布式文件的新的索 引關(guān)鍵字。從以上的描述中,可以看出,在本發(fā)明實(shí)施例中,通過(guò)對(duì)索引關(guān)鍵字的位選擇 混合,并對(duì)不同的應(yīng)用模型進(jìn)行分析,修改適配參數(shù)優(yōu)化索引的效率,保證了系統(tǒng)的及 時(shí)高并發(fā)快速處理能力。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通 用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所 組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將 它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順 序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結(jié)合。 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的 技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的 任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種海量數(shù)據(jù)記錄的索引建立方法,其特征在于,包括 在接收到新的寫(xiě)入文件請(qǐng)求消息時(shí),獲取當(dāng)前系統(tǒng)時(shí)間;根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述寫(xiě)入文件請(qǐng)求消息請(qǐng)求寫(xiě)入的文件的文件標(biāo)識(shí),生成 所述文件的索引關(guān)鍵字;建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述文件為分布式文件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述文件標(biāo)識(shí)包括所述分布式文件 的邏輯文件的第一邏輯文件標(biāo)識(shí);根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述文件標(biāo)識(shí)生成所述索引 關(guān)鍵字包括步驟A:根據(jù)所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取第一時(shí)間域參數(shù);步驟B:根據(jù)預(yù)設(shè)的配置策略,生成所述第一邏輯文件標(biāo)識(shí); 步驟C將所述第一時(shí)間域參數(shù)與所述第一邏輯文件標(biāo)識(shí)合成為查找鍵值; 步驟D:在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查找到所述查找鍵值或者 所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示的第二時(shí)間域參 數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同,則表示所述第一邏輯文件標(biāo)識(shí)有效,將所述第一時(shí) 間域參數(shù)與所述第一邏輯文件標(biāo)識(shí)合成的所述查找鍵值作為所述邏輯文件的唯一 ID,將 所述查找鍵值作為所述索引關(guān)鍵字。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述文件標(biāo)識(shí)包括所述分布式文件 的邏輯文件的第一邏輯文件標(biāo)識(shí)和所述分布式文件的分片文件的第一分片文件標(biāo)識(shí);根 據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述文件標(biāo)識(shí)生成所述索引關(guān)鍵字包括步驟A:根據(jù)所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取第一時(shí)間域參數(shù);步驟B:根據(jù)預(yù)設(shè)的配置策略,生成所述第一邏輯文件標(biāo)識(shí)和所述第一分片文件標(biāo)識(shí);步驟C:將所述第一時(shí)間域參數(shù)、所述第一邏輯文件標(biāo)識(shí)與所述第一分片文件標(biāo)識(shí) 合成為查找鍵值;步驟D:在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查找到所述查找鍵值,或 者所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示的第二時(shí)間域 參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同,且所述第一時(shí)間域參數(shù)和所述第一分片文件標(biāo)識(shí) 與所述第二時(shí)間域參數(shù)和所述第二分片文件標(biāo)識(shí)不完成相同,則表示所述第一邏輯文件 標(biāo)識(shí)與所述第一分片文件標(biāo)識(shí)的組合有效,將所述第一時(shí)間域參數(shù)、所述第一邏輯文件 標(biāo)識(shí)與所述第一分片文件標(biāo)識(shí)合成的所述查找鍵值作為所述分片文件的唯一 ID,將所述 查找鍵值作為所述索引關(guān)鍵字。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,如果所述第一時(shí)間域參數(shù)與所述第二時(shí) 間域參數(shù)相同且所述第一分片文件標(biāo)識(shí)與所述第二分片文件標(biāo)識(shí)相同,則所述方法還包 括修改所述第一分片文件標(biāo)識(shí)的值生成新的分片文件標(biāo)識(shí),然后將所述新的分片文件 標(biāo)識(shí)作為所述第一分片文件標(biāo)識(shí),返回步驟C。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,生成所述第一分片文件標(biāo)識(shí)包括獲取上一次生成的分片文件標(biāo)識(shí)的值,將所述值 增加指定的增量,得到所述第一分片文件標(biāo)識(shí),其中,所述分片文件標(biāo)識(shí)所占的位數(shù)由 所述配置策略確定;修改所述第一分片文件標(biāo)識(shí)的值生成新的分片文件標(biāo)識(shí)包括將所述第一分片文件 標(biāo)識(shí)的值增加所述指定的增量得到所述新的分片文件標(biāo)識(shí)。
7.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,如果所述第一時(shí)間域參數(shù)與所述第 二時(shí)間域參數(shù)相同且所述第一邏輯文件標(biāo)識(shí)與所述第二邏輯文件標(biāo)識(shí)相同,則所述方法 還包括修改所述第一邏輯文件標(biāo)識(shí)的值生成新的邏輯文件標(biāo)識(shí),然后將所述新的邏輯 文件標(biāo)識(shí)作為所述第一邏輯文件標(biāo)識(shí),返回步驟C。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,生成所述第一邏輯文件標(biāo)識(shí)包括獲取上一次生成的邏輯文件標(biāo)識(shí)的值,將所述值 增加指定的增量,得到所述第一邏輯文件標(biāo)識(shí),其中,所述邏輯文件標(biāo)識(shí)所占的位數(shù)由 所述配置策略確定;修改所述第一邏輯文件標(biāo)識(shí)的值生成新的邏輯文件標(biāo)識(shí)包括將所述第一邏輯文件 標(biāo)識(shí)的值增加所述指定的增量得到所述新的邏輯文件標(biāo)識(shí)。
9.根據(jù)權(quán)利要求3-6中任一項(xiàng)所述的方法,其特征在于,所述步驟A包括根據(jù)所述總時(shí)長(zhǎng),獲取時(shí)間域中各個(gè)位域的值,其中,所述時(shí)間域的位域包括年 域、小時(shí)域或分鐘域、和秒域,所述總時(shí)長(zhǎng)為m年η小時(shí)或分鐘k秒,所述年域用于記錄 所述m的值,所述小時(shí)域或分鐘域用于記錄所述η的值,所述秒域用于記錄所述k的值, m、η和k為大于或等于O的整數(shù);按照配置策略對(duì)所述時(shí)間域按位混合得到所述第一時(shí)間域參數(shù),其中,所述配置策 略包括將單位小時(shí)內(nèi)秒數(shù)與所述時(shí)間域?qū)R到相同數(shù)量級(jí),將所述年域,以及所述小 時(shí)域或分鐘域的位移到低位得到所述第一時(shí)間域參數(shù);或者,將單位年度內(nèi)小時(shí)或分鐘 數(shù)與所述時(shí)間域?qū)R到相同數(shù)量級(jí),將所述年域?qū)?yīng)的位移到較低位得到所述第一時(shí)間 域參數(shù)。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在建立所述索引關(guān)鍵字與所述文件的 關(guān)聯(lián)關(guān)系之后,所述方法還包括有時(shí)間相同的并發(fā)的寫(xiě)入請(qǐng)求超過(guò)預(yù)設(shè)比率;修改或配置分布式文件的邏輯文件標(biāo)識(shí)和分片文件標(biāo)識(shí)所占的位,和/或,修改或 配置按位混合得到所述第一時(shí)間域參數(shù)的配置策略,返回所述步驟B,重新生成所述分 布式文件的新的索引關(guān)鍵字。
11.根據(jù)權(quán)利要求3-6中任一項(xiàng)所述的方法,其特征在于,按照折疊取模的方法合成 所述查找鍵值。
12.根據(jù)權(quán)利要求2至6中任一項(xiàng)所述的方法,其特征在于,建立所述索引關(guān)鍵字與 所述文件的關(guān)聯(lián)關(guān)系包括在記錄所述文件的內(nèi)存數(shù)據(jù)庫(kù)中申請(qǐng)一個(gè)空的記錄位置,將所述分布式文件的邏輯 文件名稱與所述索引關(guān)鍵字的對(duì)應(yīng)關(guān)系存儲(chǔ)到所述記錄位置,并將所述索引關(guān)鍵字加入 到索引數(shù)據(jù)區(qū)中;在存儲(chǔ)所述分布式文件的分片文件時(shí),將所述索引關(guān)鍵字作為所述分片文件實(shí)際存 儲(chǔ)的文件名稱。
13.—種海量數(shù)據(jù)記錄的索引建立裝置,其特征在于,包括獲取模塊,用于在接收到新的寫(xiě)入文件請(qǐng)求時(shí),獲取當(dāng)前系統(tǒng)時(shí)間;生成模塊,用于根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述寫(xiě)入文件請(qǐng)求消息請(qǐng)求寫(xiě)入的文件的文件標(biāo)識(shí),生成所述分布式文件的索引關(guān)鍵字;建立模塊,用于建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述文件為分布式文件;所述文件 標(biāo)識(shí)包括所述分布式文件的邏輯文件的第一邏輯文件標(biāo)識(shí);所述生成模塊包括 獲取子模塊,用于根據(jù)所述當(dāng)前系統(tǒng)時(shí)間相對(duì)于預(yù)定時(shí)間經(jīng)歷的總時(shí)長(zhǎng),獲取第一 時(shí)間域參數(shù);生成子模塊,用于根據(jù)預(yù)設(shè)的配置策略,生成所述第一邏輯文件標(biāo)識(shí);合成子模塊,用于將所述第一時(shí)間域參數(shù)與所述第一邏輯文件標(biāo)識(shí)合成為查找鍵值;查找子模塊,用于在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查找到所述查找 鍵值或者所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示的第二 時(shí)間域參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同,則將所述查找鍵值作為所述索引關(guān)鍵字。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述文件標(biāo)識(shí)還包括所述分布式 文件的分片文件的第一分片文件標(biāo)識(shí);所述生成子模塊,還用于根據(jù)預(yù)設(shè)的配置策略,生成所述第一分片文件標(biāo)識(shí); 所述合成子模塊,用于將所述第一時(shí)間域參數(shù)、所述第一邏輯文件標(biāo)識(shí)與所述第一 分片文件標(biāo)識(shí)合成為查找鍵值;所述查找子模塊,用于在記錄的數(shù)據(jù)區(qū)中查找所述查找鍵值,如果不能查找到所述 查找鍵值,或者所述第一時(shí)間域參數(shù)和所述第一邏輯文件標(biāo)識(shí)與查找到的查找鍵值指示 的第二時(shí)間域參數(shù)和第二邏輯文件標(biāo)識(shí)不完成相同且所述第一時(shí)間域參數(shù)和所述第一分 片文件標(biāo)識(shí)與所述第二時(shí)間域參數(shù)和所述第二分片文件標(biāo)識(shí)不完成相同,則將所述查找 鍵值作為所述索引關(guān)鍵字。
全文摘要
本發(fā)明公開(kāi)了一種海量數(shù)據(jù)記錄的索引建立方法及裝置,其中,該方法包括在接收到新的寫(xiě)入文件請(qǐng)求消息時(shí),獲取當(dāng)前系統(tǒng)時(shí)間;根據(jù)所述當(dāng)前系統(tǒng)時(shí)間和所述寫(xiě)入文件請(qǐng)求消息請(qǐng)求寫(xiě)入的文件的文件標(biāo)識(shí),生成所述文件的索引關(guān)鍵字;建立所述索引關(guān)鍵字與所述文件的關(guān)聯(lián)關(guān)系。通過(guò)本發(fā)明,可以實(shí)現(xiàn)海量數(shù)據(jù)存儲(chǔ)的快速定位。
文檔編號(hào)G06F17/30GK102024057SQ201010606358
公開(kāi)日2011年4月20日 申請(qǐng)日期2010年12月24日 優(yōu)先權(quán)日2010年12月24日
發(fā)明者王俊, 王沖, 程寧 申請(qǐng)人:中興通訊股份有限公司