欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)查詢方法、相關(guān)裝置和系統(tǒng)的制作方法

文檔序號(hào):6510533閱讀:168來(lái)源:國(guó)知局
一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)查詢方法、相關(guān)裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)查詢方法、相關(guān)裝置和系統(tǒng),涉及通信【技術(shù)領(lǐng)域】,以減少單點(diǎn)故障和性能瓶頸問(wèn)題。所述方法包括:查詢服務(wù)器讀取數(shù)據(jù);查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);查詢服務(wù)器根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定數(shù)據(jù)塊的標(biāo)識(shí)對(duì)應(yīng)的查詢服務(wù)器標(biāo)識(shí)集合,查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器用以存儲(chǔ)數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,數(shù)據(jù)塊存儲(chǔ)分配策略包含數(shù)據(jù)塊的標(biāo)識(shí)與查詢服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系;若查詢服務(wù)器標(biāo)識(shí)集合中包括所述查詢服務(wù)器的標(biāo)識(shí),則所述查詢服務(wù)器存儲(chǔ)所述數(shù)據(jù);否則所述查詢服務(wù)器不存儲(chǔ)所述數(shù)據(jù)。
【專利說(shuō)明】一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)查詢方法、相關(guān)裝置和系統(tǒng)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)存儲(chǔ)方法和數(shù)據(jù)查詢方法、一種查 詢服務(wù)器、一種查詢客戶端以及一種數(shù)據(jù)存儲(chǔ)和查詢的系統(tǒng)。

【背景技術(shù)】
[0002] 在當(dāng)前的網(wǎng)絡(luò)設(shè)備中,統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)稱URL)過(guò) 濾、網(wǎng)絡(luò)協(xié)議(Internet Protocol,簡(jiǎn)稱IP)信譽(yù)等功能越來(lái)越普及,這些功能需要在海量 數(shù)據(jù)中實(shí)現(xiàn)實(shí)時(shí)快速的查詢處理,例如查詢URL對(duì)應(yīng)的類別信息(例如人文類、論壇類、軍 事類等等),或者查詢IP地址對(duì)應(yīng)的信譽(yù)等級(jí)評(píng)分等。
[0003] 現(xiàn)有技術(shù)中,網(wǎng)絡(luò)設(shè)備的本地緩存中上保存較少部分的熱點(diǎn)數(shù)據(jù),全部的數(shù)據(jù)保 存在遠(yuǎn)程查詢服務(wù)器中,所以網(wǎng)絡(luò)設(shè)備在獲取到數(shù)據(jù)信息后,先在網(wǎng)絡(luò)設(shè)備的本地緩存中 進(jìn)行數(shù)據(jù)查詢,如果找到就直接返回結(jié)果;如果沒(méi)找到,就向遠(yuǎn)程的查詢服務(wù)器進(jìn)行數(shù)據(jù)查 詢。
[0004] 對(duì)于向遠(yuǎn)程的查詢服務(wù)器進(jìn)行數(shù)據(jù)查詢的方法,現(xiàn)有技術(shù)采用分布式網(wǎng)絡(luò)進(jìn)行數(shù) 據(jù)查詢,分布式網(wǎng)絡(luò)包括:多臺(tái)查詢服務(wù)器、分發(fā)服務(wù)器、以及多臺(tái)網(wǎng)絡(luò)設(shè)備(也可稱為查詢 客戶端)。其中,每臺(tái)查詢服務(wù)器只存儲(chǔ)部分?jǐn)?shù)據(jù),所有的查詢服務(wù)器存儲(chǔ)的數(shù)據(jù)合集為全 部數(shù)據(jù);分發(fā)服務(wù)器記錄了哪臺(tái)查詢服務(wù)器存儲(chǔ)了哪些數(shù)據(jù),是所有查詢客戶端發(fā)送查詢 請(qǐng)求的總?cè)肟?。查詢客戶端進(jìn)行數(shù)據(jù)查詢的過(guò)程為:查詢客戶端發(fā)送查詢請(qǐng)求到分發(fā)服務(wù) 器,分發(fā)服務(wù)器查看查詢請(qǐng)求,計(jì)算所要查詢的數(shù)據(jù)存儲(chǔ)在哪臺(tái)查詢服務(wù)器,然后將查詢請(qǐng) 求轉(zhuǎn)發(fā)到對(duì)應(yīng)的查詢服務(wù)器,以在所對(duì)應(yīng)的查詢服務(wù)器中進(jìn)行數(shù)據(jù)查詢。
[0005] 在現(xiàn)有技術(shù)中,查詢客戶端必須首先將查詢請(qǐng)求發(fā)送給分發(fā)服務(wù)器,但是當(dāng)分發(fā) 服務(wù)器失效時(shí),所有的查詢客戶端將無(wú)法進(jìn)行遠(yuǎn)程查詢,單點(diǎn)故障的風(fēng)險(xiǎn)較大,較容易出現(xiàn) 性能瓶頸的問(wèn)題。


【發(fā)明內(nèi)容】

