專利名稱:基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理方法及其系統(tǒng)的制作方法
基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理方法及其系統(tǒng)技術(shù)領(lǐng)域[oooi] 本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理方法及其系統(tǒng)。
背景技術(shù):
搜索引擎在處理每一次查詢的時(shí)候,通常需要經(jīng)過(guò)遍歷倒排鏈一>過(guò)濾一>統(tǒng)計(jì)一>打分一>收集查詢結(jié)果并排序等幾個(gè)關(guān)鍵的執(zhí)行步驟,其搜索流程如下面的C廾偽代碼所示
l search(Query*q)
2{
3docid—t docid;
4while((docid—q一>seek 0)!一一1)//遍歷倒排鏈
5{
6F1lter(docid);//過(guò)濾
7Aggregate(doc 1d);//統(tǒng)計(jì)[oo10] 8ScoreDoc*scoreDoc—Scorer(docid);//打分[ooi1] 9HitCol lector(scoreDoc);//收集查詢結(jié)果并排序[oo12] i0}[oo13] 11 }[ooi4] 在上述代碼段的第5一lo行的while循環(huán)體所對(duì)應(yīng)的遍歷倒排鏈一>過(guò)濾一>統(tǒng)計(jì)一>打分一>收集查詢結(jié)果并排序的過(guò)程中,通常會(huì)創(chuàng)建一個(gè)臨時(shí)的數(shù)據(jù)結(jié)構(gòu)(稱為ScoreDoc,由多個(gè)數(shù)據(jù)結(jié)構(gòu)相同的數(shù)據(jù)塊構(gòu)成)來(lái)存儲(chǔ)與當(dāng)前文檔相關(guān)的匹配信息,它里面會(huì)存儲(chǔ)文檔的id(即文檔標(biāo)識(shí))1排序字段值1統(tǒng)計(jì)字段值1文檔的相關(guān)性分?jǐn)?shù)等信息,ScoreDoc包含有所有可能用到的字段。通過(guò)將所有可能用到的字段(如整型字段key一1一key—n)預(yù)先聲明到ScoreDoc的C廾偽代碼如下所示[oo15] Class ScoreDoc{[oo16,Int key一1;//字段l[ooi7,Int key一2;//字段2[ooi8,Int key一3;//字段3[oo19]......
Int key—n;//字段n
};
在通常的實(shí)現(xiàn)中,每個(gè)文檔在ScoreDoc數(shù)據(jù)結(jié)構(gòu)上的內(nèi)存消耗是定長(zhǎng)的,即使此次查詢沒(méi)有用到其中的某些字段,如統(tǒng)計(jì)字段和排序字段,它們的內(nèi)存空間依然被占用了,這就造成了很大程度上的內(nèi)存資源浪費(fèi)。
例如,如果ScoreDoc中有i00個(gè)字段,每個(gè)字段長(zhǎng)度為4個(gè)字節(jié),那么每個(gè)koreDoc消耗的內(nèi)存將是sizeof (ScoreDoc) = 400字節(jié),另外如果平均每次查詢使用到其 中的20個(gè)字段,那么每個(gè)koreDoc真正需要的內(nèi)存只有20X4 = 80個(gè)字節(jié),可以看出有 80%的中間內(nèi)存被浪費(fèi)了?,F(xiàn)有技術(shù)中另一種改進(jìn)的方案是搜索引擎在編譯時(shí)預(yù)先聲明多種繼 承自 ScoreDoc 數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)ScoreDoc 1、ScoreDoc 1_1、ScoreDoc 1_1_1、 ScoreDocl_l_l_l......,然后在運(yùn)行時(shí)解析用戶的查詢串之后來(lái)決定使用哪種數(shù)據(jù)結(jié)構(gòu)。按照編譯時(shí)定義多種koreDoc的解決方案,可以節(jié)省一定的內(nèi)存,但是靈活性不 夠。還是假設(shè)總共有100個(gè)字段,如果要使用其中的任意兩個(gè)字段而不消耗多余內(nèi)存,那么 需要在編譯時(shí)聲明C12㈨=495(^t&0reD0C類型,如果要使用其中的任意三個(gè)字段,那么需 要聲明C13OO = 323400種koreDoc類型,而且在查詢時(shí)決定使用哪種koreDoc的邏輯也變
得異常復(fù)雜。申請(qǐng)內(nèi)容本申請(qǐng)實(shí)施例提供了一種基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理方法及其系 統(tǒng),用以解決現(xiàn)有搜索引擎分配數(shù)據(jù)塊序列技術(shù)所存在的內(nèi)存空間浪費(fèi)以及技術(shù)實(shí)現(xiàn)復(fù)雜 的問(wèn)題。本申請(qǐng)實(shí)施例提供的技術(shù)方案包括一種基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理方法,包括步驟根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中 數(shù)據(jù)塊的數(shù)量和數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu);根據(jù)確定出的數(shù)據(jù)塊數(shù)量和數(shù)據(jù)結(jié)構(gòu),創(chuàng)建同構(gòu)數(shù)據(jù)塊序列;利用創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列執(zhí)行該數(shù)據(jù)處理請(qǐng)求。一種基于數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理系統(tǒng),包括同構(gòu)數(shù)據(jù)塊序列確定模塊,用于根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定執(zhí)行該數(shù)據(jù)處 理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)量和數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu);同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊,用于根據(jù)所述同構(gòu)數(shù)據(jù)塊序列確定模塊確定出的數(shù)據(jù) 塊數(shù)量和數(shù)據(jù)結(jié)構(gòu),創(chuàng)建同構(gòu)數(shù)據(jù)塊序列;數(shù)據(jù)處理模塊,用于利用所述同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列執(zhí) 行該數(shù)據(jù)處理請(qǐng)求。本申請(qǐng)的上述實(shí)施例中,一方面,由于同構(gòu)數(shù)據(jù)塊序列的創(chuàng)建是根據(jù)接收到的數(shù) 據(jù)處理請(qǐng)求創(chuàng)建的,因此,所創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列中的數(shù)據(jù)塊數(shù)量和數(shù)據(jù)塊的結(jié)構(gòu)與執(zhí) 行該數(shù)據(jù)處理請(qǐng)求所需的數(shù)據(jù)塊數(shù)量和數(shù)據(jù)結(jié)構(gòu)相適應(yīng),從而與現(xiàn)有技術(shù)中使用的為適合 所有查詢條件而設(shè)置的定長(zhǎng)數(shù)據(jù)塊序列相比,減少了內(nèi)存消耗,進(jìn)而提高了查詢性能。另一 方面,由于本申請(qǐng)實(shí)施例中是根據(jù)數(shù)據(jù)處理請(qǐng)求動(dòng)態(tài)創(chuàng)建執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu) 數(shù)據(jù)塊序列,與預(yù)先聲明多種數(shù)據(jù)結(jié)構(gòu)然后在運(yùn)行時(shí)決定使用哪種數(shù)據(jù)結(jié)構(gòu)的現(xiàn)有技術(shù)相 比,省去了為選取數(shù)據(jù)結(jié)構(gòu)時(shí)的復(fù)雜的邏輯判斷過(guò)程,因此可以提高查詢性能,并且技術(shù)實(shí) 現(xiàn)上簡(jiǎn)單易行。
圖1為本申請(qǐng)實(shí)施例提供的基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)創(chuàng)建的查詢流程示意圖2為本申請(qǐng)實(shí)施例提供的基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理系統(tǒng)的結(jié) 構(gòu)示意圖。
具體實(shí)施例方式針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,本申請(qǐng)實(shí)施例提供了一種動(dòng)態(tài)創(chuàng)建同構(gòu)數(shù)據(jù)塊序列的 機(jī)制,本申請(qǐng)實(shí)施例中將該機(jī)制稱為VSA(Varible Slab Allocator,可變長(zhǎng)字節(jié)分配器)機(jī) 制。該機(jī)制可應(yīng)用于搜索引擎或其他應(yīng)用程序,在搜索引擎或其他應(yīng)用程序運(yùn)行時(shí)通過(guò)解 析用戶輸入的數(shù)據(jù)處理請(qǐng)求,動(dòng)態(tài)決定同構(gòu)數(shù)據(jù)塊序列的大小和結(jié)構(gòu),從而減少搜索引擎 或其他應(yīng)用程序在數(shù)據(jù)處理過(guò)程中消耗的內(nèi)存資源,進(jìn)而提高數(shù)據(jù)處理的性能。下面結(jié)合附圖對(duì)本申請(qǐng)的實(shí)施例進(jìn)行詳細(xì)描述。本申請(qǐng)實(shí)施例提供的VSA機(jī)制由三個(gè)主要模塊實(shí)現(xiàn),分別命名為VariableSlab、 VariableSlabAllocatorλ VariableReference0VariableSlab表示一個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊里面的內(nèi)容可以是任意數(shù)據(jù)類 型,也可以是任意數(shù)據(jù)類型的組合,具體的數(shù)據(jù)結(jié)構(gòu)由搜索引擎或其他應(yīng)用程序向 VariableSlabAllocator 聲明后動(dòng)態(tài)確定。VariableSlabAllocator表示分配器,是VSA機(jī)制中的核心模塊,搜索引擎或 其他應(yīng)用程序可以向其聲明泛型數(shù)據(jù),并獲得泛型數(shù)據(jù)的引用VariableReference; VariableSlabAllocator還負(fù)責(zé)構(gòu)建和銷毀VariableSlab對(duì)象。所謂泛型數(shù)據(jù)這里是指任 意類型的數(shù)據(jù),既可以包括計(jì)算機(jī)編程語(yǔ)言中的基本類型,如整型、長(zhǎng)整型、浮點(diǎn)型等,也可 以包括用戶自定義的任意類型,如對(duì)象。VariableReference表示被聲明的數(shù)據(jù)類型的引用,搜索引擎或其他應(yīng)用程序通 過(guò)VariableReference和VariableSlab來(lái)操作對(duì)應(yīng)的數(shù)據(jù)。VSA機(jī)制的基本原理是首先定義VSA機(jī)制中的關(guān)鍵接口,并編寫所涉及的函數(shù)程序,以C++編程語(yǔ)言為 例,定義的關(guān)鍵接口可以包括(1)將VariableSlabAllocator作為類,其中聲明有創(chuàng)建數(shù)據(jù)塊的函數(shù), 釋放數(shù)據(jù)塊的函數(shù),還聲明泛型數(shù)據(jù)VariableReference。以下C++偽代碼表示 VariableSlabAllocator 類的接口定義class VariableSlabAllocator{public:VariableSlab* allocateSlab () ;//創(chuàng)建數(shù)據(jù)塊void deallocateSlab (VariableSlab 女 &varSl£ib) const ;//#方文_|| 塊template<typename T>VariabIeReference<T> * declareVariable (const std:: string &name);
//聲明泛型數(shù)據(jù)};其中,allocateSlabO是創(chuàng)建數(shù)據(jù)塊的函數(shù),該函數(shù)的返回值為數(shù)據(jù)塊VariableSlab 的地址指針;deallocateSlab ()是釋放數(shù)據(jù)塊的函數(shù);VariableReference 是泛型數(shù)據(jù)的引用。 (2)定義數(shù)據(jù)塊VariableSlab的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),即,定義數(shù)據(jù)塊中各數(shù)據(jù)之間的 內(nèi)存地址偏移規(guī)則。以下C++偽代碼表示數(shù)據(jù)塊VariableSlab的接口定義struct VariableSlab{public:void* getSlot(uint32_t variableOffset) {//給定offset,給出對(duì)應(yīng)位置 數(shù)據(jù)的內(nèi)存地址return_variableBuffer+variabIeOffset ;}private char_variableBuffer[1];};其中,getSlotO是內(nèi)存地址獲取函數(shù),通過(guò)該函數(shù)可以根據(jù)給定的內(nèi)存地址偏移
量offset得到對(duì)應(yīng)位置數(shù)據(jù)的內(nèi)存地址。(3)對(duì)泛型數(shù)據(jù)VariableReference進(jìn)行定義,其中聲明有構(gòu)造slab中的對(duì)象的 函數(shù),析構(gòu)(即銷毀)slab中的對(duì)象的函數(shù),從slab中讀數(shù)據(jù)到變量的函數(shù),將變量中的數(shù) 據(jù)寫回slab的函數(shù),其中,slab為數(shù)據(jù)塊的實(shí)例。以下C++偽代碼表示VariableReference 的接口定義
讀數(shù)據(jù)到 valuevoid set(VariableSlab -k slab, const T&value) const ;//value ^ 寫回到 slab};其中,construct ()是構(gòu)造slab中的對(duì)象的函數(shù),destruct ()是析構(gòu)slab中的對(duì)
象的函數(shù),get()是從slab中讀取數(shù)據(jù)并賦值給變量的函數(shù),set()是將變量值寫入slab 的函數(shù)。 然后,就可以利用上述定義的接口以及編制的函數(shù),根據(jù)用戶輸入的查詢請(qǐng)求或
tempIate<typename T> class VariableReference{ public:
VariableReference(uint32_t variableOffset); VariableReference (); public:
void construct (VariableSlab * slab) ;//構(gòu)造 slab 中的對(duì)象 void destruct (VariableSlab ★ slab) ;//豐斤豐勾 slab 巾白勺)(寸| void get (const VariableSlab * slab,T &value)const ;//從 slab 中其他類型的數(shù)據(jù)處理請(qǐng)求,動(dòng)態(tài)構(gòu)造執(zhí)行該請(qǐng)求所需的同構(gòu)數(shù)據(jù)決序列,以便在數(shù)據(jù)處理 過(guò)程中使用該同構(gòu)數(shù)據(jù)塊序列。將本申請(qǐng)的VSA機(jī)制應(yīng)用于搜索引擎時(shí),搜索引擎在接收到用戶輸入的 查詢條件后,通過(guò)向分配器(VariableSlabAllocator)聲明變量獲得變量的引 用(VariableReference),此過(guò)程中,VariableSlabAllocator 內(nèi)部會(huì)將數(shù)據(jù)塊 (VariableSlab)的結(jié)構(gòu)信息保存起來(lái);然后,搜索引擎通過(guò)VariableSlabAllocator構(gòu)造 出同構(gòu)數(shù)據(jù)塊序列,其中,同構(gòu)數(shù)據(jù)塊序列是計(jì)算機(jī)內(nèi)存中一批內(nèi)部結(jié)構(gòu)相同的數(shù)據(jù)塊;最 后,搜索引擎就可以通過(guò)VariableReference來(lái)讀寫VariableSlab,從而對(duì)接收到的查詢 請(qǐng)求進(jìn)行處理。參見(jiàn)圖1,為本申請(qǐng)實(shí)施例提供的基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)創(chuàng)建的查詢流程示意 圖,該流程描述了搜索引擎在獲取到用戶輸入或設(shè)置的查詢請(qǐng)求后,針對(duì)該查詢請(qǐng)求構(gòu)造 用于查詢流程的同構(gòu)數(shù)據(jù)塊序列,并利用構(gòu)建的同構(gòu)數(shù)據(jù)塊序列執(zhí)行查詢操作的過(guò)程,該 過(guò)程包括步驟101、搜索引擎接收用戶輸入的查詢請(qǐng)求,解析出其中的查詢條件,并根據(jù)該 查詢條件確定執(zhí)行該查詢請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列大小和結(jié)構(gòu)(包括同構(gòu)數(shù)據(jù)塊序列 中數(shù)據(jù)塊的數(shù)據(jù)量,以及每個(gè)數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu));該步驟中,搜索引擎可以從用戶輸入的查詢請(qǐng)求中解析出查詢條件,查詢條件可 以由查詢語(yǔ)句來(lái)表達(dá)。例如,對(duì)于商品銷售數(shù)據(jù)庫(kù),查詢語(yǔ)句可以表達(dá)為SELECT salenumber FROM salewhile TIME between 12-01 and 12-31and COLOR = red and SIZE = m and TYPE = jacketS卩,用戶請(qǐng)求查詢數(shù)據(jù)庫(kù)sale中12月份的銷售數(shù)量(salenumber),查詢條件包 括12月1日到12月31日、顏色為紅(COLOR = red)、型號(hào)為M(SIZE = Hi)、商品類型為上 衣(TYPE = jacket),即表示要查詢從12月1日到31日、紅顏色M號(hào)的上衣的銷售數(shù)量。由于用戶輸入的查詢請(qǐng)求中所包括的查詢條件多種多樣,所涉及到的數(shù)據(jù)庫(kù)字段 也因此而有多有少,如上例中的查詢條件涉及到數(shù)據(jù)庫(kù)中的銷售時(shí)間、顏色、型號(hào)、商品類 型等字段,而另一查詢請(qǐng)求中的查詢條件可能僅涉及銷售時(shí)間和商品類型字段(如請(qǐng)求查 詢12月份銷售的上衣的數(shù)量)。通常,如果查詢條件所涉及的字段越多,所需的同構(gòu)數(shù)據(jù)塊序列就越大(即需要 更大的內(nèi)存空間對(duì)查詢請(qǐng)求進(jìn)行處理)。本實(shí)施例中,搜索引擎可以根據(jù)當(dāng)前的查詢請(qǐng)求所 涉及的字段數(shù)量來(lái)決定所需的同構(gòu)數(shù)據(jù)塊序列的大小,使生成的同構(gòu)數(shù)據(jù)塊序列足夠處理 該查詢請(qǐng)求且不會(huì)過(guò)多浪費(fèi)內(nèi)存資源。同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)量與查詢請(qǐng)求所涉及的字段數(shù)量的關(guān)系,可以根 據(jù)字段長(zhǎng)度等因素確定。搜索引擎還可以根據(jù)當(dāng)前的查詢請(qǐng)求所涉及的字段的類型(如 整型、字符型、用戶自定義的類型等)來(lái)確定同構(gòu)數(shù)據(jù)塊序列中每個(gè)數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),例 如,如果查詢請(qǐng)求所涉及的數(shù)據(jù)字段包括整型、字符型,則同構(gòu)數(shù)據(jù)塊序列中每個(gè)數(shù)據(jù)塊的 數(shù)據(jù)結(jié)構(gòu)中也應(yīng)該包括整型、字符型。步驟102、搜索引擎根據(jù)確定出的同構(gòu)數(shù)據(jù)序列的大小和數(shù)據(jù)結(jié)構(gòu),通過(guò)變量名 稱向VariableSlabAllocator聲明數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)所包含的數(shù)據(jù)類型,在聲明的過(guò)程中VariableSlabAllocator記錄下所有數(shù)據(jù)類型的信息,并為每個(gè)聲明的數(shù)據(jù)類型創(chuàng)建一個(gè) 弓丨用 VariableReference ;該步驟中,數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)所包含的數(shù)據(jù)類型,是根據(jù)查詢請(qǐng)求所涉及的字段的 數(shù)據(jù)類型來(lái)確定的,即數(shù)據(jù)塊數(shù)據(jù)結(jié)構(gòu)所包含的數(shù)據(jù)類型中至少要包括查詢請(qǐng)求所涉及的 字段的數(shù)據(jù)類型。步驟103、聲明完成后,搜索引擎通過(guò)調(diào)用VariableSlabAllocator中的數(shù)據(jù)塊創(chuàng) 建函數(shù)接口 allocateSlabO來(lái)調(diào)用相應(yīng)的函數(shù)以在內(nèi)存中創(chuàng)建數(shù)據(jù)塊VariableSlab,創(chuàng) 建的各VariableSlab形成同構(gòu)數(shù)據(jù)塊序列;該步驟中,搜索引擎在創(chuàng)建數(shù)據(jù)塊過(guò)程中,可以在VariableSlabAllocator中 聲明數(shù)據(jù)類型,這些數(shù)據(jù)類型即為查詢請(qǐng)求所涉及的字段的數(shù)據(jù)類型,然后通過(guò)調(diào)用 VariableSlabAllocator中聲明的數(shù)據(jù)塊創(chuàng)建函數(shù)來(lái)生成數(shù)據(jù)塊,由于生成的數(shù)據(jù)塊繼承 了 VariableSlabAllocator中聲明的數(shù)據(jù)結(jié)構(gòu),因此,所生成的數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)將適合 于對(duì)當(dāng)前查詢請(qǐng)求進(jìn)行處理。步驟104、搜索引擎利用同構(gòu)數(shù)據(jù)塊序列中的VariableSlab和 VariableReference來(lái)操作數(shù)據(jù),從而根據(jù)用戶輸入的查詢請(qǐng)求執(zhí)行數(shù)據(jù)查詢流程;步驟105、搜索引擎執(zhí)行完成查詢流程后,釋放VariableSlab,并進(jìn)而釋放同構(gòu)數(shù) 據(jù)塊序列。圖1所示流程中的步驟102 103是查詢流程的準(zhǔn)備階段。以執(zhí)行查詢請(qǐng)求需要 2個(gè)數(shù)據(jù)塊,以及每個(gè)數(shù)據(jù)塊需要包括一個(gè)整型數(shù)據(jù)、一個(gè)浮點(diǎn)型數(shù)據(jù)和一個(gè)用戶自定義類 型的數(shù)據(jù)為例,這一階段所對(duì)應(yīng)的C++偽代碼舉例如下Class XXX ;VariableSlabAllocator * alloc = new VariableSlabAllocator();VariableReference<int> * refl = alloc-> declareVariable<int> ("refl ”);
//聲明一個(gè)int變量VariableReference<float> ~k r e f 2 = alloc- > declareVariable<float> ( "ref2") ;//聲明一個(gè) float 變量VariableReference<XXX> * ref3 = alloc- > declareVariable<XXX> ("ref3"); //聲明一個(gè)XXX變量VariableSlab * slabl = alloc- > allocateSlabO ;//創(chuàng)建一個(gè)數(shù)據(jù)塊VariableSlab * slab2 = alloc- > allocateSlabO ;//創(chuàng)建另外一個(gè)數(shù)據(jù)塊上述偽代碼表示的流程為聲明一個(gè)名稱為XXX的對(duì)象;創(chuàng)建VariableSlabAllocator的一個(gè)名稱為alloc的實(shí)例,由于alloc繼承自 VariableSlabAllocator,后續(xù)可通過(guò)引用 alloc 來(lái)調(diào)用 VariableSlabAllocator 中所聲明 的函數(shù)、變量或數(shù)據(jù)結(jié)構(gòu);通過(guò)引用alloc中的VariableReference聲明一個(gè)整型變量refl,refl是 VariableReference 的一個(gè)實(shí)例;通過(guò)引用alloc中的VariableReference聲明一個(gè)浮點(diǎn)型變量ref2, ref2是 VariableReference 的一個(gè)實(shí)例;
通過(guò)引用alloc中的VariableReference聲明一個(gè)類型為XXX(XXX表示由用戶自 定義的數(shù)據(jù)類型)變量ref3,ref3是VariableReference的一個(gè)實(shí)例;通過(guò)調(diào)用alloc中的數(shù)據(jù)塊創(chuàng)建函數(shù)allocateSlabO創(chuàng)建一個(gè)名稱為slabl的 數(shù)據(jù)塊,在此過(guò)程中,allocateSlab ()函數(shù)調(diào)用構(gòu)造slab中的對(duì)象的函數(shù)construct (),從 而構(gòu)造出數(shù)據(jù)塊slabl的數(shù)據(jù)結(jié)構(gòu);通過(guò)調(diào)用alloc中的數(shù)據(jù)塊創(chuàng)建函數(shù)allocateSlabO創(chuàng)建一個(gè)名稱為slab2的 數(shù)據(jù)塊,在此過(guò)程中,allocateSlab ()函數(shù)調(diào)用構(gòu)造slab中的對(duì)象的函數(shù)construct (),從 而構(gòu)造出數(shù)據(jù)塊slab2的數(shù)據(jù)結(jié)構(gòu)。通過(guò)以上描述可以看出,由于數(shù)據(jù)塊slabl和都是通過(guò)alloc創(chuàng)建的,因此 數(shù)據(jù)塊slabl和Slal^繼承了 alloc中聲明的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包括整型變量refl、 浮點(diǎn)型變量ref2和類型為XXX變量ref3。數(shù)據(jù)塊slabl和slab2構(gòu)成同構(gòu)數(shù)據(jù)塊序列,同 構(gòu)數(shù)據(jù)塊序列中的數(shù)據(jù)塊數(shù)量不限于上述流程所創(chuàng)建的2個(gè),可由搜索引擎根據(jù)查詢流程 的需要?jiǎng)?chuàng)建同構(gòu)數(shù)據(jù)塊序列。圖1所示流程的步驟104 105是查詢流程的執(zhí)行階段。還以上述執(zhí)行查詢請(qǐng)求 需要2個(gè)數(shù)據(jù)塊,以及每個(gè)數(shù)據(jù)塊需要包括一個(gè)整型數(shù)據(jù)、一個(gè)浮點(diǎn)型數(shù)據(jù)和一個(gè)用戶自 定義類型的數(shù)據(jù)為例,這一階段所對(duì)應(yīng)的C++偽代碼舉例如下int aaa ;refl- > get (slabl, aaa) ;// 從 slabl 中讀取 refl 對(duì)應(yīng)的變量值到 aaafloat bbb = 10. Of ;ref2- > set(slab2,bbb) -J/ 將 bbb 的值寫入到 slab2 對(duì)應(yīng)的位置alloc- > deallocate (slabl);alloc- > deallocate (slab2);delete alloc ;上述偽代碼表示的流程為聲明一個(gè)名稱為aaa的整型變量;通過(guò)引用refl調(diào)用其中的get函數(shù)從slabl中讀取refl對(duì)應(yīng)的變量值并賦值給
aaa ;為浮點(diǎn)型變量IAb賦值;通過(guò)引用ref2調(diào)用其中的set函數(shù)將的值寫入到slab2對(duì)應(yīng)的位置;通過(guò)調(diào)用alloc中的數(shù)據(jù)塊釋放函數(shù)銷毀數(shù)據(jù)塊slabl,在此過(guò)程中, deallocate ()函數(shù)調(diào)用構(gòu)造slab中的對(duì)象的函數(shù)destruct ()函數(shù),從而析構(gòu)數(shù)據(jù)塊 slabl的數(shù)據(jù)結(jié)構(gòu);通過(guò)調(diào)用alloc中的數(shù)據(jù)塊釋放函數(shù)銷毀數(shù)據(jù)塊slab2,在此過(guò)程中, deallocate ()函數(shù)調(diào)用構(gòu)造slab中的對(duì)象的函數(shù)destruct ()函數(shù),從而析構(gòu)數(shù)據(jù)塊 slab2的數(shù)據(jù)結(jié)構(gòu);銷毀alloc實(shí)例。通過(guò)以上描述可以看出,本申請(qǐng)實(shí)施例中定義出各種接口和函數(shù)后,在搜索引擎 接收到查詢請(qǐng)求后,可以針對(duì)該查詢請(qǐng)求,利用定義的各種接口和函數(shù)動(dòng)態(tài)創(chuàng)建執(zhí)行該查 詢請(qǐng)求所需容量、數(shù)據(jù)類型的同構(gòu)數(shù)據(jù)塊序列,從而與現(xiàn)有技術(shù)中使用的為適合所有查詢條件而設(shè)置的定長(zhǎng)臨時(shí)數(shù)據(jù)結(jié)構(gòu)相比,減少了內(nèi)存消耗,進(jìn)而提高了查詢性能。另一方面, 由于本申請(qǐng)實(shí)施例中是根據(jù)輸入的查詢請(qǐng)求動(dòng)態(tài)創(chuàng)建執(zhí)行查詢流程所需的同構(gòu)數(shù)據(jù)塊序 列,與預(yù)先聲明多種數(shù)據(jù)結(jié)構(gòu)然后在運(yùn)行時(shí)解析用戶的查詢串之后來(lái)決定使用哪種數(shù)據(jù)結(jié) 構(gòu)的現(xiàn)有技術(shù)相比,省去了為選取數(shù)據(jù)結(jié)構(gòu)時(shí)的復(fù)雜的邏輯判斷過(guò)程,因此可以提高查詢 性能,并且技術(shù)實(shí)現(xiàn)上簡(jiǎn)單易行。還以現(xiàn)有技術(shù)中的koreDoc為例,該&01^00(中有100個(gè)字段,每個(gè)字段長(zhǎng)度為 4個(gè)字節(jié),那么每個(gè)koreDoc消耗的內(nèi)存將是sizeof (ScoreDoc) = 400字節(jié),另外如果平 均每次查詢使用到其中的20個(gè)字段,那么每個(gè)koreDoc真正需要的內(nèi)存只有20X4 = 80 個(gè)字節(jié),有80%的中間內(nèi)存被浪費(fèi)了。而采用本申請(qǐng)實(shí)施例所提供的VSA機(jī)制,根據(jù)用戶 輸入的查詢條件來(lái)動(dòng)態(tài)生成VariableSlab,該VariableSlab中所包含的字段都是執(zhí)行該 查詢條件所用到的字段,而與該查詢條件無(wú)關(guān)的字段則不需要包括在VariableSlab中,這 樣,VariableSlab所消耗的內(nèi)存小于現(xiàn)有技術(shù)中的koreDoc。將本申請(qǐng)實(shí)施例所提供的VSA機(jī)制與現(xiàn)有技術(shù)中預(yù)先聲明多種繼承自koreDoc 數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),然后在運(yùn)行時(shí)根據(jù)用戶查詢條件來(lái)決定使用哪種數(shù)據(jù)結(jié)構(gòu)的技術(shù)方案 相比,由于本申請(qǐng)實(shí)施例中是根據(jù)用戶輸入的查詢條件動(dòng)態(tài)構(gòu)建VariableSlab,而不需要 預(yù)先聲明多種^oreDoc數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),也不需要從中選取合適的子結(jié)構(gòu),因此省去了 復(fù)雜的邏輯判斷過(guò)程。本申請(qǐng)實(shí)施例所提供的上述流程中,每個(gè)操作過(guò)程都可由相應(yīng)的功能模塊實(shí)現(xiàn)。 基于相同的技術(shù)構(gòu)思,本申請(qǐng)實(shí)施例還提供了一種基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處 理系統(tǒng)。該系統(tǒng)中所包含的功能模塊與上述流程中的相應(yīng)操作相對(duì)應(yīng),包括同構(gòu)數(shù)據(jù)塊序列確定模塊201,用于根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定執(zhí)行該數(shù)據(jù) 處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)量和數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu);同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊202,用于根據(jù)同構(gòu)數(shù)據(jù)塊序列確定模塊201確定出的 數(shù)據(jù)塊數(shù)量和數(shù)據(jù)結(jié)構(gòu),創(chuàng)建同構(gòu)數(shù)據(jù)塊序列;數(shù)據(jù)處理模塊203,用于利用同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊202創(chuàng)建的同構(gòu)數(shù)據(jù)塊序 列執(zhí)行該數(shù)據(jù)處理請(qǐng)求。進(jìn)一步該系統(tǒng)還可包括同構(gòu)數(shù)據(jù)塊序列銷毀模塊204,用于在執(zhí)行完成所述數(shù) 據(jù)處理請(qǐng)求后,銷毀創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列。上述系統(tǒng)中的各功能模塊所具有的功能與前述流程中的相應(yīng)流程對(duì)應(yīng),在此不再 贅述。本申請(qǐng)是參照根據(jù)本中請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算 機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能 的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或 多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì) 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖 一個(gè)方框或多個(gè)方框中指定的功能的步驟。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精 神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理方法,其特征在于,包括步驟根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù) 塊的數(shù)量和數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu);根據(jù)確定出的數(shù)據(jù)塊數(shù)量和數(shù)據(jù)結(jié)構(gòu),創(chuàng)建同構(gòu)數(shù)據(jù)塊序列;利用創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列執(zhí)行該數(shù)據(jù)處理請(qǐng)求。
2.如權(quán)利要求1所述的方法,其特征在于,創(chuàng)建同構(gòu)數(shù)據(jù)塊序列,包括根據(jù)確定出的數(shù)據(jù)結(jié)構(gòu)所包含的數(shù)據(jù)類型,向預(yù)先定義的同構(gòu)數(shù)據(jù)塊序列分配器聲明 所述數(shù)據(jù)類型;根據(jù)確定出的數(shù)據(jù)塊數(shù)量,利用所述同構(gòu)數(shù)據(jù)塊序列分配器中聲明的數(shù)據(jù)塊創(chuàng)建函數(shù) 以及聲明的數(shù)據(jù)類型,逐一創(chuàng)建所述同構(gòu)數(shù)據(jù)塊序列中的數(shù)據(jù)塊。
3.如權(quán)利要求2所述的方法,其特征在于,所述同構(gòu)數(shù)據(jù)塊序列分配器還為每個(gè)聲明 的數(shù)據(jù)類型創(chuàng)建對(duì)應(yīng)的引用對(duì)象,所述引用對(duì)象中聲明有創(chuàng)建數(shù)據(jù)塊中的數(shù)據(jù)對(duì)象的函 數(shù);利用所述同構(gòu)數(shù)據(jù)塊序列分配器中聲明的數(shù)據(jù)塊創(chuàng)建函數(shù)以及聲明的數(shù)據(jù)類型來(lái)創(chuàng) 建數(shù)據(jù)塊,具體為調(diào)用所述同構(gòu)數(shù)據(jù)塊序列分配器中聲明的數(shù)據(jù)塊創(chuàng)建函數(shù)并執(zhí)行,所述數(shù)據(jù)塊創(chuàng)建函 數(shù)在執(zhí)行過(guò)程中,調(diào)用所述引用對(duì)象中所聲明的創(chuàng)建數(shù)據(jù)塊中的數(shù)據(jù)對(duì)象的函數(shù)并執(zhí)行, 創(chuàng)建得到數(shù)據(jù)塊。
4.如權(quán)利要求2所述的方法,其特征在于,所述同構(gòu)數(shù)據(jù)塊序列分配器還為每個(gè)聲明 的數(shù)據(jù)類型創(chuàng)建對(duì)應(yīng)的引用對(duì)象,所述引用對(duì)象中聲明有用于實(shí)現(xiàn)從數(shù)據(jù)塊中讀取數(shù)據(jù)的 第一函數(shù)和用于實(shí)現(xiàn)向數(shù)據(jù)塊寫入數(shù)據(jù)的第二函數(shù);利用創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列執(zhí)行數(shù)據(jù)處理請(qǐng)求,包括通過(guò)引用所述引用對(duì)象,調(diào)用其中聲明的第一函數(shù),從數(shù)據(jù)塊中讀取數(shù)據(jù)并賦值給指 定變量;或/和通過(guò)引用所述引用對(duì)象,調(diào)用其中聲明的第二函數(shù),將指定變量的值寫入數(shù)據(jù)塊。
5.如權(quán)利要求2所述的方法,其特征在于,所述同構(gòu)數(shù)據(jù)塊序列分配器還為每個(gè)聲明 的數(shù)據(jù)類型創(chuàng)建對(duì)應(yīng)的引用對(duì)象,所述引用對(duì)象中聲明有析構(gòu)數(shù)據(jù)塊中的數(shù)據(jù)對(duì)象的函 數(shù);執(zhí)行完成所述數(shù)據(jù)處理請(qǐng)求后,還包括逐一銷毀所述同構(gòu)數(shù)據(jù)塊序列中的每個(gè)數(shù)據(jù) 塊,并且在銷毀每個(gè)數(shù)據(jù)塊時(shí),調(diào)用所述同構(gòu)數(shù)據(jù)塊序列分配器中聲明的數(shù)據(jù)塊析構(gòu)函數(shù) 并執(zhí)行,所述數(shù)據(jù)塊析構(gòu)函數(shù)在執(zhí)行過(guò)程中,調(diào)用所述引用對(duì)象中所聲明的析構(gòu)數(shù)據(jù)塊中 的數(shù)據(jù)對(duì)象的函數(shù)并執(zhí)行,創(chuàng)建得到數(shù)據(jù)塊。
6.如權(quán)利要求1所述的方法,其特征在于,執(zhí)行完成所述數(shù)據(jù)處理請(qǐng)求后,還包括銷 毀創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列。
7.如權(quán)利要求1-6任一項(xiàng)所述的方法,其特征在于,根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定 執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)量,具體為解析出所述數(shù)據(jù)處 理請(qǐng)求所涉及的字段的數(shù)量,根據(jù)所述字段的數(shù)量確定執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù) 據(jù)塊序列中數(shù)據(jù)塊的數(shù)量;根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),具體為解析出所述數(shù)據(jù)處理請(qǐng)求所涉及的字段的數(shù)據(jù)類型,根據(jù)所述字段 的數(shù)據(jù)類型確定執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),使數(shù)據(jù) 塊的數(shù)據(jù)結(jié)構(gòu)中至少包括所述字段的數(shù)據(jù)類型。
8.一種基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理系統(tǒng),其特征在于,包括同構(gòu)數(shù)據(jù)塊序列確定模塊,用于根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定執(zhí)行該數(shù)據(jù)處理請(qǐng) 求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)量和數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu);同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊,用于根據(jù)所述同構(gòu)數(shù)據(jù)塊序列確定模塊確定出的數(shù)據(jù)塊數(shù) 量和數(shù)據(jù)結(jié)構(gòu),創(chuàng)建同構(gòu)數(shù)據(jù)塊序列;數(shù)據(jù)處理模塊,用于利用所述同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列執(zhí)行該 數(shù)據(jù)處理請(qǐng)求。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊具體用于根 據(jù)確定出的數(shù)據(jù)結(jié)構(gòu)所包含的數(shù)據(jù)類型,向預(yù)先定義的同構(gòu)數(shù)據(jù)塊序列分配器聲明所述數(shù) 據(jù)類型;以及,根據(jù)確定出的數(shù)據(jù)塊數(shù)量,利用所述同構(gòu)數(shù)據(jù)塊序列分配器中聲明的數(shù)據(jù)塊 創(chuàng)建函數(shù)以及聲明的數(shù)據(jù)類型,逐一創(chuàng)建所述同構(gòu)數(shù)據(jù)塊序列中的數(shù)據(jù)塊。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述同構(gòu)數(shù)據(jù)塊序列創(chuàng)建模塊中的所述同 構(gòu)數(shù)據(jù)塊序列分配器還用于為每個(gè)聲明的數(shù)據(jù)類型創(chuàng)建對(duì)應(yīng)的引用對(duì)象,所述引用對(duì)象 中聲明有用于實(shí)現(xiàn)從數(shù)據(jù)塊中讀取數(shù)據(jù)的第一函數(shù)和用于實(shí)現(xiàn)向數(shù)據(jù)塊寫入數(shù)據(jù)的第二 函數(shù);所述數(shù)據(jù)處理模塊還用于通過(guò)引用所述引用對(duì)象,調(diào)用其中聲明的第一函數(shù),從數(shù)據(jù) 塊中讀取數(shù)據(jù)并賦值給指定變量;或/和,通過(guò)引用所述引用對(duì)象,調(diào)用其中聲明的第二函 數(shù),將指定變量的值寫入數(shù)據(jù)塊。
11.如權(quán)利要求1-10任一項(xiàng)所述的系統(tǒng),其特征在于,所述同構(gòu)數(shù)據(jù)塊序列確定模塊 具體用于解析出所述數(shù)據(jù)處理請(qǐng)求所涉及的字段的數(shù)量,根據(jù)所述字段的數(shù)量確定執(zhí)行 該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)量;以及,解析出所述數(shù)據(jù)處理請(qǐng)求 所涉及的字段的數(shù)據(jù)類型,根據(jù)所述字段的數(shù)據(jù)類型確定執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu) 數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),使數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)中至少包括所述字段的數(shù)據(jù)類型。
12.如權(quán)利要求1-10任一項(xiàng)所述的系統(tǒng),其特征在于,還包括同構(gòu)數(shù)據(jù)塊序列銷毀模塊,用于在執(zhí)行完成所述數(shù)據(jù)處理請(qǐng)求后,銷毀創(chuàng)建的同構(gòu)數(shù) 據(jù)塊序列。
全文摘要
本申請(qǐng)公開了一種基于同構(gòu)數(shù)據(jù)塊序列動(dòng)態(tài)分配的數(shù)據(jù)處理方法及其系統(tǒng),用以解決現(xiàn)有搜索引擎分配數(shù)據(jù)塊序列技術(shù)所存在的內(nèi)存空間浪費(fèi)以及技術(shù)實(shí)現(xiàn)復(fù)雜的問(wèn)題。該方法包括步驟根據(jù)獲取到的數(shù)據(jù)處理請(qǐng)求,確定執(zhí)行該數(shù)據(jù)處理請(qǐng)求所需的同構(gòu)數(shù)據(jù)塊序列中數(shù)據(jù)塊的數(shù)量和數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu);根據(jù)確定出的數(shù)據(jù)塊數(shù)量和數(shù)據(jù)結(jié)構(gòu),創(chuàng)建同構(gòu)數(shù)據(jù)塊序列;利用創(chuàng)建的同構(gòu)數(shù)據(jù)塊序列執(zhí)行該數(shù)據(jù)處理請(qǐng)求。
文檔編號(hào)G06F9/44GK102109988SQ20091026017
公開日2011年6月29日 申請(qǐng)日期2009年12月24日 優(yōu)先權(quán)日2009年12月24日
發(fā)明者張理, 李金輝, 郭瑞杰 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司