一種數據搜索的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種數據搜索的方法及裝置,用以減少搜索所用時長,提高搜索效率。所述方法包括:將數據分塊存儲到至少兩個設備的存儲介質中;接收到搜索任務后,將所述搜索任務發(fā)送給所述至少兩個設備;指示所述至少兩個設備分別對各自存儲介質中的數據進行搜索。本發(fā)明能夠對數據進行并行搜索操作,實現了負載均衡,提高搜索速度,減少搜索所用時長。
【專利說明】一種數據搜索的方法及裝置
【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,特別涉及一種數據搜索的方法及裝置。
【背景技術】
[0002]在現有技術中,進行搜索時,在存儲空間中采用串行操作的方式進行搜索。例如,在該1000條數據中進行搜索時,將1000條數據逐一與輸入的關鍵字進行匹配,搜索出結果。如此操作,在數據條數數量很大的情況下,使得搜索所用時間過長,搜索效率較低。
【發(fā)明內容】
[0003]本發(fā)明提供一種數據搜索的方法及裝置,用以減少搜索所用時長,提高搜索效率。
[0004]本發(fā)明提供一種數據搜索的方法,其特征在于,包括:
[0005]將數據分塊存儲到至少兩個設備的存儲介質中;
[0006]接收到搜索任務后,將所述搜索任務發(fā)送給所述至少兩個設備;
[0007]指示所述至少兩個設備分別對各自存儲介質中的數據進行搜索。
[0008]其中,所述將數據分塊存儲到至少兩個設備的存儲介質中具體包括:
[0009]將數據進行編號;
[0010]利用編號將數據分塊存儲到所述至少兩個設備的存儲介質中。
[0011]其中,所述方法還包括:
[0012]對于所述至少兩個設備中各個設備,根據所述設備的內核的數量對所述設備的存儲介質進行分區(qū);
[0013]所述將數據分塊存儲到至少兩個設備的存儲介質中具體包括:
[0014]將所述數據分塊存儲到所述至少兩個設備的存儲介質的分區(qū)中。
[0015]其中,所述方法還包括:
[0016]對于所述至少兩個設備中各個設備,將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯;
[0017]所述指示所述至少兩個設備分別對各自存儲介質中的數據進行搜索具體包括:
[0018]指示所述至少兩個設備分別將所述搜索任務分配給各自的內核,調用內核對存儲介質中與所述內核關聯的分區(qū)中數據進行搜索。
[0019]其中,所述將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯具體包括:
[0020]對于所述設備的各個內核,根據所述內核的處理速度將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯;
[0021]所述內核的處理速度與關聯的存儲介質的分區(qū)的大小成正比。
[0022]本發(fā)明還公開了一種數據搜索的裝置,包括:
[0023]數據存儲模塊,用于將數據分塊存儲到至少兩個設備的存儲介質中;
[0024]任務發(fā)送模塊,用于接收到搜索任務后,將所述搜索任務發(fā)送給所述至少兩個設備;
[0025]搜索指示模塊,用于指示所述至少兩個設備分別對各自存儲介質中的數據進行搜索。
[0026]其中,所述數據存儲模塊具體包括:
[0027]編號子模塊,用于將數據進行編號;
[0028]存儲子模塊,用于利用編號將數據分塊存儲到所述至少兩個設備的存儲介質中。
[0029]其中,所述裝置還包括:
[0030]存儲分區(qū)模塊,用于對于所述至少兩個設備中各個設備,根據所述設備的內核的數量對所述設備的存儲介質進行分區(qū);
[0031]所述數據存儲模塊具體用于將所述數據分塊存儲到所述至少兩個設備的存儲介質的分區(qū)中。
[0032]其中,所述裝置還包括:
[0033]內核關聯模塊,用于對于所述至少兩個設備中各個設備,將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯;
[0034]所述搜索指示模塊具體用于指示所述至少兩個設備分別將所述搜索任務分配給各自的內核,調用內核對存儲介質中與所述內核關聯的分區(qū)中數據進行搜索。
[0035]其中,所述內核關聯模塊具體用于對于所述設備的各個內核,根據所述內核的處理速度將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯;
[0036]所述內核的處理速度與關聯的存儲介質的分區(qū)的大小成正比。
[0037]本發(fā)明的有益效果在于:將數據分塊存儲到至少兩個設備的存儲介質中,接收到搜索任務后,將搜索任務發(fā)送給至少兩個設備,指示至少兩個設備分別對各自存儲介質中的數據進行搜索;如此能夠對數據進行并行搜索操作,實現了負載均衡,提高搜索速度,減少搜索所用時長。
[0038]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
[0039]下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
【專利附圖】
【附圖說明】
[0040]附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中:
[0041]圖1為本發(fā)明一實施例中數據搜索的方法的流程圖;
[0042]圖2為本發(fā)明另一實施例中數據搜索的方法的流程圖;
[0043]圖3為本發(fā)明實施例一中數據搜索的方法的流程圖;
[0044]圖4為本發(fā)明一實施例中數據搜索的裝置的框圖;
[0045]圖5為本發(fā)明另一實施例中數據搜索的裝置的框圖;
[0046]圖6為本發(fā)明另一實施例中數據搜索的裝置的框圖。
【具體實施方式】
[0047]以下結合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0048]圖1為本發(fā)明一實施例中數據搜索的方法。該方法包括如下步驟:
[0049]在步驟SlOl中、將數據分塊存儲到至少兩個設備的存儲介質中。
[0050]在一【具體實施方式】中,步驟SlOl可實施為:將數據進行編號;利用編號將數據分塊存儲到至少兩個設備的存儲介質中。
[0051 ] 舉例而言,將數據進行編號,對編號進行哈希運算,采用key-value (鍵值對)的方式存儲數據。
[0052]如此存儲,使得數據編號與數據存儲地址一一對應,能夠方便查找數據,進一步提高搜索速度。
[0053]在步驟S102中、接收到搜索任務后,將搜索任務發(fā)送給至少兩個設備。
[0054]舉例而言,利用兩個物理設備A和B進行存儲,將數據分成兩部分,一部分存儲到物理設備A的存儲介質中,另一部分存儲到物理設備B的存儲介質中。在步驟S102中,接收到搜索任務后,將搜索任務發(fā)送給物理設備A和物理設備B。例如,接收到輸入的用于搜索的關鍵字,將關鍵字發(fā)送給物理設備A和物理設備B。
[0055]在步驟S103中、指示至少兩個設備分別對各自存儲介質中的數據進行搜索。
[0056]舉例而言,指示物理設備A和物理設備B分別對各自存儲介質中的數據進行搜索。
[0057]本發(fā)明的實施例的有益效果在于:將數據分塊存儲到至少兩個設備的存儲介質中,接收到搜索任務后,將搜索任務發(fā)送給至少兩個設備,指示至少兩個設備分別對各自存儲介質中的數據進行搜索;如此能夠對數據進行并行搜索操作,提高搜索數據,減少搜索所用時長。
[0058]圖2為本發(fā)明另一實施例中數據搜索的方法,該方法包括如下步驟:
[0059]在步驟S201中、對于至少兩個設備中各個設備,根據設備的內核的數量對設備的存儲介質進行分區(qū)。
[0060]在一【具體實施方式】中,將設備的存儲介質劃分出與設備的內核數量相同的分區(qū)。如此,便于將分區(qū)與內核對應。該實施方式僅為示例性說明,步驟S201的實施方式不限于此。例如,可以將設備的存儲介質劃分出比設備的內核數量多的分區(qū)。
[0061]舉例而言,利用兩個物理設備A和B進行存儲,物理設備A中具有2個內核,分為為內核Al和內核A2,物理設備B中具有3個內核,分為為內核B1、內核B2和內核B3。對于物理設備A,將物理設備A的存儲介質劃分為2個分區(qū);對于物理設備B,將物理設備B的存儲介質劃分為4個分區(qū)。
[0062]在步驟S202中、對于至少兩個設備中各個設備,將設備的存儲介質的分區(qū)與設備的內核相關聯。
[0063]在一【具體實施方式】中,步驟S203可以實施為:對于設備的各個內核,根據內核的處理速度將設備的存儲介質的分區(qū)與設備的內核相關聯。
[0064]其中,內核的處理速度與關聯的存儲介質的分區(qū)的大小成正比。
[0065]舉例而言,將物理設備A的存儲介質劃分為2個分區(qū),分區(qū)Cl和分區(qū)C2,其中,分區(qū)Cl的空間比分區(qū)C2的空間大。物理設備A中,內核Al的處理速度比內核A2的處理速度快,在步驟S202中將內核Al與分區(qū)Cl關聯,將內核A2與分區(qū)C2關聯。物理設備B的存儲介質劃分為4個空間相同的分區(qū),分別為分區(qū)D1、分區(qū)D2、分區(qū)D3和D4,物理設備B中具有3個內核,內核BI和內核B2處理速度相同,內核B3處理速度比內核BI快。將內核BI與分區(qū)Dl相關聯,將內核B2與分區(qū)D2相關聯,將內核B3與分區(qū)D3和分區(qū)D4相關聯。
[0066]采用上述實施方式,使得內核的處理速度與分區(qū)的空間大小相匹配,能夠充分發(fā)揮內核的功能,進一步提高數據搜索速度。
[0067]在步驟S203中、將數據分塊存儲到至少兩個設備的存儲介質的分區(qū)中。
[0068]在步驟S204中、接收到搜索任務后,將搜索任務發(fā)送給至少兩個設備。
[0069]在步驟S205中、指示至少兩個設備分別將搜索任務分配給各自的內核,調用內核對存儲介質中與內核關聯的分區(qū)中數據進行搜索。
[0070]本發(fā)明的實施例的有益效果在于:采用具有多核的設備對數據進行搜索,在多個內核間進行負載均衡,能夠進一步提高搜索數據,減少搜索所用時長。
[0071]實施例一
[0072]圖3為本發(fā)明實施例一中數據搜索的方法的流程圖,實施例一中方法應用在如下場景:使用兩個設備,分別為物理設備A和物理設備B存儲搜索所用數據,物理設備A具有2個內核,分別為內核AI和內核A 2,物理設備B中具有3個內核,分為為內核B1、內核B 2和內核B3。實施例一中方法執(zhí)行如下步驟:
[0073]在步驟S301中、對于物理設備A,根據內核數量2將物理設備A的存儲介質劃分為2個分區(qū);對于物理設備B,根據內核數量3將物理設備B的存儲介質劃分為3個分區(qū)。
[0074]在步驟S302中、將物理設備A中2個內核分別與2個分區(qū)相關聯,將物理設備B中3個內核分別與3個分區(qū)相關聯。
[0075]在步驟S303中、將數據分塊存儲到物理設備A的2個分區(qū)中,以及物理設備B的3個分區(qū)中。
[0076]在步驟S304中、接收到搜索任務后,將搜索任務中關鍵字發(fā)送給物理設備A和物理設備B。
[0077]在步驟S305中、指示物理設備A將搜索任務分配給內核Al和內核A2,調用內核Al和內核A2使用關鍵字對各自關聯的分區(qū)中數據進行搜索,指示物理設備B將搜索任務分配給內核B1、內核B2和內核B3,調用內核B1、內核B2和內核B3使用關鍵字對各自關聯的分區(qū)中數據進行搜索。
[0078]本發(fā)明的實施例的有益效果在于:采用具有多核的設備對數據進行搜索,在多個內核間進行負載均衡,能夠進一步提高搜索數據,減少搜索所用時長。
[0079]圖4為本發(fā)明的一種數據搜索的裝置的框圖,如圖4所示,裝置包括:
[0080]數據存儲模塊41,用于將數據分塊存儲到至少兩個設備的存儲介質中;
[0081]任務發(fā)送模塊42,用于接收到搜索任務后,將搜索任務發(fā)送給至少兩個設備;
[0082]搜索指示模塊43,用于指示至少兩個設備分別對各自存儲介質中的數據進行搜索。
[0083]在一實施例中,如圖5所示,數據存儲模塊41具體包括:
[0084]編號子模塊51,用于將數據進行編號;
[0085]存儲子模塊52,用于利用編號將數據分塊存儲到至少兩個設備的存儲介質中。
[0086]在一實施例中,如圖6所示,裝置還包括:
[0087]存儲分區(qū)模塊61,用于對于至少兩個設備中各個設備,根據設備的內核的數量對設備的存儲介質進行分區(qū);
[0088]數據存儲模塊41具體用于將數據分塊存儲到至少兩個設備的存儲介質的分區(qū)中。
[0089]在一實施例中,如圖6所示,裝置還包括:
[0090]內核關聯模塊62,用于對于至少兩個設備中各個設備,將設備的存儲介質的分區(qū)與設備的內核相關聯;
[0091]搜索指示模塊43具體用于指示至少兩個設備分別將搜索任務分配給各自的內核,調用內核對存儲介質中與內核關聯的分區(qū)中數據進行搜索。
[0092]在一實施例中,內核關聯模塊具體用于對于設備的各個內核,根據內核的處理速度將設備的存儲介質的分區(qū)與設備的內核相關聯;
[0093]內核的處理速度與關聯的存儲介質的分區(qū)的大小成正比。
[0094]本發(fā)明的有益效果在于:將數據分塊存儲到至少兩個設備的存儲介質中,接收到搜索任務后,將搜索任務發(fā)送給至少兩個設備,指示至少兩個設備分別對各自存儲介質中的數據進行搜索;如此能夠對數據進行并行搜索操作,實現了負載均衡,提高搜索速度,減少搜索所用時長。
[0095]關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
[0096]本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產品的形式。
[0097]本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0098]這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0099]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0100]顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
【權利要求】
1.一種數據搜索的方法,其特征在于,包括: 將數據分塊存儲到至少兩個設備的存儲介質中; 接收到搜索任務后,將所述搜索任務發(fā)送給所述至少兩個設備; 指示所述至少兩個設備分別對各自存儲介質中的數據進行搜索。
2.如權利要求1所述的方法,其特征在于,所述將數據分塊存儲到至少兩個設備的存儲介質中具體包括: 將數據進行編號; 利用編號將數據分塊存儲到所述至少兩個設備的存儲介質中。
3.如權利要求1所述的方法,其特征在于,所述方法還包括: 對于所述至少兩個設備中各個設備,根據所述設備的內核的數量對所述設備的存儲介質進行分區(qū); 所述將數據分塊存儲到至少兩個設備的存儲介質中具體包括: 將所述數據分塊存儲到所述至少兩個設備的存儲介質的分區(qū)中。
4.如權利要求3所述的方法,其特征在于,所述方法還包括: 對于所述至少兩個設備中各個設備,將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯; 所述指示所述至少兩個設備分別對各自存儲介質中的數據進行搜索具體包括: 指示所述至少兩個設備分別將所述搜索任務分配給各自的內核,調用內核對存儲介質中與所述內核關聯的分區(qū)中數據進行搜索。
5.如權利要求4所述的方法,其特征在于,所述將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯具體包括: 對于所述設備的各個內核,根據所述內核的處理速度將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯; 所述內核的處理速度與關聯的存儲介質的分區(qū)的大小成正比。
6.一種數據搜索的裝置,其特征在于,包括: 數據存儲模塊,用于將數據分塊存儲到至少兩個設備的存儲介質中; 任務發(fā)送模塊,用于接收到搜索任務后,將所述搜索任務發(fā)送給所述至少兩個設備; 搜索指示模塊,用于指示所述至少兩個設備分別對各自存儲介質中的數據進行搜索。
7.如權利要求6所述的裝置,其特征在于,所述數據存儲模塊具體包括: 編號子模塊,用于將數據進行編號; 存儲子模塊,用于利用編號將數據分塊存儲到所述至少兩個設備的存儲介質中。
8.如權利要求6所述的裝置,其特征在于,所述裝置還包括: 存儲分區(qū)模塊,用于對于所述至少兩個設備中各個設備,根據所述設備的內核的數量對所述設備的存儲介質進行分區(qū); 所述數據存儲模塊具體用于將所述數據分塊存儲到所述至少兩個設備的存儲介質的分區(qū)中。
9.如權利要求8所述的裝置,其特征在于,所述裝置還包括: 內核關聯模塊,用于對于所述至少兩個設備中各個設備,將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯; 所述搜索指示模塊具體用于指示所述至少兩個設備分別將所述搜索任務分配給各自的內核,調用內核對存儲介質中與所述內核關聯的分區(qū)中數據進行搜索。
10.如權利要求9所述的裝置,其特征在于,所述內核關聯模塊具體用于對于所述設備的各個內核,根據所述內核的處理速度將所述設備的存儲介質的分區(qū)與所述設備的內核相關聯; 所述內核的處理速度與關聯的存儲介質的分區(qū)的大小成正比。
【文檔編號】G06F17/30GK104182534SQ201410433364
【公開日】2014年12月3日 申請日期:2014年8月28日 優(yōu)先權日:2014年8月28日
【發(fā)明者】雷文龍 申請人:無錫天脈聚源傳媒科技有限公司