[0006] 本發(fā)明的實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)查詢方法、相關(guān)裝置和系統(tǒng),以減 少單點(diǎn)故障和性能瓶頸問(wèn)題。
[0007] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0008] 第一方面,本發(fā)明提供了一種數(shù)據(jù)存儲(chǔ)方法,包括:
[0009] 查詢服務(wù)器讀取數(shù)據(jù);
[0010] 所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù) 分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);
[0011] 所述查詢服務(wù)器根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述數(shù)據(jù)塊的標(biāo)識(shí)對(duì)應(yīng)的查詢服 務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器用以存 儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含數(shù)據(jù)塊的標(biāo)識(shí)與查詢 服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系;
[0012] 若所述查詢服務(wù)器標(biāo)識(shí)集合中包括所述查詢服務(wù)器的標(biāo)識(shí),則所述查詢服務(wù)器存 儲(chǔ)所述數(shù)據(jù);否則所述查詢服務(wù)器不存儲(chǔ)所述數(shù)據(jù)。
[0013] 在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確 定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括:
[0014] 所述查詢服務(wù)器從所述數(shù)據(jù)中提取部分?jǐn)?shù)據(jù)作為所述數(shù)據(jù)的鍵;
[0015] 所述查詢服務(wù)器獲取所述鍵中指定位置的字符的ASCII碼值,根據(jù)所述ASCII碼 值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述鍵的散列值,根據(jù)所述散列值確定所述 數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0016] 在第一方面的第一種可能的實(shí)現(xiàn)方式中,還提供了第一方面的第二種可能的實(shí)現(xiàn) 方式,所述根據(jù)所述散列值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括:
[0017] 所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù);
[0018] 將所述余數(shù)確定為所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0019] 在第一方面或第一方面的前兩種任一可能的實(shí)現(xiàn)方式中,還提供了第一方面的第 三種可能的實(shí)現(xiàn)方式,所述查詢服務(wù)器讀取數(shù)據(jù)之前,所述方法還包括:接收管理中心服務(wù) 器發(fā)送的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略;所述管理中心服務(wù)器用于更新和維護(hù)數(shù)據(jù) 分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
[0020] 在第一方面或第一方面的前三種任一可能的實(shí)現(xiàn)方式中,還提供了第一方面的第 四種可能的實(shí)現(xiàn)方式,所述查詢服務(wù)器存儲(chǔ)所述數(shù)據(jù)之后,所述方法還包括:接收查詢客戶 端發(fā)送的查詢請(qǐng)求;所述查詢請(qǐng)求攜帶待查詢數(shù)據(jù)的鍵;在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù) 中,查找所述查詢請(qǐng)求中待查詢數(shù)據(jù)的鍵對(duì)應(yīng)的數(shù)據(jù)。
[0021] 在第一方面的第四種可能的實(shí)現(xiàn)方式中,還提供了第一方面的第五種可能的實(shí)現(xiàn) 方式,所述接收查詢客戶端發(fā)送的查詢請(qǐng)求之前,所述方法還包括:
[0022] 接收所述查詢客戶端發(fā)送的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分配策略的 版本信息;
[0023] 通過(guò)比較所述查詢客戶端發(fā)送的數(shù)據(jù)分塊策略的版本信息與所述查詢服務(wù)器中 的數(shù)據(jù)分塊策略的版本信息,以及所述查詢客戶端發(fā)送的數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息 與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息是否一致,確定所述查詢客戶端中 的數(shù)據(jù)分塊策略與所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本是否相同、或所述查詢客戶端 中的數(shù)據(jù)塊存儲(chǔ)分配策略與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本是否相同;
[0024] 若所述查詢客戶端中的數(shù)據(jù)分塊策略與所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版 本不同,則所述查詢服務(wù)器將其保存的數(shù)據(jù)分塊策略發(fā)送給所述查詢客戶端;
[0025] 若所述查詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策略與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ) 分配策略的版本不同,則所述查詢服務(wù)器將其保存的數(shù)據(jù)塊存儲(chǔ)分配策略發(fā)送給所述查詢 客戶端。
[0026] 第二方面,本發(fā)明提供了一種數(shù)據(jù)查詢方法,包括:
[0027] 查詢客戶端獲取待查詢數(shù)據(jù)的鍵;
[0028] 所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略,確定所述待查詢數(shù)據(jù) 所屬數(shù)據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);
[0029] 所述查詢客戶端根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述數(shù)據(jù)塊的標(biāo)識(shí)對(duì)應(yīng)的查詢服 務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器用以存 儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含數(shù)據(jù)塊的標(biāo)識(shí)與查詢 服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系;
[0030] 所述查詢客戶端向所述查詢服務(wù)器標(biāo)識(shí)集合中的至少一個(gè)查詢服務(wù)器標(biāo)識(shí)所表 征的查詢服務(wù)器發(fā)送查詢請(qǐng)求,所述查詢請(qǐng)求攜帶所述待查詢數(shù)據(jù)的鍵,以使得所述查詢 服務(wù)器在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述查詢請(qǐng)求中待查詢數(shù)據(jù)的鍵對(duì)應(yīng)的數(shù) 據(jù)。
[0031] 在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的 鍵和數(shù)據(jù)分塊策略,獲取所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括:
[0032] 所述查詢客戶端獲取所述待查詢數(shù)據(jù)的鍵中指定位置的字符的ASCII碼值,根據(jù) 所述ASCII碼值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述待查詢數(shù)據(jù)的鍵 的散列值,根據(jù)所述散列值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0033] 在第二方面的第一種可能的實(shí)現(xiàn)方式中,還提供了第二方面的第二種可能的實(shí)現(xiàn) 方式,根據(jù)所述散列值獲取所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí):
[0034] 所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù);
[0035] 將所述余數(shù)確定為所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0036] 在第二方面或第二方面的前兩種任一可能的實(shí)現(xiàn)方式中,還提供了第二方面的第 三種可能的實(shí)現(xiàn)方式,所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略,確定所 述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)之前,所述方法還包括:
[0037] 所述查詢客戶端發(fā)送所述查詢客戶端中的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存 儲(chǔ)分配策略的版本信息給查詢服務(wù)器,以使得所述查詢服務(wù)器確定是否需要更新所述查詢 客戶端中的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
[0038] 在第二方面的第三種可能的實(shí)現(xiàn)方式中,還提供了第二方面的第四種可能的實(shí)現(xiàn) 方式,若查詢服務(wù)器確定需要更新所述查詢客戶端的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策 略,所述方法還包括:接收并保存所述查詢服務(wù)器發(fā)送的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配 策略。
[0039] 第三方面,本發(fā)明提供了一種查詢服務(wù)器,包括:
[0040] 讀取模塊,用于讀取數(shù)據(jù);
[0041] 第一確定模塊,用于根據(jù)數(shù)據(jù)分塊策略,確定所述讀取模塊讀取到的數(shù)據(jù)所屬數(shù) 據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);
[0042] 第二確定模塊,用于根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述第一確定模塊得到的數(shù) 據(jù)塊的標(biāo)識(shí)對(duì)應(yīng)的查詢服務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所 表征的查詢服務(wù)器用以存儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略 包含數(shù)據(jù)塊的標(biāo)識(shí)與查詢服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系;
[0043] 存儲(chǔ)模塊,用于若所述第二確定模塊得到的查詢服務(wù)器標(biāo)識(shí)集合中包括所述查詢 服務(wù)器的標(biāo)識(shí),則存儲(chǔ)所述數(shù)據(jù);否則不存儲(chǔ)所述數(shù)據(jù)。
[0044] 在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述第一確定模塊包括:第一確定單元 和第二確定單元;
[0045] 所述第一確定單元,用于從所述讀取模塊中讀取到的數(shù)據(jù)中提取部分?jǐn)?shù)據(jù)作為所 述數(shù)據(jù)的鍵;
[0046] 所述第二確定單元,用于獲取所述第一確定單元得到的鍵中指定位置的字符的 ASCII碼值,根據(jù)所述ASCII碼值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述第一確 定單元得到的鍵的散列值,根據(jù)所述散列值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0047] 在第三方面的第一種可能的實(shí)現(xiàn)方式中,還提供了第三方面的第二種可能的實(shí)現(xiàn) 方式,所述第二確定單元包括:計(jì)算子單元和確定子單元;
[0048] 所述計(jì)算子單元,用于將所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù);
[0049] 所述確定子單元,用于將所述計(jì)算子單元得到的余數(shù)確定為所述數(shù)據(jù)所屬數(shù)據(jù)塊 的標(biāo)識(shí)。
[0050] 在第三方面或第三方面的前兩種任一可能的實(shí)現(xiàn)方式中,還提供了第三種可能的 實(shí)現(xiàn)方式,所述查詢服務(wù)器還包括:接收模塊;
[0051] 所述接收模塊,用于在所述讀取模塊讀取數(shù)據(jù)之前,接收管理中心服務(wù)器發(fā)送的 數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略;所述管理中心服務(wù)器用于更新和維護(hù)數(shù)據(jù)分塊策略 和數(shù)據(jù)塊存儲(chǔ)分配策略。
[0052] 在第三方面或第三方面的前三種任一可能的實(shí)現(xiàn)方式中,還提供了第四種可能的 實(shí)現(xiàn)方式,所述查詢服務(wù)器還包括:查詢模塊;
[0053] 所述接收模塊,還用于在所述存儲(chǔ)模塊存儲(chǔ)所述數(shù)據(jù)之后,接收查詢客戶端發(fā)送 的查詢請(qǐng)求;所述查詢請(qǐng)求攜帶待查詢數(shù)據(jù)的鍵;
[0054] 所述查詢模塊,用于在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述查詢請(qǐng)求中待 查詢數(shù)據(jù)的鍵對(duì)應(yīng)的數(shù)據(jù)。
[0055] 在第三方面的第四種可能的實(shí)現(xiàn)方式中,還提供了第五種可能的實(shí)現(xiàn)方式,所述 查詢服務(wù)器還包括:比較模塊和發(fā)送模塊;
[0056] 所述接收模塊,還用于在接收查詢客戶端發(fā)送的查詢請(qǐng)求之前,接收所述查詢客 戶端發(fā)送的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息;
[0057] 所述比較模塊,用于通過(guò)比較所述接收模塊接收到的所述查詢客戶端發(fā)送的數(shù)據(jù) 分塊策略的版本信息與所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本信息,以及所述接收模塊 接收到的所述查詢客戶端發(fā)送的數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息與所述查詢服務(wù)器中的 數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息是否一致,確定所述查詢客戶端中的數(shù)據(jù)分塊策略與所述 查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本是否相同、或所述查詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策 略與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本是否相同;
[0058] 所述發(fā)送模塊,用于若所述比較模塊得到的所述查詢客戶端中的數(shù)據(jù)分塊策略與 所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本不同,則將所述查詢服務(wù)器保存的數(shù)據(jù)分塊策略 發(fā)送給所述查詢客戶端;若所述比較模塊得到的所述查詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策略 與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本不同,則將所述查詢服務(wù)器保存的數(shù)據(jù) 塊存儲(chǔ)分配策略發(fā)送給所述查詢客戶端。
[0059] 第四方面,本發(fā)明提供了一種查詢客戶端,包括:
[0060] 獲取模塊,用于獲取待查詢數(shù)據(jù)的鍵;
[0061] 第一確定模塊,用于根據(jù)所述獲取模塊得到的所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策 略,確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊 的標(biāo)識(shí);
[0062] 第二確定模塊,用于根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述第一確定模塊得到的數(shù) 據(jù)塊的標(biāo)識(shí)對(duì)應(yīng)的查詢服務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所 表征的查詢服務(wù)器用以存儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略 包含數(shù)據(jù)塊的標(biāo)識(shí)與查詢服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系;
[0063] 發(fā)送模塊,用于向所述第二確定模塊得到的查詢服務(wù)器標(biāo)識(shí)集合中的至少一個(gè)查 詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器發(fā)送查詢請(qǐng)求,所述查詢請(qǐng)求攜帶所述待查詢數(shù)據(jù)的 鍵,以使得所述查詢服務(wù)器在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述待查詢數(shù)據(jù)的鍵 對(duì)應(yīng)的數(shù)據(jù)。
[0064] 在第四方面的第一種可能的實(shí)現(xiàn)方式中,所述第一確定模塊用于獲取所述獲取模 塊得到的待查詢數(shù)據(jù)的鍵中指定位置的字符的ASCII碼值,根據(jù)所述ASCII碼值確定所述 待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,所述第一確定模塊還用于獲取所述獲取模塊得到的 待查詢數(shù)據(jù)的鍵的散列值,根據(jù)所述散列值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0065] 在第四方面的第二種可能的實(shí)現(xiàn)方式中,所述第二確定模塊包括:計(jì)算單元和確 定單元;
[0066] 所述計(jì)算單元,用于將所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù);
[0067] 所述確定單元,用于將所述計(jì)算單元得到的余數(shù)確定為所述待查詢數(shù)據(jù)所屬數(shù)據(jù) 塊的標(biāo)識(shí)。
[0068] 在第四方面或第四種前兩種任一可能的實(shí)現(xiàn)方式中,還提供了第四方面的第三種 可能的實(shí)現(xiàn)方式,所述發(fā)送模塊,還用于在查詢客戶端獲取待查詢數(shù)據(jù)的鍵之前,發(fā)送所述 查詢客戶端中的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息給查詢服務(wù) 器,以使得查詢服務(wù)器確定是否需要更新查詢客戶端中的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配 策略。
[0069] 在第四方面的第三種可能的實(shí)現(xiàn)方式中,還提供了第四方面的第四種可能的實(shí)現(xiàn) 方式,所述查詢客戶端還包括:接收模塊;所述接收模塊,用于若查詢服務(wù)器確定需要更新 查詢客戶端的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略,接收并保存查詢服務(wù)器發(fā)送的數(shù)據(jù)分 塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
[0070] 第五方面,本發(fā)明提供了一種數(shù)據(jù)存儲(chǔ)和查詢的系統(tǒng),包括:至少一個(gè)上述第三方 面、或第三方面的任意一種可能的實(shí)現(xiàn)方式所述的查詢服務(wù)器、至少一個(gè)上述第四方面、或 第四方面的任意一種可能的實(shí)現(xiàn)方式所述的查詢客戶端、以及至少一個(gè)管理中心服務(wù)器;
[0071] 其中,所述管理中心服務(wù)器用于更新和維護(hù)數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策 略,并將所述數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略發(fā)送給所述查詢服務(wù)器。
[0072] 本發(fā)明的實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)查詢方法、相關(guān)裝置和系統(tǒng),查詢 服務(wù)器根據(jù)數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ);查詢客戶端根據(jù)數(shù)據(jù)分 塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略直接向存儲(chǔ)有待查詢數(shù)據(jù)的查詢服務(wù)器發(fā)送查詢請(qǐng)求,以在 所述查詢服務(wù)器所儲(chǔ)存的數(shù)據(jù)中進(jìn)行數(shù)據(jù)查找,減少單點(diǎn)故障和性能瓶頸的問(wèn)題。

【專利附圖】

【附圖說(shuō)明】
[0073] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中 所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí) 施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖 獲得其他的附圖。
[0074] 圖1為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)查詢的系統(tǒng)示意圖;
[0075] 圖2為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)的方法示意圖;
[0076] 圖3為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)的方法示意圖;
[0077] 圖4為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)的方法示意圖;
[0078] 圖5為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)查詢的方法示意圖;
[0079] 圖6為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)的流程示意圖;
[0080] 圖7為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)的流程示意圖;
[0081] 圖8為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)查詢的流程示意圖;
[0082] 圖9為本發(fā)明實(shí)施例提供的一種查詢服務(wù)器的結(jié)構(gòu)示意圖;
[0083] 圖10為本發(fā)明實(shí)施例提供的另一種查詢服務(wù)器的結(jié)構(gòu)示意圖;
[0084] 圖11為本發(fā)明實(shí)施例提供的另一種查詢服務(wù)器的結(jié)構(gòu)示意圖;
[0085] 圖12為本發(fā)明實(shí)施例提供的另一種查詢服務(wù)器的結(jié)構(gòu)示意圖;
[0086] 圖13為本發(fā)明實(shí)施例提供的一種查詢客戶端的結(jié)構(gòu)示意圖;
[0087] 圖14為本發(fā)明實(shí)施例提供的另一種查詢客戶端的結(jié)構(gòu)示意圖;
[0088] 圖15為本發(fā)明實(shí)施例提供的另一種查詢客戶端的結(jié)構(gòu)示意圖;
[0089] 圖16為本發(fā)明實(shí)施例提供的一種查詢客戶端的實(shí)體結(jié)構(gòu)示意圖;
[0090] 圖17為本發(fā)明實(shí)施例提供的一種查詢客戶端的實(shí)體結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0091] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0092] 本發(fā)明提供了一種數(shù)據(jù)存儲(chǔ)和查詢的系統(tǒng),所述系統(tǒng)包括:至少一個(gè)查詢服務(wù)器 和至少一個(gè)查詢客戶端??蛇x地,該系統(tǒng)還包括至少一個(gè)管理中心服務(wù)器,如圖1所示。為 了提高可靠性,所述系統(tǒng)可以包括至少兩個(gè)管理中心服務(wù)器,其中的一個(gè)管理中心服務(wù)器 為主服務(wù)器,其余的為備份服務(wù)器,以便在主管理中心服務(wù)器出現(xiàn)故障時(shí),備份管理中心服 務(wù)器可以繼續(xù)為整個(gè)系統(tǒng)服務(wù),避免造成系統(tǒng)的癱瘓。
[0093] 其中,所述管理中心服務(wù)器用于更新和維護(hù)數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策 略,并將所述數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略發(fā)送給查詢服務(wù)器或查詢客戶端;
[0094] 所述查詢服務(wù)器用于根據(jù)所述數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略對(duì)數(shù)據(jù)進(jìn)行 存儲(chǔ),以便查詢客戶端在存儲(chǔ)有待查詢數(shù)據(jù)的查詢服務(wù)器中進(jìn)行數(shù)據(jù)查詢;
[0095] 所述查詢客戶端用于根據(jù)所述數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略對(duì)數(shù)據(jù),向存 儲(chǔ)有待查詢數(shù)據(jù)的查詢服務(wù)器發(fā)送查詢請(qǐng)求,以便在存儲(chǔ)有待查詢數(shù)據(jù)的查詢服務(wù)器中查 詢到所述待查詢數(shù)據(jù)。
[0096] 針對(duì)上述數(shù)據(jù)存儲(chǔ)和查詢的系統(tǒng),本發(fā)明實(shí)施例提供了 一種數(shù)據(jù)存儲(chǔ)的方法,其 執(zhí)行主體為一個(gè)查詢服務(wù)器,如圖2所示,包括:
[0097] 步驟201、查詢服務(wù)器讀取數(shù)據(jù)。
[0098] 其中,總量數(shù)據(jù)為數(shù)億或者數(shù)十億的海量數(shù)據(jù),所述海量數(shù)據(jù)按照一定的格式進(jìn) 行分條記錄。針對(duì)于一條記錄數(shù)據(jù),查詢服務(wù)器讀取該數(shù)據(jù),并對(duì)該數(shù)據(jù)執(zhí)行后續(xù)步驟 202?206的處理。
[0099] 步驟202、所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí), 所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0100] 其中,所述數(shù)據(jù)分塊策略可以為數(shù)據(jù)分塊算法,所述數(shù)據(jù)分塊算法可以為一個(gè)非 常簡(jiǎn)單的算法,也可以為一個(gè)非常復(fù)雜的方法,當(dāng)然不限于此;所述數(shù)據(jù)分塊策略可以初始 化設(shè)置的,也可以是中心管理服務(wù)器發(fā)送給所述查詢服務(wù)器的,當(dāng)然不限于此。
[0101] 具體的,所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包 括:
[0102] 所述查詢服務(wù)器從所述數(shù)據(jù)中提取部分?jǐn)?shù)據(jù)作為所述數(shù)據(jù)的鍵;
[0103] 所述查詢服務(wù)器獲取所述鍵中指定位置的字符的ASCII碼值,根據(jù)所述ASCII碼 值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述鍵的散列值,根據(jù)所述散列值確定所述 數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0104] 其中,所述根據(jù)所述散列值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括:
[0105] 所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù);
[0106] 將所述余數(shù)確定為所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0107] 可選的,管理中心服務(wù)器可以根據(jù)ASCII碼值對(duì)所述海量數(shù)據(jù)進(jìn)行數(shù)據(jù)分塊,由 于ASCII碼值共有256 (0?255)種可能,所以可將所述海量數(shù)據(jù)分為256塊。具體的,管 理中心服務(wù)器讀取一條數(shù)據(jù),將所述數(shù)據(jù)抽象為鍵值(key-value)對(duì),即從所述數(shù)據(jù)中提取 部分?jǐn)?shù)據(jù)作為所述數(shù)據(jù)的鍵(key),所述數(shù)據(jù)的剩余部分作為值(value);查詢服務(wù)器獲取 到所述數(shù)據(jù)的key,將所述key中指定位置的字符的ASCII碼值作為所述數(shù)據(jù)所屬數(shù)據(jù)塊的 標(biāo)識(shí)(Identify,簡(jiǎn)稱ID),其中,所述指定位置可以是key中的第一個(gè)字符,也可以是最后 一個(gè)字符,也可以是第一個(gè)字符和最后一個(gè)字符中任一字符,也可以是key中至少兩個(gè)指 定位置字符的平均值,當(dāng)然不限于此。
[0108] 或者可選的,管理中心服務(wù)器可以通過(guò)計(jì)算所述數(shù)據(jù)鍵的散列值確定所述數(shù)據(jù)所 屬數(shù)據(jù)塊的標(biāo)識(shí)。其中,所述散列值為將值從一個(gè)大的(可能很大)定義域映射到一個(gè)較小 值域的(數(shù)學(xué))函數(shù),目前常見(jiàn)的散列函數(shù)如MD5、SHA-I等。具體的,管理中心服務(wù)器將所 述數(shù)據(jù)抽象為key-value對(duì),計(jì)算key的散列值,記作散列值(key),然后利用計(jì)算得到的 key的散列值除以總的分塊個(gè)數(shù)η所得到的余數(shù),作為所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),記作分 塊ID ;對(duì)于總的分塊個(gè)數(shù)η可以為根據(jù)數(shù)據(jù)的類型進(jìn)行設(shè)定,也可以為根據(jù)查詢服務(wù)器的 存儲(chǔ)能力進(jìn)行設(shè)定,當(dāng)然不限于此。
[0109] 對(duì)于通過(guò)所述數(shù)據(jù)的key的散列值,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),可根據(jù)下 面的公式計(jì)算得到:
[0110] 分塊ID=散列值(key)除以η的余數(shù),
[0111] 即:分塊ID=散列值(key) %η。
[0112] 其中,所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)可以 用數(shù)字O進(jìn)行表示;也可以為用字母a進(jìn)行表示,當(dāng)然不限于此。
[0113] 步驟203、所述查詢服務(wù)器根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述數(shù)據(jù)塊的標(biāo)識(shí)對(duì)應(yīng) 的查詢服務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù) 器用以存儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含數(shù)據(jù)塊的標(biāo) 識(shí)與查詢服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系。
[0114] 其中,所述數(shù)據(jù)塊存儲(chǔ)分配策略可以為初始配置的,也可以為管理中心服務(wù)器發(fā) 送的;所述數(shù)據(jù)塊存儲(chǔ)分配策略包括:所有數(shù)據(jù)塊的ID與存儲(chǔ)所述數(shù)據(jù)塊的查詢服務(wù)器的 ID之間的映射關(guān)系;查詢服務(wù)器的ID對(duì)應(yīng)一個(gè)查詢服務(wù)器的IP地址。所述數(shù)據(jù)塊存儲(chǔ)分 配策略可以為分塊數(shù)據(jù)表,表中記錄了每塊數(shù)據(jù)分別被存儲(chǔ)到了哪個(gè)查詢服務(wù)器中;也可 以為分塊數(shù)據(jù)圖,圖中記錄了每塊數(shù)據(jù)分別被存儲(chǔ)到了哪個(gè)查詢服務(wù)器,當(dāng)然不限于此。
[0115] 示例的,假設(shè)步驟202得到所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)為0,根據(jù)所述數(shù)據(jù)塊存儲(chǔ) 分配策略得到所述數(shù)據(jù)塊的標(biāo)識(shí)0對(duì)應(yīng)的查詢服務(wù)器標(biāo)識(shí)集合為0和1,即標(biāo)識(shí)為0和1的 查詢服務(wù)器存儲(chǔ)了標(biāo)識(shí)為0的數(shù)據(jù)塊。
[0116] 步驟204、若所述查詢服務(wù)器標(biāo)識(shí)集合中包括所述查詢服務(wù)器的標(biāo)識(shí),則所述查詢 服務(wù)器存儲(chǔ)所述數(shù)據(jù);否則所述查詢服務(wù)器不存儲(chǔ)所述數(shù)據(jù)。
[0117] 示例的,假設(shè)根據(jù)步驟203可以得到,所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)為0,標(biāo)識(shí)為0和 1的查詢服務(wù)器均存儲(chǔ)了所述數(shù)據(jù)所屬數(shù)據(jù)塊。若當(dāng)前查詢服務(wù)器的標(biāo)識(shí)為〇或者1時(shí),即 所述查詢服務(wù)器標(biāo)識(shí)集合中包括所述查詢服務(wù)器的標(biāo)識(shí),則該查詢服務(wù)器存儲(chǔ)所述數(shù)據(jù); 若當(dāng)前查詢服務(wù)器的標(biāo)識(shí)為2,即所述查詢服務(wù)器標(biāo)識(shí)集合中不包括所述查詢服務(wù)器的標(biāo) 識(shí),則當(dāng)前的查詢服務(wù)器不存儲(chǔ)所述數(shù)據(jù)。
[0118] 進(jìn)一步的,針對(duì)上述數(shù)據(jù)存儲(chǔ)方法中所述的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策 略,所述數(shù)據(jù)分塊策略可以為初始化時(shí)配置的,所述數(shù)據(jù)塊存儲(chǔ)分配策略為管理中心服務(wù) 器發(fā)送的。
[0119] 進(jìn)一步的,針對(duì)上述數(shù)據(jù)存儲(chǔ)方法中所述的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策 略,所述查詢服務(wù)器讀取數(shù)據(jù)之前,即在步驟201之前,所述方法還包括:接收管理中心服 務(wù)器發(fā)送的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略;所述管理中心服務(wù)器用于更新和維護(hù)數(shù) 據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
[0120] 查詢服務(wù)器中的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略無(wú)論是初始化配置的,還是 管理中心服務(wù)器發(fā)送的,查詢服務(wù)器都需要對(duì)數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略進(jìn)行保 存,并根據(jù)保存的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略存儲(chǔ)數(shù)據(jù)。
[0121] 在所述查詢服務(wù)器存儲(chǔ)所述數(shù)據(jù)之后,如圖3所示,所述方法還包括:
[0122] 步驟205、接收查詢客戶端發(fā)送的查詢請(qǐng)求;所述查詢請(qǐng)求攜帶待查詢數(shù)據(jù)的鍵;
[0123] 步驟206、在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述查詢請(qǐng)求中待查詢數(shù)據(jù)的 鍵對(duì)應(yīng)的數(shù)據(jù)。
[0124] 進(jìn)一步的,在所述查詢服務(wù)器接收查詢客戶端發(fā)送的查詢請(qǐng)求之前,如圖4所示, 所述方法還包括:
[0125] 步驟401、接收所述查詢客戶端發(fā)送的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分 配策略的版本信息。
[0126] 步驟402、通過(guò)比較所述查詢客戶端發(fā)送的數(shù)據(jù)分塊策略的版本信息與所述查詢 服務(wù)器中的數(shù)據(jù)分塊策略的版本信息,以及所述查詢客戶端發(fā)送的數(shù)據(jù)塊存儲(chǔ)分配策略的 版本信息與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息是否一致,確定所述查詢 客戶端中的數(shù)據(jù)分塊策略與所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本是否相同、或所述查 詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策略與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本是 否相同。
[0127] 步驟403、若所述查詢客戶端中的數(shù)據(jù)分塊策略與所述查詢服務(wù)器中的數(shù)據(jù)分塊 策略的版本不同,則所述查詢服務(wù)器將其保存的數(shù)據(jù)分塊策略發(fā)送給所述查詢客戶端;若 所述查詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策略與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的 版本不同,則所述查詢服務(wù)器將其保存的數(shù)據(jù)塊存儲(chǔ)分配策略發(fā)送給所述查詢客戶端。
[0128] 本發(fā)明的實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)方法,查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略和數(shù)據(jù) 塊存儲(chǔ)分配策略對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),以使得查詢客戶端根據(jù)數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配 策略直接向存儲(chǔ)有待查詢數(shù)據(jù)的查詢服務(wù)器發(fā)送查詢請(qǐng)求,以在所述查詢服務(wù)器所儲(chǔ)存的 數(shù)據(jù)中進(jìn)行數(shù)據(jù)查找,減少單點(diǎn)故障和性能瓶頸的問(wèn)題。
[0129] 本發(fā)明提供了一種數(shù)據(jù)查詢方法,其執(zhí)行主體為查詢客戶端,如圖5所示,包括:
[0130] 步驟501、查詢客戶端獲取待查詢數(shù)據(jù)的鍵。
[0131] 其中,所述待查詢數(shù)據(jù)的鍵為待查詢數(shù)據(jù)中一部分。
[0132] 步驟502、所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略,確定所述待 查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0133] 其中,所述數(shù)據(jù)分塊策略可以為數(shù)據(jù)分塊算法,所述數(shù)據(jù)分塊算法可以為一個(gè)非 常簡(jiǎn)單的算法,也可以為一個(gè)非常復(fù)雜的算法,當(dāng)然不限于此;所述數(shù)據(jù)分塊策略可以初始 化設(shè)置的,也可以是中心管理服務(wù)器發(fā)送給所述查詢服務(wù)器的,當(dāng)然不限于此。
[0134] 具體的,所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略,獲取所述待 查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括:
[0135] 所述查詢客戶端獲取所述待查詢數(shù)據(jù)的鍵中指定位置的字符的ASCII碼值,根據(jù) 所述ASCII碼值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述待查詢數(shù)據(jù)的鍵 的散列值,根據(jù)所述散列值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0136] 其中,所述根據(jù)所述散列值獲取所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括:
[0137] 所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù);
[0138] 將所述余數(shù)確定為所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
[0139] 可選的,管理中心服務(wù)器可以根據(jù)ASCII碼值對(duì)所述海量數(shù)據(jù)進(jìn)行數(shù)據(jù)分塊,由 于ASCII碼值共有256 (0?255)種可能,所以可將所述海量數(shù)據(jù)分為256塊。具體的, 管理中心服務(wù)器讀取一條數(shù)據(jù)記錄,將所述數(shù)據(jù)抽象為key-value對(duì),即從所述數(shù)據(jù)中提 取部分?jǐn)?shù)據(jù)作為所述數(shù)據(jù)的key,所述數(shù)據(jù)的剩余部分作為value ;查詢服務(wù)器通過(guò)獲取到 所述數(shù)據(jù)的key,可以將所述key中指定位置的字符的ASCII碼值作為所述數(shù)據(jù)所屬數(shù)據(jù) 塊的ID,其中,所述指定位置可以是key中的第一個(gè)字符,也可以是最后一個(gè)字符,也可以 是第一個(gè)字符和最后一個(gè)字符中任一字符,也可以是key中至少兩個(gè)指定位置字符的平均 值,當(dāng)然不限于此。
[0140] 或者可選的,管理中心服務(wù)器可以通過(guò)計(jì)算所述數(shù)據(jù)鍵的散列值確定所述數(shù)據(jù)所 屬數(shù)據(jù)塊的標(biāo)識(shí)。其中,所述散列值為將值從一個(gè)大的(可能很大)定義域映射到一個(gè)較小 值域的(數(shù)學(xué))函數(shù),目前常見(jiàn)的散列函數(shù)如MD5、SHA-I等。具體的,管理中心服務(wù)器將所 述數(shù)據(jù)抽象為key-value對(duì),計(jì)算key的散列值,記作散列值(key),然后利用計(jì)算得到的 key的散列值除以總的分塊個(gè)數(shù)η所得到的余數(shù),作為所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),記作分 塊ID,對(duì)于總的分塊個(gè)數(shù)η可以為根據(jù)數(shù)據(jù)的類型進(jìn)行設(shè)定,也可以為根據(jù)查詢服務(wù)器的 存儲(chǔ)能力進(jìn)行設(shè)定,當(dāng)然不限于此;
[0141] 對(duì)于通過(guò)所述數(shù)據(jù)的key的散列值,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),可根據(jù)下 面的公式計(jì)算得到:
[0142] 分塊ID=散列值(key)除以η的余數(shù),
[0143] S卩:分塊 ID=散列值(key) %η。
[0144] 其中,所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)可以 用數(shù)字〇進(jìn)行表示;也可以為用字母a進(jìn)行表示,當(dāng)然不限于此。
[0145] 步驟503、所述查詢客戶端根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述數(shù)據(jù)塊的標(biāo)識(shí)對(duì)應(yīng) 的查詢服務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù) 器用以存儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含數(shù)據(jù)塊的標(biāo) 識(shí)與查詢服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系。
[0146] 其中,所述數(shù)據(jù)塊存儲(chǔ)分配策略可以為初始配置的,也可以為管理中心服務(wù)器發(fā) 送的;所述數(shù)據(jù)塊存儲(chǔ)分配策略包括:所有數(shù)據(jù)塊的ID與存儲(chǔ)所述數(shù)據(jù)塊的查詢服務(wù)器的 ID之間的映射關(guān)系;查詢服務(wù)器的ID對(duì)應(yīng)一個(gè)查詢服務(wù)器的IP地址。所述數(shù)據(jù)塊存儲(chǔ)分 配策略可以為分塊數(shù)據(jù)表,表中記錄了每塊數(shù)據(jù)分別被存儲(chǔ)到了哪個(gè)查詢服務(wù)器中;也可 以為分塊數(shù)據(jù)圖,圖中記錄了每塊數(shù)據(jù)分別被存儲(chǔ)到了哪個(gè)查詢服務(wù)器,當(dāng)然不限于此。
[0147] 可選的,所述查詢客戶端根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述查詢服務(wù)器標(biāo)識(shí)集 合中只包含一個(gè)查詢服務(wù)器標(biāo)識(shí)。
[0148] 或者可選的,所述查詢客戶端根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述查詢服務(wù)器標(biāo) 識(shí)集合中包含至少一個(gè)查詢服務(wù)器標(biāo)識(shí)。
[0149] 示例的,若經(jīng)過(guò)步驟403得到所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)為0,根據(jù)所述數(shù)據(jù)塊存 儲(chǔ)分配策略得到所述數(shù)據(jù)塊的標(biāo)識(shí)〇對(duì)應(yīng)的查詢服務(wù)器標(biāo)識(shí)集合為〇和1,即標(biāo)識(shí)為〇和1 的查詢服務(wù)器存儲(chǔ)了標(biāo)識(shí)為〇的數(shù)據(jù)塊。
[0150] 步驟504、所述查詢客戶端向所述查詢服務(wù)器標(biāo)識(shí)集合中的至少一個(gè)查詢服務(wù)器 標(biāo)識(shí)所表征的查詢服務(wù)器發(fā)送查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶所述待查詢數(shù)據(jù)的鍵,以使 得在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述查詢請(qǐng)求中待查詢數(shù)據(jù)的鍵對(duì)應(yīng)的數(shù)據(jù); 其中,所述查詢服務(wù)器存儲(chǔ)了所述查詢服務(wù)器對(duì)應(yīng)的數(shù)據(jù)塊所包含的數(shù)據(jù)。
[0151] 可選的,若所述查詢服務(wù)器標(biāo)識(shí)集合中只有一個(gè)查詢服務(wù)器標(biāo)識(shí),則查詢客戶端 向所述查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器發(fā)送查詢請(qǐng)求,以使得所述查詢服務(wù)器根據(jù)所 述查詢請(qǐng)求查詢所述待查詢數(shù)據(jù)。
[0152] 或者可選的,若所述查詢服務(wù)器標(biāo)識(shí)集合中包含至少一個(gè)查詢服務(wù)器標(biāo)識(shí),則查 詢客戶端向所述查詢服務(wù)器標(biāo)識(shí)集合中的至少一個(gè)查詢服務(wù)器所表征的查詢服務(wù)器發(fā)送 查詢請(qǐng)求,以使得所述查詢服務(wù)器根據(jù)所述查詢請(qǐng)求查詢所述待查詢數(shù)據(jù)。查詢客戶端可 以選擇向物理距離近的查詢服務(wù)器發(fā)送查詢請(qǐng)求,也可以選擇向響應(yīng)速度快的查詢服務(wù)器 發(fā)送查詢請(qǐng)求,當(dāng)然不限于此。
[0153] 當(dāng)同一數(shù)據(jù)被存儲(chǔ)到多個(gè)查詢服務(wù)器時(shí),當(dāng)其中一臺(tái)查詢服務(wù)器失效時(shí),查詢客 戶端可以向其他查詢服務(wù)器發(fā)送查詢請(qǐng)求,以使得所述查詢服務(wù)器根據(jù)所述查詢請(qǐng)求進(jìn)行 數(shù)據(jù)查詢。
[0154] 進(jìn)一步的,所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略,確定所述 待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)之前,所述方法還包括:
[0155] 所述查詢客戶端發(fā)送所述查詢客戶端中的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存 儲(chǔ)分配策略的版本信息給查詢服務(wù)器,以使得所述查詢服務(wù)器確定是否需要更新所述查詢 客戶端中的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
[0156] 若查詢服務(wù)器確定需要更新所述查詢客戶端的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配 策略,所述方法還包括:接收并保存所述查詢服務(wù)器發(fā)送的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分 配策略。
[0157] 本發(fā)明的實(shí)施例提供了一種數(shù)據(jù)查詢方法,查詢客戶端根據(jù)數(shù)據(jù)分塊策略和數(shù)據(jù) 塊存儲(chǔ)分配策略直接向存儲(chǔ)有待查詢數(shù)據(jù)的查詢服務(wù)器發(fā)送查詢請(qǐng)求,以在所述查詢服務(wù) 器所儲(chǔ)存的數(shù)據(jù)中進(jìn)行數(shù)據(jù)查找,減少單點(diǎn)故障和性能瓶頸的問(wèn)題。
[0158] 實(shí)施例一、
[0159] 下面,根據(jù)上述數(shù)據(jù)存儲(chǔ)和查詢的系統(tǒng),本發(fā)明實(shí)施例提供了一具體實(shí)例,對(duì)上述 數(shù)據(jù)存儲(chǔ)和查詢的方法進(jìn)行詳述。
[0160] 本發(fā)明實(shí)施例中,可以將數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略作為一個(gè)預(yù)先的約 定,以一個(gè)固定的邏輯算法程序預(yù)置到管理中心服務(wù)器、查詢服務(wù)器和查詢客戶端的設(shè)備 中,數(shù)據(jù)塊存儲(chǔ)分配策略為管理中心服務(wù)器根據(jù)所述數(shù)據(jù)分塊策略得到的。在本發(fā)明實(shí)施 例中,管理中心服務(wù)器可以對(duì)數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略進(jìn)行更新,并將更新后 的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略發(fā)送給查詢服務(wù)器,查詢客戶端可以通過(guò)管理中心 服務(wù)器或者查詢服務(wù)器獲取更新后的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。具體的,對(duì)于 數(shù)據(jù)存儲(chǔ)和查詢的方法包括:
[0161] A、管理中心服務(wù)器根據(jù)數(shù)據(jù)分塊策略對(duì)海量數(shù)據(jù)進(jìn)行分塊并構(gòu)造數(shù)據(jù)塊存儲(chǔ)分 配策略,向各個(gè)查詢服務(wù)器發(fā)送所述數(shù)據(jù)塊存儲(chǔ)分配策略。其中,數(shù)據(jù)分塊策略為具體的數(shù) 據(jù)分塊算法,數(shù)據(jù)塊存儲(chǔ)分配策略為具體的分塊數(shù)據(jù)表,如圖6所示,具體步驟包括:
[0162] (Al)確定海量URL數(shù)據(jù)。
[0163] 其中,所述數(shù)據(jù)是按照一定格式存儲(chǔ)的分條記錄,只是記錄的數(shù)目非常龐大,通常 會(huì)達(dá)到數(shù)億到數(shù)十億的規(guī)模。以URL過(guò)濾為例,要提供高品質(zhì)的URL過(guò)濾服務(wù),需要收集海 量的URL,通常是數(shù)億的域名級(jí)和和數(shù)十億的頁(yè)面級(jí)信息,可以對(duì)這些信息進(jìn)行分類,每個(gè) 域名和頁(yè)面都對(duì)應(yīng)到一個(gè)基于內(nèi)容的分類中,例如人文類、論壇類、軍事類、低俗類等等,有 的還會(huì)提供域名的安全信譽(yù)等級(jí)。下面是URL分類數(shù)據(jù)的記錄示例:
[0164] ci. stevens-point. wi. us,1,108, 0, 0, 269041,1,127. 0· 0· 1,0, 0, 1
[0165] lymanestate. org,1,103, 0, 0, 82795, 1,127. 0· 0· 1,0, 0, I
[0166] maxwell, ayell-nz. com,1,223, 0, 0, 178295, 1,127. 0· 0· 1,0, 0, I
[0167] www. qilu. org. cn,1,223, 0, 0, 265411,1,127. 0· 0· 1,0, 0, I
[0168] www. ekozik. com,1,168, 0, 0, 244087, 1,127. 0· 0· 1,0, 0, I
[0169] www. hotell547. c. la,1,131,0, 0, 301843, 1,127. 0· 0· 1,0, 0, I
[0170] nmoi. madeintrust. com, I, 114, 0, 0, 315999, I, 127. 0. 0. I, 0, 0, 1
[0171] kofc. stceciliacalgary. com, 1, 154, 0, 0, 101558, 1, 127. 0. 0. 1, 0, 0, 1
[0172] uponl88. cn-sos. com, I, 220, 0, 0, 108332, 1, 127. 0. 0. 1, 0, 0, 1
[0173] www. tumortherapy. com, I, 136, 0, 0, 11352, 1, 127. 0. 0. 1, 0, 0, 1
[0174] (Α2)將URL數(shù)據(jù)抽象為key-value對(duì),得到URL數(shù)據(jù)的key。
[0175] 如表1所示,對(duì)于上面的數(shù)據(jù),將URL作為key,其他所有信息作為value,則對(duì)上 面示例的數(shù)據(jù)抽象之后的形式變?yōu)椋?br> [0176] 表 1
[0177]

【權(quán)利要求】
1. 一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,包括: 查詢服務(wù)器讀取數(shù)據(jù); 所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù)分塊 策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí); 所述查詢服務(wù)器根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述數(shù)據(jù)塊的標(biāo)識(shí)對(duì)應(yīng)的查詢服務(wù)器 標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器用以存儲(chǔ)所 述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含數(shù)據(jù)塊的標(biāo)識(shí)與查詢服務(wù) 器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系; 若所述查詢服務(wù)器標(biāo)識(shí)集合中包括所述查詢服務(wù)器的標(biāo)識(shí),則所述查詢服務(wù)器存儲(chǔ)所 述數(shù)據(jù);否則所述查詢服務(wù)器不存儲(chǔ)所述數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述查詢服務(wù)器根據(jù)數(shù)據(jù)分塊策略,確定 所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括: 所述查詢服務(wù)器從所述數(shù)據(jù)中提取部分?jǐn)?shù)據(jù)作為所述數(shù)據(jù)的鍵; 所述查詢服務(wù)器獲取所述鍵中指定位置的字符的ASCII碼值,根據(jù)所述ASCII碼值確 定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述鍵的散列值,根據(jù)所述散列值確定所述數(shù)據(jù) 所屬數(shù)據(jù)塊的標(biāo)識(shí)。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述散列值確定所述數(shù)據(jù)所屬 數(shù)據(jù)塊的標(biāo)識(shí)包括: 所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù); 將所述余數(shù)確定為所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
4. 根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于, 所述查詢服務(wù)器讀取數(shù)據(jù)之前,所述方法還包括:接收管理中心服務(wù)器發(fā)送的數(shù)據(jù)分 塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略;所述管理中心服務(wù)器用于更新和維護(hù)數(shù)據(jù)分塊策略和數(shù)據(jù) 塊存儲(chǔ)分配策略。
5. 根據(jù)權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,所述查詢服務(wù)器存儲(chǔ)所述數(shù)據(jù) 之后,所述方法還包括: 接收查詢客戶端發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求攜帶待查詢數(shù)據(jù)的鍵; 在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述待查詢數(shù)據(jù)的鍵對(duì)應(yīng)的數(shù)據(jù)。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述接收查詢客戶端發(fā)送的查詢請(qǐng)求之 前,所述方法還包括: 接收所述查詢客戶端發(fā)送的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分配策略的版本 信息; 通過(guò)比較所述查詢客戶端發(fā)送的數(shù)據(jù)分塊策略的版本信息與所述查詢服務(wù)器中的數(shù) 據(jù)分塊策略的版本信息,以及所述查詢客戶端發(fā)送的數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息與所 述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息是否一致,確定所述查詢客戶端中的數(shù) 據(jù)分塊策略與所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本是否相同、或所述查詢客戶端中的 數(shù)據(jù)塊存儲(chǔ)分配策略與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本是否相同; 若所述查詢客戶端中的數(shù)據(jù)分塊策略與所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本不 同,則所述查詢服務(wù)器將其保存的數(shù)據(jù)分塊策略發(fā)送給所述查詢客戶端; 若所述查詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策略與所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配 策略的版本不同,則所述查詢服務(wù)器將其保存的數(shù)據(jù)塊存儲(chǔ)分配策略發(fā)送給所述查詢客戶 端。
7. -種數(shù)據(jù)查詢方法,其特征在于,包括: 查詢客戶端獲取待查詢數(shù)據(jù)的鍵; 所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略,確定所述待查詢數(shù)據(jù)所屬 數(shù)據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí); 所述查詢客戶端根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述數(shù)據(jù)塊的標(biāo)識(shí)對(duì)應(yīng)的查詢服務(wù)器 標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器用以存儲(chǔ)所 述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含數(shù)據(jù)塊的標(biāo)識(shí)與查詢服務(wù) 器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系; 所述查詢客戶端向所述查詢服務(wù)器標(biāo)識(shí)集合中的至少一個(gè)查詢服務(wù)器標(biāo)識(shí)所表征的 查詢服務(wù)器發(fā)送查詢請(qǐng)求,所述查詢請(qǐng)求攜帶所述待查詢數(shù)據(jù)的鍵,以使得所述查詢服務(wù) 器在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述待查詢數(shù)據(jù)的鍵對(duì)應(yīng)的數(shù)據(jù)。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述查詢客戶端根據(jù)所述待查詢數(shù)據(jù)的 鍵和數(shù)據(jù)分塊策略,獲取所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)包括: 所述查詢客戶端獲取所述待查詢數(shù)據(jù)的鍵中指定位置的字符的ASCII碼值,根據(jù)所述 ASCII碼值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述待查詢數(shù)據(jù)的鍵的散 列值,根據(jù)所述散列值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述根據(jù)所述散列值獲取所述待查詢數(shù) 據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí): 所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù); 將所述余數(shù)確定為所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
10. 根據(jù)權(quán)利要求7-9任一項(xiàng)所述的方法,其特征在于,所述查詢客戶端根據(jù)所述待查 詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略,確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)之前,所述方法還包 括: 所述查詢客戶端發(fā)送所述查詢客戶端中的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分 配策略的版本信息給查詢服務(wù)器,以使得所述查詢服務(wù)器確定是否需要更新所述查詢客戶 端中的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
11. 根據(jù)權(quán)利要求10所述的方法,其特征在于,若查詢服務(wù)器確定需要更新所述查詢 客戶端的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略,所述方法還包括: 接收并保存所述查詢服務(wù)器發(fā)送的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
12. -種查詢服務(wù)器,其特征在于,包括: 讀取模塊,用于讀取數(shù)據(jù); 第一確定模塊,用于根據(jù)數(shù)據(jù)分塊策略,確定所述讀取模塊讀取到的數(shù)據(jù)所屬數(shù)據(jù)塊 的標(biāo)識(shí),所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí); 第二確定模塊,用于根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述第一確定模塊得到的數(shù)據(jù)塊 的標(biāo)識(shí)對(duì)應(yīng)的查詢服務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征 的查詢服務(wù)器用以存儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含 數(shù)據(jù)塊的標(biāo)識(shí)與查詢服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系; 存儲(chǔ)模塊,用于若所述第二確定模塊得到的查詢服務(wù)器標(biāo)識(shí)集合中包括所述查詢服務(wù) 器的標(biāo)識(shí),則存儲(chǔ)所述數(shù)據(jù);否則不存儲(chǔ)所述數(shù)據(jù)。
13. 根據(jù)權(quán)利要求12所述的查詢服務(wù)器,其特征在于,所述第一確定模塊包括:第一確 定單元和第二確定單元; 所述第一確定單元,用于從所述讀取模塊中讀取到的數(shù)據(jù)中提取部分?jǐn)?shù)據(jù)作為所述數(shù) 據(jù)的鍵; 所述第二確定單元,用于獲取所述第一確定單元得到的鍵中指定位置的字符的ASCII 碼值,根據(jù)所述ASCII碼值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,獲取所述第一確定單元 得到的鍵的散列值,根據(jù)所述散列值確定所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
14. 根據(jù)權(quán)利要求13所述的查詢服務(wù)器,其特征在于,所述第二確定單元包括:計(jì)算子 單元和確定子單元; 所述計(jì)算子單元,用于將所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù); 所述確定子單元,用于將所述計(jì)算子單元得到的余數(shù)確定為所述數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo) 識(shí)。
15. 根據(jù)權(quán)利要求12-14任一項(xiàng)所述的查詢服務(wù)器,其特征在于,所述查詢服務(wù)器還包 括:接收1吳塊; 所述接收模塊,用于在所述讀取模塊讀取數(shù)據(jù)之前,接收管理中心服務(wù)器發(fā)送的數(shù)據(jù) 分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略;所述管理中心服務(wù)器用于更新和維護(hù)數(shù)據(jù)分塊策略和數(shù) 據(jù)塊存儲(chǔ)分配策略。
16. 根據(jù)權(quán)利要求15所述的查詢服務(wù)器,其特征在于,所述查詢服務(wù)器還包括:查詢模 塊; 所述接收模塊,還用于在所述存儲(chǔ)模塊存儲(chǔ)所述數(shù)據(jù)之后,接收查詢客戶端發(fā)送的查 詢請(qǐng)求;所述查詢請(qǐng)求攜帶待查詢數(shù)據(jù)的鍵; 所述查詢模塊,用于在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述待查詢數(shù)據(jù)的鍵對(duì) 應(yīng)的數(shù)據(jù)。
17. 根據(jù)權(quán)利要求16所述的查詢服務(wù)器,其特征在于,所述查詢服務(wù)器還包括:比較模 塊和發(fā)送模塊; 所述接收模塊,還用于在接收查詢客戶端發(fā)送的查詢請(qǐng)求之前,接收所述查詢客戶端 發(fā)送的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息; 所述比較模塊,用于通過(guò)比較所述接收模塊接收到的所述查詢客戶端發(fā)送的數(shù)據(jù)分塊 策略的版本信息與所述查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本信息,以及所述接收模塊接收 到的所述查詢客戶端發(fā)送的數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息與所述查詢服務(wù)器中的數(shù)據(jù) 塊存儲(chǔ)分配策略的版本信息是否一致,確定所述查詢客戶端中的數(shù)據(jù)分塊策略與所述查詢 服務(wù)器中的數(shù)據(jù)分塊策略的版本是否相同、或所述查詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策略與 所述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本是否相同; 所述發(fā)送模塊,用于若所述比較模塊得到的所述查詢客戶端中的數(shù)據(jù)分塊策略與所述 查詢服務(wù)器中的數(shù)據(jù)分塊策略的版本不同,則將所述查詢服務(wù)器保存的數(shù)據(jù)分塊策略發(fā)送 給所述查詢客戶端;若所述比較模塊得到的所述查詢客戶端中的數(shù)據(jù)塊存儲(chǔ)分配策略與所 述查詢服務(wù)器中的數(shù)據(jù)塊存儲(chǔ)分配策略的版本不同,則將所述查詢服務(wù)器保存的數(shù)據(jù)塊存 儲(chǔ)分配策略發(fā)送給所述查詢客戶端。
18. -種查詢客戶端,其特征在于,包括: 獲取模塊,用于獲取待查詢數(shù)據(jù)的鍵; 第一確定模塊,用于根據(jù)所述獲取模塊得到的所述待查詢數(shù)據(jù)的鍵和數(shù)據(jù)分塊策略, 確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí),所述數(shù)據(jù)分塊策略用于確定數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo) 識(shí); 第二確定模塊,用于根據(jù)數(shù)據(jù)塊存儲(chǔ)分配策略,確定所述第一確定模塊得到的數(shù)據(jù)塊 的標(biāo)識(shí)對(duì)應(yīng)的查詢服務(wù)器標(biāo)識(shí)集合,所述查詢服務(wù)器標(biāo)識(shí)集合中的查詢服務(wù)器標(biāo)識(shí)所表征 的查詢服務(wù)器用以存儲(chǔ)所述數(shù)據(jù)塊的標(biāo)識(shí)所表征的數(shù)據(jù)塊,所述數(shù)據(jù)塊存儲(chǔ)分配策略包含 數(shù)據(jù)塊的標(biāo)識(shí)與查詢服務(wù)器標(biāo)識(shí)集合的對(duì)應(yīng)關(guān)系; 發(fā)送模塊,用于向所述第二確定模塊得到的查詢服務(wù)器標(biāo)識(shí)集合中的至少一個(gè)查詢服 務(wù)器標(biāo)識(shí)所表征的查詢服務(wù)器發(fā)送查詢請(qǐng)求,所述查詢請(qǐng)求攜帶所述待查詢數(shù)據(jù)的鍵,以 使得所述查詢服務(wù)器在所述查詢服務(wù)器所存儲(chǔ)的數(shù)據(jù)中,查找所述待查詢數(shù)據(jù)的鍵對(duì)應(yīng)的 數(shù)據(jù)。
19. 根據(jù)權(quán)利要求18所述的查詢客戶端,其特征在于, 所述第一確定模塊用于獲取所述獲取模塊得到的待查詢數(shù)據(jù)的鍵中指定位置的字符 的ASCII碼值,根據(jù)所述ASCII碼值確定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí);或者,所述第 一確定模塊還用于獲取所述獲取模塊得到的待查詢數(shù)據(jù)的鍵的散列值,根據(jù)所述散列值確 定所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的標(biāo)識(shí)。
20. 根據(jù)權(quán)利要求19所述的查詢客戶端,其特征在于,所述第二確定模塊包括:計(jì)算單 元和確定單元; 所述計(jì)算單元,用于將所述散列值除以分塊數(shù)據(jù)塊的總個(gè)數(shù)得到余數(shù); 所述確定單元,用于將所述計(jì)算單元得到的余數(shù)確定為所述待查詢數(shù)據(jù)所屬數(shù)據(jù)塊的 標(biāo)識(shí)。
21. 根據(jù)權(quán)利要求18-20任一項(xiàng)所述的查詢客戶端,其特征在于, 所述發(fā)送模塊,還用于在查詢客戶端獲取待查詢數(shù)據(jù)的鍵之前,發(fā)送所述查詢客戶端 中的數(shù)據(jù)分塊策略的版本信息和數(shù)據(jù)塊存儲(chǔ)分配策略的版本信息給查詢服務(wù)器,以使得查 詢服務(wù)器確定是否需要更新查詢客戶端中的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
22. 根據(jù)權(quán)利要求21所述的查詢客戶端,其特征在于,所述查詢客戶端還包括:接收模 塊; 所述接收模塊,用于若查詢服務(wù)器確定需要更新查詢客戶端的數(shù)據(jù)分塊策略和數(shù)據(jù)塊 存儲(chǔ)分配策略,接收并保存查詢服務(wù)器發(fā)送的數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略。
23. -種數(shù)據(jù)存儲(chǔ)和查詢的系統(tǒng),其特征在于,包括:權(quán)利要求12-17任一項(xiàng)所述的至 少一個(gè)查詢服務(wù)器、權(quán)利要求18-22任一項(xiàng)所述的至少一個(gè)查詢客戶端、以及至少一個(gè)管 理中心服務(wù)器; 其中,所述管理中心服務(wù)器用于更新和維護(hù)數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略,并 將所述數(shù)據(jù)分塊策略和數(shù)據(jù)塊存儲(chǔ)分配策略發(fā)送給所述查詢服務(wù)器。
【文檔編號(hào)】G06F17/30GK104424316SQ201310403957
【公開(kāi)日】2015年3月18日 申請(qǐng)日期:2013年9月6日 優(yōu)先權(quán)日:2013年9月6日
【發(fā)明者】李有永 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西安市| 荔波县| 平定县| 英山县| 乌兰察布市| 英德市| 卢湾区| 襄汾县| 顺义区| 安岳县| 乌兰察布市| 宝应县| 东乡县| 辽阳县| 建德市| 张北县| 宝鸡市| 五原县| 项城市| 合肥市| 吉隆县| 青浦区| 双辽市| 深圳市| 定边县| 榆社县| 玉林市| 南丹县| 南通市| 溧阳市| 基隆市| 普兰县| 荥阳市| 肇州县| 桃园市| 延寿县| 新津县| 英德市| 徐汇区| 莎车县| 西充县|