專利名稱:一種數(shù)據(jù)庫的數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫的數(shù)據(jù)處理方法。
背景技術(shù):
數(shù)據(jù)庫技術(shù)從20世紀(jì)60年代末期開始發(fā)展至今,已經(jīng)有三十多年,其主要目的是有效地管理和存取大量的數(shù)據(jù)資源。數(shù)據(jù)庫技術(shù)主要研究如何存儲(chǔ)、使用和管理數(shù)據(jù)。數(shù)據(jù)庫技術(shù)是現(xiàn)代信息科學(xué)與技術(shù)的重要組成部分,是計(jì)算機(jī)數(shù)據(jù)處理與信息管理系統(tǒng)的核心。數(shù)據(jù)庫技術(shù)的發(fā)展過程大體上包括層次數(shù)據(jù)庫系統(tǒng)、關(guān)系數(shù)據(jù)庫系統(tǒng)和面向?qū)ο髷?shù)據(jù)庫系統(tǒng)三個(gè)階段,目前的數(shù)據(jù)庫技術(shù)主要處于關(guān)系數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫技術(shù)研究和解決了在計(jì)算機(jī)信息處理過程中,如何有效地存儲(chǔ)和組織大量數(shù)據(jù)的問題,使得在數(shù)據(jù)庫系統(tǒng)中減少數(shù)據(jù)存儲(chǔ)冗余、實(shí)現(xiàn)數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效地存儲(chǔ)數(shù)據(jù)和檢索數(shù)據(jù)。單點(diǎn)故障(Single Point Of Failure),通常是指出現(xiàn)在計(jì)算機(jī)系統(tǒng)及網(wǎng)絡(luò)中的單個(gè)節(jié)點(diǎn)所發(fā)生的故障。在設(shè)計(jì)信息技術(shù)(Information Technology,簡稱IT)基礎(chǔ)設(shè)施時(shí),單點(diǎn)故障應(yīng)盡量避免發(fā)生。其中,“單點(diǎn)”是指節(jié)點(diǎn)設(shè)備只有一臺(tái)。在集群計(jì)算機(jī)系統(tǒng)中,通常將單個(gè)計(jì)算機(jī)稱為節(jié)點(diǎn),并將系統(tǒng)中的作為應(yīng)用服務(wù)器的計(jì)算機(jī)稱為主節(jié)點(diǎn)服務(wù)器,將存放數(shù)據(jù)的計(jì)算機(jī)稱為數(shù)據(jù)節(jié)點(diǎn)服務(wù)器。為避免單點(diǎn)故障的發(fā)生,當(dāng)前大部分設(shè)計(jì)主要針對(duì)主節(jié)點(diǎn)服務(wù)器進(jìn)行“雙機(jī)熱備”,通常做法是增加節(jié)點(diǎn)服務(wù)器,對(duì)主節(jié)點(diǎn)服務(wù)器的磁盤數(shù)據(jù)進(jìn)行備份。但該解決方案使得現(xiàn)有集群計(jì)算機(jī)系統(tǒng)過于注重保護(hù)應(yīng)用服務(wù)器,而忽視了更為重要的存儲(chǔ)設(shè)備。數(shù)據(jù)節(jié)點(diǎn)服務(wù)器通常采用定期導(dǎo)出文件的方式進(jìn)行備份,而未采用多機(jī)熱備,因此,因磁盤等硬件故障而引起的數(shù)據(jù)丟失風(fēng)險(xiǎn)大。一旦存放數(shù)據(jù)的存儲(chǔ)設(shè)備或存儲(chǔ)介質(zhì)損壞,將導(dǎo)致非常嚴(yán)重的損失。目前,在數(shù)據(jù)庫技術(shù)中,數(shù)據(jù)處理大致可以分成兩大類:聯(lián)機(jī)事務(wù)處理OLTP(On-Line Transaction Processing)、聯(lián)機(jī)分析處理 OLAP (On-Line AnalyticalProcessing)。OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的主要應(yīng)用,其主要工作是基本的、日常的事務(wù)處理,例如銀行交易。OLAP是數(shù)據(jù)倉庫系統(tǒng)的主要應(yīng)用,其支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。OLTP每次存取通常為數(shù)十條記錄,而OLAP每次存取通常為上百萬條記錄,且前者的數(shù)據(jù)庫DB (Data Base)大小通常處于100MB (兆字節(jié))到100GB (十億字節(jié))之間,后者的數(shù)據(jù)庫DB大小通常為100GB以上。當(dāng)前的數(shù)據(jù)庫系統(tǒng)在數(shù)據(jù)存儲(chǔ)方式上常常采用“行式”存儲(chǔ)方式對(duì)數(shù)據(jù)進(jìn)行管理,其數(shù)據(jù)關(guān)系模型表現(xiàn)為二維表形式,即使用唯一的行號(hào)和唯一的列號(hào)來標(biāo)識(shí)數(shù)據(jù),在對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)或讀取時(shí),數(shù)據(jù)庫系統(tǒng)必須進(jìn)行全表掃描。因應(yīng)用需要,數(shù)據(jù)庫需頻繁更新數(shù)據(jù),數(shù)據(jù)量大的情況下增加維護(hù)索引等額外工作;查詢時(shí)需要解壓被壓縮的數(shù)據(jù),數(shù)據(jù)量大時(shí)壓縮延遲不可忽視。就目前的數(shù)據(jù)庫發(fā)展速度而言,以行的形式存儲(chǔ)數(shù)據(jù),對(duì)OLTP是自然、方便、快速的;但對(duì)OLAP的支持來說,“行式存儲(chǔ)”對(duì)大量索引等問題并沒有很好的解決辦法,特別是在進(jìn)行大數(shù)據(jù)量的分析時(shí),行式數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)處理效率會(huì)大大降低。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,提高數(shù)據(jù)庫系統(tǒng)對(duì)數(shù)據(jù)的處理效率,并避免單點(diǎn)故障的發(fā)生。為解決以上技術(shù)問題,本發(fā)明實(shí)施例提供一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,包括: 主節(jié)點(diǎn)服務(wù)器接收客戶端的數(shù)據(jù)處理請(qǐng)求,所述數(shù)據(jù)處理請(qǐng)求包括數(shù)據(jù)存儲(chǔ)請(qǐng)求; 所述主節(jié)點(diǎn)服務(wù)器接收待存儲(chǔ)數(shù)據(jù);
所述主節(jié)點(diǎn)服務(wù)器提取所述待存儲(chǔ)數(shù)據(jù)的其中一個(gè)字段的所有字段值,并采用哈希函數(shù)計(jì)算出與所述字段的各個(gè)字段值一一對(duì)應(yīng)的哈希值;
所述主節(jié)點(diǎn)服務(wù)器根據(jù)計(jì)算出的哈希值,確定每個(gè)哈希值所對(duì)應(yīng)的存儲(chǔ)位置;每個(gè)存儲(chǔ)位置對(duì)應(yīng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的一個(gè)主硬盤;所述主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道與多個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接,且所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上設(shè)有至少一個(gè)主硬盤;
所述主節(jié)點(diǎn)服務(wù)器將所述待存儲(chǔ)數(shù)據(jù)和所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值,發(fā)送至與所述主節(jié)點(diǎn)服務(wù)器連接的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器;
所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上;
所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的數(shù)據(jù)進(jìn)行鏡像備份。其中,在一種可實(shí)現(xiàn)方式中,所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上,包括:
所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的每一個(gè)主硬盤設(shè)置一個(gè)標(biāo)簽;
所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器逐一判斷所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值與所述主硬盤的標(biāo)簽是否匹配;
若匹配,則所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器對(duì)與所述標(biāo)簽匹配的哈希值進(jìn)行解析,獲得所述哈希值所對(duì)應(yīng)的字段值,并根據(jù)所述字段值對(duì)所述待存儲(chǔ)數(shù)據(jù)進(jìn)行過濾,獲得所述字段值所在的行數(shù)據(jù),并將所述行數(shù)據(jù)存儲(chǔ)在與所述標(biāo)簽對(duì)應(yīng)的主硬盤中;
若不匹配,則所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)刪除。進(jìn)一步地,所述數(shù)據(jù)處理請(qǐng)求還包括數(shù)據(jù)檢索請(qǐng)求。所述主節(jié)點(diǎn)服務(wù)器接收所述數(shù)據(jù)檢索請(qǐng)求后,判斷所述數(shù)據(jù)檢索請(qǐng)求中是否含有查詢地址;
若所述主節(jié)點(diǎn)服務(wù)器判定所述數(shù)據(jù)檢索請(qǐng)求中含有查詢地址,則所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述查詢地址對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中;所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器;所述主節(jié)點(diǎn)服務(wù)器將所述檢索得到的數(shù)據(jù)發(fā)送至所述客戶端; 若所述主節(jié)點(diǎn)服務(wù)器判定所述數(shù)據(jù)檢索請(qǐng)求中不含有查詢地址,則所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述主節(jié)點(diǎn)服務(wù)器連接的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器;所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,分別對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器;所述主節(jié)點(diǎn)服務(wù)器將所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器檢索得到的數(shù)據(jù)進(jìn)行匯總后,發(fā)送至所述客戶端。更進(jìn)一步地,所述主節(jié)點(diǎn)服務(wù)器連接有備份節(jié)點(diǎn)服務(wù)器。所述備份節(jié)點(diǎn)服務(wù)器對(duì)所述主節(jié)點(diǎn)服務(wù)器中的數(shù)據(jù)和信令進(jìn)行實(shí)時(shí)備份。本發(fā)明提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,主節(jié)點(diǎn)服務(wù)器將待存儲(chǔ)數(shù)據(jù)中的其中一個(gè)字段的所有字段值提取出來,并通過對(duì)各個(gè)字段值的處理,得到各個(gè)字段值所對(duì)應(yīng)的哈希值;將所述待存儲(chǔ)數(shù)據(jù)的各行數(shù)據(jù),分別存儲(chǔ)在與主節(jié)點(diǎn)服務(wù)器連接的各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中,提高了數(shù)據(jù)寫入效率;進(jìn)一步地,本發(fā)明提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法還進(jìn)一步將各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的數(shù)據(jù)進(jìn)行備份,避免數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)生單點(diǎn)故障;本發(fā)明提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法還可以進(jìn)行數(shù)據(jù)查詢,且進(jìn)一步對(duì)主節(jié)點(diǎn)服務(wù)器的磁盤數(shù)據(jù)和流通信令進(jìn)行實(shí)時(shí)備份,當(dāng)主節(jié)點(diǎn)服務(wù)器在發(fā)生故障進(jìn)行主備切換時(shí),備份節(jié)點(diǎn)服務(wù)器具有與主節(jié)點(diǎn)服務(wù)器相同的數(shù)據(jù)和狀態(tài),保證了切換的無縫進(jìn)行。
圖1是本發(fā)明提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法的第一實(shí)施例的方法流程 圖2是無共享(Share Nothing)架構(gòu)的結(jié)構(gòu)示意 圖3是本發(fā)明提供的第一實(shí)施例中根據(jù)哈希值進(jìn)行數(shù)據(jù)存儲(chǔ)的一種實(shí)現(xiàn)方法流程圖; 圖4是本發(fā)明提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法的第二實(shí)施例的方法流程 圖5是本發(fā)明提供的第二實(shí)施例的第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)生故障時(shí),主節(jié)點(diǎn)服務(wù)器所執(zhí)行的數(shù)據(jù)庫的數(shù)據(jù)處理方法流程 圖6是本發(fā)明提供的第二實(shí)施例的第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器恢復(fù)工作時(shí)的數(shù)據(jù)庫的數(shù)據(jù)處理方法流程 圖7是本發(fā)明提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法的第三實(shí)施例的方法流程 圖8是本發(fā)明提供的第三實(shí)施例中的各個(gè)節(jié)點(diǎn)服務(wù)器的連接結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。參見圖1,是本發(fā)明提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法的第一實(shí)施例的方法流程圖。在第一實(shí)施例中,所述的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法主要包括以下步驟:
步驟SlOl:主節(jié)點(diǎn)服務(wù)器接收客戶端的數(shù)據(jù)處理請(qǐng)求,所述數(shù)據(jù)處理請(qǐng)求包括數(shù)據(jù)存儲(chǔ)請(qǐng)求。具體實(shí)施時(shí),客戶端向主節(jié)點(diǎn)服務(wù)器發(fā)送數(shù)據(jù)處理請(qǐng)求;主節(jié)點(diǎn)服務(wù)器根據(jù)該客戶端所發(fā)送的數(shù)據(jù)處理請(qǐng)求,來執(zhí)行下一步的數(shù)據(jù)處理。其中,當(dāng)所述數(shù)據(jù)處理請(qǐng)求為數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),即所述客戶端對(duì)主節(jié)點(diǎn)服務(wù)器發(fā)送待存儲(chǔ)數(shù)據(jù)時(shí),執(zhí)行步驟S102。步驟S102:所述主節(jié)點(diǎn)服務(wù)器接收待存儲(chǔ)數(shù)據(jù)。
步驟S103:所述主節(jié)點(diǎn)服務(wù)器提取所述待存儲(chǔ)數(shù)據(jù)的其中一個(gè)字段的所有字段值,并采用哈希函數(shù)計(jì)算出與所述字段的各個(gè)字段值一一對(duì)應(yīng)的哈希值。哈希是英文Hash的音譯詞,在信息技術(shù)領(lǐng)域中,Hash也翻譯為“散列”,因此哈希函數(shù)也譯為散列函數(shù)。哈希算法是一種能夠?qū)⑷我忾L度的二進(jìn)制值映射為固定長度的較小二進(jìn)制值的方法,如把消息或數(shù)據(jù)壓縮成摘要,使得數(shù)據(jù)量變小,將數(shù)據(jù)的格式固定下來。在哈希算法中,其將數(shù)據(jù)元素的字段值Key作為自變量,通過一定的函數(shù)關(guān)系(即哈希函數(shù)),計(jì)算出的值,即為該字段值所對(duì)應(yīng)的數(shù)據(jù)的存儲(chǔ)地址。通常將通過哈希函數(shù)計(jì)算出來的值稱為哈希值。在本實(shí)施例中,所述的數(shù)據(jù)元素的字段值Key可在數(shù)據(jù)表中選取某一字段的字段值,并選取一種適用的哈希函數(shù)對(duì)字段值進(jìn)行計(jì)算,獲取與字段值及其所對(duì)應(yīng)的行數(shù)據(jù)相對(duì)應(yīng)的哈希值。哈希值是一段數(shù)據(jù)中唯一且極其緊湊的數(shù)值表示形式。在實(shí)踐中,即使只更改該數(shù)據(jù)中的一個(gè)字母,隨后經(jīng)過哈希函數(shù)的計(jì)算都將產(chǎn)生不同的哈希值。所有哈希函數(shù)都有如下一個(gè)基本特性:如果兩個(gè)哈希值是不相同的(根據(jù)同一哈希函數(shù)),那么這兩個(gè)哈希值的原始輸入數(shù)據(jù)也是不相同的。這個(gè)特性是哈希函數(shù)具有確定性的結(jié)果,具有這種性質(zhì)的哈希函數(shù)也稱為單向散列函數(shù)。但另一方面,哈希函數(shù)的輸入和輸出不是唯一對(duì)應(yīng)關(guān)系的,如果兩個(gè)哈希值相同,兩個(gè)輸入值很可能是相同的,但也可能不同,這種情況稱為“散列沖突”。好的哈希函數(shù)在輸入域中很少出現(xiàn)散列沖突。需要說明的是,由于哈希函數(shù)的應(yīng)用的多樣性,在本實(shí)施例中,設(shè)計(jì)一種適用于數(shù)據(jù)處理的哈希函數(shù)進(jìn)行哈希計(jì)算即可,且默認(rèn)通過哈希函數(shù)運(yùn)算的哈希值與所述字段的各個(gè)字段值一一對(duì)應(yīng),不存在散列沖突。即使發(fā)生散列沖突,也可以通過采用其他方法解決沖突,如鏈接法和開放定址法等。 步驟S104:所述主節(jié)點(diǎn)服務(wù)器根據(jù)計(jì)算出的哈希值,確定每個(gè)哈希值所對(duì)應(yīng)的存儲(chǔ)位置;每個(gè)存儲(chǔ)位置對(duì)應(yīng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的一個(gè)主硬盤;所述主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道與多個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接,且所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上設(shè)有至少一個(gè)主硬盤。在本實(shí)施例中,主節(jié)點(diǎn)服務(wù)器根據(jù)設(shè)定的哈希函數(shù)和沖突處理方法,將待存儲(chǔ)數(shù)據(jù)的某一字段中的各個(gè)字段值映射到一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中的有限的地址區(qū)間上,通過哈希函數(shù)運(yùn)算,將計(jì)算得到的哈希值及其所代表的存儲(chǔ)位置對(duì)應(yīng)記錄在表中,這種表稱為哈希表或散列表,所述存儲(chǔ)位置稱為哈希地址或散列地址。在本實(shí)施例中,每個(gè)存儲(chǔ)位置對(duì)應(yīng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的一個(gè)主硬盤,因此,具體實(shí)施時(shí),所述的哈希地址與一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的一個(gè)主硬盤相對(duì)應(yīng)。在一種可實(shí)現(xiàn)方式中,所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器為每個(gè)主硬盤設(shè)置標(biāo)簽,特別地,該標(biāo)簽即為所述的哈希地址。此外,該標(biāo)簽也可以是數(shù)據(jù)節(jié)點(diǎn)服務(wù)器所分配的各個(gè)主硬盤地址,則待存儲(chǔ)數(shù)據(jù)的某一字段的各個(gè)字段值分別對(duì)應(yīng)的行數(shù)據(jù)所對(duì)應(yīng)的存儲(chǔ)位置或哈希地址,與各個(gè)主硬盤地址--對(duì)應(yīng)。具體實(shí)施時(shí),在主節(jié)點(diǎn)服務(wù)器中設(shè)計(jì)一種哈希函數(shù),對(duì)待存儲(chǔ)數(shù)據(jù)的某一字段的字段值進(jìn)行運(yùn)算,并可將計(jì)算得到的哈希值存儲(chǔ)在哈希表中。具體實(shí)施時(shí),可選取將待存儲(chǔ)數(shù)據(jù)的某一字段的各個(gè)數(shù)據(jù)元素作為字段值,即自變量,通過一定的哈希函數(shù)運(yùn)算,得到相應(yīng)的哈希值。主節(jié)點(diǎn)服務(wù)器即可根據(jù)所述哈希值解析出待存儲(chǔ)數(shù)據(jù)的行數(shù)據(jù)的存儲(chǔ)位置。在本實(shí)施例中,所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器通過信令傳輸通道與所述主節(jié)點(diǎn)服務(wù)器連接,且所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上設(shè)有至少一個(gè)主硬盤。具體實(shí)施時(shí),主節(jié)點(diǎn)服務(wù)器與數(shù)據(jù)節(jié)點(diǎn)服務(wù)器可基于“云計(jì)算”而組成云數(shù)據(jù)庫系統(tǒng),其中,主節(jié)點(diǎn)服務(wù)器和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器均接受“信令分析處理計(jì)算云”的控制。云計(jì)算(Cloud Computing)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)易擴(kuò)展且往往是虛擬化的資源。“云”是網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一種比喻說法。云計(jì)算的核心思想,是將大量用網(wǎng)絡(luò)連接的計(jì)算資源進(jìn)行統(tǒng)一管理和調(diào)度,構(gòu)成一個(gè)“計(jì)算資源池”,以“按需”向客戶端提供服務(wù)。在本實(shí)施例中,“信令分析處理計(jì)算云”是指在進(jìn)行數(shù)據(jù)處理時(shí),尤其是聯(lián)機(jī)分析處理OLAP (On-Line Analytical Processing)時(shí),存儲(chǔ)有各種對(duì)云數(shù)據(jù)庫系統(tǒng)或原始信令云進(jìn)行管理和調(diào)度的信令集的網(wǎng)絡(luò)架構(gòu)平臺(tái)。步驟S105:所述主節(jié)點(diǎn)服務(wù)器將所述待存儲(chǔ)數(shù)據(jù)和所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值,發(fā)送至與所述主節(jié)點(diǎn)服務(wù)器連接的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器。在本實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道,與至少一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器進(jìn)行連接。具體實(shí)施時(shí),該主節(jié)點(diǎn)服務(wù)器與各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器建立起“無共享(ShareNothing)架構(gòu)”,即數(shù)據(jù)節(jié)點(diǎn)服務(wù)器之間不共享各自存儲(chǔ)的數(shù)據(jù)。參看圖2,是無共享Share Nothing架構(gòu)的示意圖。在本實(shí)施例中,圖2所示的Share Nothing架構(gòu)中,主節(jié)點(diǎn)服務(wù)器10通過信令傳輸通道20與多個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接,其中,每個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中又包括多個(gè)硬盤。特別地,在每個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中包括一個(gè)主硬盤和多個(gè)從硬盤。如圖2所示,數(shù)據(jù)節(jié)點(diǎn)服務(wù)器31包括主硬盤311和從硬盤312、從硬盤313 ;數(shù)據(jù)節(jié)點(diǎn)服務(wù)器32包括主硬盤321和從硬盤322、從硬盤323 ;數(shù)據(jù)節(jié)點(diǎn)服務(wù)器33包括主硬盤331和從硬盤332、從硬盤333。具體地,主節(jié)點(diǎn)服務(wù)器將客戶端所發(fā)送的數(shù)據(jù)處理請(qǐng)求分發(fā)給各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器進(jìn)行并行處理,數(shù)據(jù)節(jié)點(diǎn)服務(wù)器31與數(shù)據(jù)節(jié)點(diǎn)服務(wù)器32、數(shù)據(jù)節(jié)點(diǎn)服務(wù)器33之間不共享各自所存儲(chǔ)的部分?jǐn)?shù)據(jù),各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器之間的交互少,因此,數(shù)據(jù)庫系統(tǒng)容易擴(kuò)展。需要說明的是,在Share Nothing架構(gòu)中,各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的數(shù)據(jù)是獨(dú)立的,主要是指各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中的主硬盤的數(shù)據(jù)是獨(dú)立的,不作共享,但并不表示各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中的從硬盤不可以按照一定規(guī)則對(duì)相應(yīng)主硬盤進(jìn)行數(shù)據(jù)鏡像備份。步驟S106:所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上。在本實(shí)施例中,數(shù)據(jù)節(jié)點(diǎn)服務(wù)器接收主節(jié)點(diǎn)服務(wù)器所發(fā)送過來的待存儲(chǔ)數(shù)據(jù)和各個(gè)字段值所對(duì)應(yīng)的哈希值后,對(duì)各個(gè)哈希值進(jìn)行解析,以獲得哈希值的存儲(chǔ)地址空間,從而篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值。數(shù)據(jù)節(jié)點(diǎn)服務(wù)器進(jìn)一步地將與所述哈希值對(duì)應(yīng)的字段值所在的二維數(shù)據(jù)表(即待存儲(chǔ)數(shù)據(jù))的行數(shù)據(jù)存儲(chǔ)到與所述哈希值對(duì)應(yīng)的主硬盤上。在本實(shí)施例中,該步驟106可以稱為“列式存儲(chǔ)”,即對(duì)待存儲(chǔ)數(shù)據(jù)的某一字段或某一列數(shù)據(jù)進(jìn)行提取,將該字段或該列數(shù)據(jù)的每一個(gè)元素(即字段值)所在的行數(shù)據(jù)進(jìn)行劃分和存儲(chǔ)。具體地,在對(duì)待存儲(chǔ)數(shù)據(jù)進(jìn)行讀入,且主節(jié)點(diǎn)服務(wù)器連接有多個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器時(shí),各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器同時(shí)(并行)讀取待存儲(chǔ)數(shù)據(jù)的行數(shù)據(jù),根據(jù)待存儲(chǔ)數(shù)據(jù)的字段值所對(duì)應(yīng)的哈希值,對(duì)待存儲(chǔ)數(shù)據(jù)的行數(shù)據(jù)進(jìn)行直接入庫。譬如,待存儲(chǔ)數(shù)據(jù)的字段包括:序號(hào)、姓名、性別、年齡等,具體實(shí)施時(shí),選取“序號(hào)”字段中的各個(gè)字段值,然后采用哈希函數(shù)對(duì)“序號(hào)”字段中的各個(gè)字段值進(jìn)行哈希運(yùn)算,獲得各個(gè)字段值所分別對(duì)應(yīng)的哈希值。主節(jié)點(diǎn)服務(wù)器將待存儲(chǔ)數(shù)據(jù)和各個(gè)哈希值發(fā)送給各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器,各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器則根據(jù)與自身匹配的哈希值對(duì)所述待存儲(chǔ)數(shù)據(jù)進(jìn)行過濾,獲取并存儲(chǔ)與哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)。即在數(shù)據(jù)存儲(chǔ)時(shí),可對(duì)待存儲(chǔ)數(shù)據(jù)這一個(gè)二維數(shù)據(jù)表提取關(guān)鍵字(即字段值),再對(duì)該關(guān)鍵字所在的行數(shù)據(jù)進(jìn)行提取,然后將其存儲(chǔ)在相應(yīng)的存儲(chǔ)位置上。在該數(shù)據(jù)存儲(chǔ)方法中,不需要對(duì)數(shù)據(jù)進(jìn)行“列切分”,但進(jìn)行“行切分”,每一行數(shù)據(jù)都是信息完整的一類信息。如圖2所示,數(shù)據(jù)節(jié)點(diǎn)服務(wù)器31、數(shù)據(jù)節(jié)點(diǎn)服務(wù)器32和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器33分別在信令云平臺(tái)的控制下,同時(shí)、獨(dú)立地完成數(shù)據(jù)處理工作。因此,各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器可以根據(jù)每一字段值所對(duì)應(yīng)的行數(shù)據(jù)的數(shù)據(jù)特點(diǎn)而對(duì)行數(shù)據(jù)采用不同的方式進(jìn)行處理。譬如,各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器可以針對(duì)每一字段的數(shù)據(jù)特點(diǎn)而采用不同的數(shù)據(jù)壓縮方式,從而提高了數(shù)據(jù)壓縮效率和數(shù)據(jù)容量。參看圖3,是本發(fā)明第一實(shí)施例的步驟S106的一種實(shí)現(xiàn)方法流程圖。進(jìn)一步地,在本實(shí)施例中,如圖3所示,所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上,包括:
步驟S1061:所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的每一個(gè)主硬盤設(shè)置一個(gè)標(biāo)簽。具體地,所述標(biāo)簽可以但不限定為各個(gè)主硬盤的地址,所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器也可以為各個(gè)主硬盤分配一個(gè)編號(hào),將該編號(hào)作為數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中的主硬盤的標(biāo)簽。作為一種可實(shí)現(xiàn)的方式,主節(jié)點(diǎn)服務(wù)器在為各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的主硬盤設(shè)置標(biāo)簽時(shí),可依據(jù)計(jì)算得到的哈希值所對(duì)應(yīng)的地址區(qū)間來進(jìn)行標(biāo)簽設(shè)置。步驟S1062:所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器逐一判斷所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值與所述主硬盤的標(biāo)簽是否匹配。若匹配,則執(zhí)行步驟S1063 ;若不匹配,則執(zhí)行步驟S1064。步驟S1063:所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器對(duì)與所述標(biāo)簽匹配的哈希值進(jìn)行解析,獲得所述哈希值所對(duì)應(yīng)的字段值,并根據(jù)所述字段值對(duì)所述待存儲(chǔ)數(shù)據(jù)進(jìn)行過濾,獲得所述字段值所在的行數(shù)據(jù),并將所述行數(shù)據(jù)存儲(chǔ)在與所述標(biāo)簽對(duì)應(yīng)的主硬盤中。步驟S1064:所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)刪除。具體地,所示數(shù)據(jù)節(jié)點(diǎn)服務(wù)器檢測(cè)到無匹配的哈希值時(shí),將主節(jié)點(diǎn)服務(wù)器所發(fā)送過來的待存儲(chǔ)數(shù)據(jù)丟棄或格式化即可。在本實(shí)施例中,將待存儲(chǔ)數(shù)據(jù)進(jìn)行存儲(chǔ)后,還進(jìn)一步對(duì)已存入數(shù)據(jù)進(jìn)行備份,即只需步驟S107。步驟S107:所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的數(shù)據(jù)進(jìn)行鏡像備份。
在本實(shí)施例中,所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器對(duì)客戶端所發(fā)送過來的待存儲(chǔ)數(shù)據(jù)進(jìn)行存儲(chǔ)后,為保障各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中所存儲(chǔ)的字段的安全性和待存儲(chǔ)數(shù)據(jù)的完整性,進(jìn)一步地,對(duì)各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的字段進(jìn)行鏡像備份。具體實(shí)施時(shí),鏡像備份技術(shù)只需要對(duì)數(shù)據(jù)執(zhí)行簡單的復(fù)制操作,而不需要對(duì)數(shù)據(jù)進(jìn)行壓縮、索引和對(duì)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換等操作。與各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器同時(shí)執(zhí)行數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)備份的傳統(tǒng)數(shù)據(jù)庫系統(tǒng)相比,本發(fā)明實(shí)施例所提供的由主節(jié)點(diǎn)服務(wù)器和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器構(gòu)成的數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)存儲(chǔ)效率更高,可以大大降低數(shù)據(jù)存儲(chǔ)與備份對(duì)各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的中央處理器CPU (CentralProcessing Unit)和內(nèi)存的消耗,空閑出來的CPU和內(nèi)存可以進(jìn)一步提高數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的讀寫能力。具體實(shí)施時(shí),每當(dāng)各個(gè)節(jié)點(diǎn)服務(wù)器集群發(fā)生狀態(tài)變化時(shí)都會(huì)觸發(fā)鏡像備份操作。其中,所述的狀態(tài)變化包括主節(jié)點(diǎn)元數(shù)據(jù)更新、主節(jié)點(diǎn)與客戶端交互、主節(jié)點(diǎn)記錄的數(shù)據(jù)節(jié)點(diǎn)服務(wù)狀態(tài)、數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)變化等。即鏡像備份對(duì)象包括硬盤數(shù)據(jù)和內(nèi)存數(shù)據(jù),且鏡像備份技術(shù)實(shí)時(shí)性高,適用于本發(fā)明實(shí)施例在進(jìn)行數(shù)據(jù)處理時(shí)的數(shù)據(jù)的快速變化。進(jìn)一步地,在第一實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器通過所述信令傳輸通道,定期向所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)送狀態(tài)檢測(cè)信令,對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的工作狀態(tài)進(jìn)行監(jiān)控。在本實(shí)施例中,可將主節(jié)點(diǎn)服務(wù)器對(duì)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的工作狀態(tài)進(jìn)行監(jiān)控統(tǒng)稱為信令分析控制。在網(wǎng)絡(luò)中所傳輸?shù)男盘?hào)中,主要包括數(shù)據(jù)和信令,其中數(shù)據(jù)主要指網(wǎng)絡(luò)模塊交互的實(shí)體消息或數(shù)據(jù)包,信令則是指代用來控制網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)男盘?hào)。具體地,主節(jié)點(diǎn)服務(wù)器和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器在運(yùn)行過程中,主節(jié)點(diǎn)服務(wù)器在監(jiān)測(cè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的工作時(shí),通過信令傳輸通道,向各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器廣播狀態(tài)查詢信令,當(dāng)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器接收到狀態(tài)查詢信令后,立即向主節(jié)點(diǎn)服務(wù)器發(fā)送自身當(dāng)前的狀態(tài)信息,主節(jié)點(diǎn)服務(wù)器對(duì)這些信息進(jìn)行統(tǒng)籌和分析,再及時(shí)對(duì)各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器進(jìn)行工作調(diào)度與管理。參看圖4,是本發(fā)明提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法的第二實(shí)施例的方法流程圖。在第二實(shí)施例中,所述哈希值所對(duì)應(yīng)的存儲(chǔ)位置包括第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的第一主硬盤。所述主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接。因此,在本實(shí)施例中,所述的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法包括以下步驟:
步驟S201:主節(jié)點(diǎn)服務(wù)器接收客戶端的數(shù)據(jù)處理請(qǐng)求,所述數(shù)據(jù)處理請(qǐng)求包括數(shù)據(jù)存儲(chǔ)請(qǐng)求。本步驟原理與第一實(shí)施例中的步驟SlOl相同。步驟S202:所述主節(jié)點(diǎn)服務(wù)器接收待存儲(chǔ)數(shù)據(jù)。本步驟原理與第一實(shí)施例中的步驟S102相同。步驟S203:所述主節(jié)點(diǎn)服務(wù)器提取所述待存儲(chǔ)數(shù)據(jù)的其中一個(gè)字段的所有字段值,并采用哈希函數(shù)計(jì)算出與所述字段的各個(gè)字段值一一對(duì)應(yīng)的哈希值。本步驟原理與第一實(shí)施例中的步驟S103相同。步驟S204:所述主節(jié)點(diǎn)服務(wù)器根據(jù)計(jì)算出的哈希值,確定每個(gè)哈希值所對(duì)應(yīng)的存儲(chǔ)位置;每個(gè)存儲(chǔ)位置對(duì)應(yīng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的一個(gè)主硬盤。所述主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接,且所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上設(shè)有至少一
個(gè)主硬盤。
步驟S205:所述主節(jié)點(diǎn)服務(wù)器將所述待存儲(chǔ)數(shù)據(jù)和所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值,發(fā)送給所述每個(gè)存儲(chǔ)位置所分別對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器,包括:
所述主節(jié)點(diǎn)服務(wù)器將所述待存儲(chǔ)數(shù)據(jù)和所述字段的字段值所對(duì)應(yīng)的哈希值,發(fā)送給所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器。步驟S206:所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上,包括:
所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的第一主硬盤相對(duì)應(yīng)的第一哈希值,并將所述第一哈希值所對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述第一主硬盤中。步驟S207:所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的字段進(jìn)行鏡像備份。本步驟原理與第一實(shí)施例中的步驟S107相同。在本實(shí)施例中,以第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器為與主節(jié)點(diǎn)服務(wù)器連接的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的代表,在進(jìn)行數(shù)據(jù)處理時(shí),將待存儲(chǔ)數(shù)據(jù)和計(jì)算得到的哈希值發(fā)送至所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器;第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器對(duì)哈希值進(jìn)行解析,將與第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中的第一主硬盤匹配的第一哈希值篩選出來,并進(jìn)一步的把該匹配的哈希值所對(duì)應(yīng)的在待存儲(chǔ)數(shù)據(jù)中的行數(shù)據(jù)存入第一主硬盤中。如果主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道還連接有其他數(shù)據(jù)節(jié)點(diǎn)服務(wù)器,則這些數(shù)據(jù)節(jié)點(diǎn)服務(wù)器對(duì)待存儲(chǔ)數(shù)據(jù)和計(jì)算得到的哈希值的處理方法,可參照第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器所采用的方法來處理。進(jìn)一步地,在第二實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器還通過信令傳輸通道與第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接;所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器包括第一從硬盤,則:
在本實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的字段進(jìn)行鏡像備份,即主節(jié)點(diǎn)服務(wù)器在執(zhí)行步驟S207時(shí),包括:
所述主節(jié)點(diǎn)服務(wù)器將所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤中存儲(chǔ)的字段,鏡像映射到所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中進(jìn)行備份。更進(jìn)一步地,在本實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器通過所述信令傳輸通道,定期向所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)送狀態(tài)檢測(cè)信令,對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的工作狀態(tài)進(jìn)行監(jiān)控。此基本原理與第一實(shí)施例中所描述的相關(guān)內(nèi)容相同。因此,當(dāng)所述主節(jié)點(diǎn)服務(wù)器檢測(cè)到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)生故障時(shí),則:
所述主節(jié)點(diǎn)服務(wù)器斷開與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的數(shù)據(jù)連接。所述主節(jié)點(diǎn)服務(wù)器將所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤的任務(wù),切換至所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中執(zhí)行。再進(jìn)一步地,在第二實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器還通過信令傳輸通道與第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接;所述第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器包括第二從硬盤。所述主節(jié)點(diǎn)服務(wù)器將所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤的任務(wù),切換至所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中執(zhí)行之后,還包括:
所述主節(jié)點(diǎn)服務(wù)器將所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中存儲(chǔ)的數(shù)據(jù),鏡像映射到所述第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第二從硬盤中進(jìn)行備份。因此,結(jié)合以上所述內(nèi)容,可以得到主節(jié)點(diǎn)服務(wù)器在檢測(cè)到第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)生故障時(shí)的處理方法。參看圖5,第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)生故障時(shí),主節(jié)點(diǎn)服務(wù)器將要執(zhí)行以下方法步驟:
步驟S301:所述主節(jié)點(diǎn)服務(wù)器斷開與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的數(shù)據(jù)連接。步驟S302:所述主節(jié)點(diǎn)服務(wù)器將所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤的任務(wù),切換至所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中執(zhí)行。步驟S303:所述主節(jié)點(diǎn)服務(wù)器將所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中存儲(chǔ)的數(shù)據(jù),鏡像映射到所述第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第二從硬盤中進(jìn)行備份。在本實(shí)施例中,由于主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道向各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器進(jìn)行實(shí)時(shí)監(jiān)控,當(dāng)所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從故障中恢復(fù)時(shí),第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器將會(huì)向主節(jié)點(diǎn)服務(wù)器發(fā)送“上線”信令;主節(jié)點(diǎn)服務(wù)器確認(rèn)其身份后,向第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)送“同步”、“恢復(fù)”等一系列信令,以使得使集群計(jì)算機(jī)恢復(fù)到故障前的正常工作狀態(tài)。參看圖6,是本發(fā)明提供的第二實(shí)施例中的第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器恢復(fù)工作時(shí)的數(shù)據(jù)庫的數(shù)據(jù)處理方法流程圖。在本實(shí)施例中,當(dāng)所述主節(jié)點(diǎn)服務(wù)器檢測(cè)到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從故障中恢復(fù)時(shí),則執(zhí)行以下步驟:
步驟S401:所述主節(jié)點(diǎn)服務(wù)器將所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中存儲(chǔ)的字段,鏡像映射到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤中進(jìn)行更新。步驟S402:所述主節(jié)點(diǎn)服務(wù)器恢復(fù)與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的連接。步驟S403:所述主節(jié)點(diǎn)服務(wù)器將所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤的任務(wù),切換到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤中執(zhí)行。步驟S404:所述主節(jié)點(diǎn)服務(wù)器對(duì)所述第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第二從硬盤進(jìn)行格式化。在本發(fā)明實(shí)施例中,所述的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法還進(jìn)一步用于檢索數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中所存儲(chǔ)的數(shù)據(jù)。參看圖7,是本發(fā)明提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法的第三實(shí)施例的方法流程圖。在第三實(shí)施例中,所述數(shù)據(jù)處理請(qǐng)求還包括數(shù)據(jù)檢索請(qǐng)求。需要說明的是,本實(shí)施例描述的數(shù)據(jù)庫的數(shù)據(jù)處理方法包括但不限于數(shù)據(jù)檢索部分的處理方法,其還可包括數(shù)據(jù)存儲(chǔ)的處理方法,具體可參看第一實(shí)施例和第二實(shí)施例中所記載的技術(shù)方案。在本實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器接收所述數(shù)據(jù)檢索請(qǐng)求后,判斷所述數(shù)據(jù)檢索請(qǐng)求中是否含有查詢地址:
若所述主節(jié)點(diǎn)服務(wù)器判定所述數(shù)據(jù)檢索請(qǐng)求中含有查詢地址,則所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述查詢地址對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中;所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器;所述主節(jié)點(diǎn)服務(wù)器將所述檢索得到的數(shù)據(jù)發(fā)送至所述客戶端。若所述主節(jié)點(diǎn)服務(wù)器判定所述數(shù)據(jù)檢索請(qǐng)求中不含有查詢地址,則所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述主節(jié)點(diǎn)服務(wù)器連接的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器;所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,分別對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器;所述主節(jié)點(diǎn)服務(wù)器將所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器檢索得到的數(shù)據(jù)進(jìn)行匯總后,發(fā)送至所述客戶端。具體地,參照?qǐng)D7所示的數(shù)據(jù)檢索處理方法流程示意圖,主節(jié)點(diǎn)服務(wù)器在接收客戶端所發(fā)送的數(shù)據(jù)檢索請(qǐng)求時(shí),執(zhí)行以下步驟:
步驟S501:所述主節(jié)點(diǎn)服務(wù)器接收所述數(shù)據(jù)檢索請(qǐng)求。步驟S502:所述主節(jié)點(diǎn)服務(wù)器判斷所述數(shù)據(jù)檢索請(qǐng)求中是否含有查詢地址。若含有查詢地址,則執(zhí)行步驟S503至步驟S505 ;若不含有查詢地址,則執(zhí)行步驟S506至步驟S508。步驟S503:所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述查詢地址對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中。步驟S504:所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器。步驟S505:所述主節(jié)點(diǎn)服務(wù)器將所述檢索得到的數(shù)據(jù)發(fā)送至所述客戶端。步驟S506:所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述主節(jié)點(diǎn)服務(wù)器連接的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器。步驟S507:所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,分別對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器。步驟S508:所述主節(jié)點(diǎn)服務(wù)器將所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器檢索得到的數(shù)據(jù)進(jìn)行匯總后,發(fā)送至所述客戶端。需要說明的是,圖7只畫出了數(shù)據(jù)檢索的處理方法流程圖,未給出數(shù)據(jù)存儲(chǔ)的處理方法流程圖,其中,數(shù)據(jù)存儲(chǔ)的處理方法流程圖可參看第一實(shí)施例和第二實(shí)施例中的相關(guān)不意圖。進(jìn)一步地,在第三實(shí)施例中,所述主節(jié)點(diǎn)服務(wù)器連接有備份節(jié)點(diǎn)服務(wù)器40。參看圖8,是本發(fā)明提供的第三實(shí)施例中的各個(gè)節(jié)點(diǎn)服務(wù)器的連接結(jié)構(gòu)示意圖。在本實(shí)施例中,所述備份節(jié)點(diǎn)服務(wù)器40對(duì)所述主節(jié)點(diǎn)服務(wù)器10中的數(shù)據(jù)和信令進(jìn)行實(shí)時(shí)備份。具體地,在正常情況下,各個(gè)節(jié)點(diǎn)服務(wù)器所組成的集群由主節(jié)點(diǎn)服務(wù)器10控制,負(fù)責(zé)集群控制指令的發(fā)送以及客戶端,即圖8中的集群外部計(jì)算機(jī)網(wǎng)絡(luò)的交互。備份節(jié)點(diǎn)服務(wù)器40對(duì)主節(jié)點(diǎn)服務(wù)器10配置備份,當(dāng)主節(jié)點(diǎn)服務(wù)器10出現(xiàn)故障時(shí),備份節(jié)點(diǎn)服務(wù)器40迅速替換主節(jié)點(diǎn)服務(wù)器10,接管其的控制及交互狀態(tài)。進(jìn)一步地,備份節(jié)點(diǎn)服務(wù)器40也通過信令傳輸通道20與N臺(tái)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器進(jìn)行連接,其中,N為正整數(shù)。具體實(shí)施時(shí),數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的數(shù)量N可根據(jù)實(shí)際應(yīng)用需要進(jìn)行擴(kuò)展。在基于Share Nothing架構(gòu)的集群中,數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的擴(kuò)展相對(duì)簡單,只要添加和連接相應(yīng)的硬件設(shè)備,主節(jié)點(diǎn)服務(wù)器即可基于云信令架構(gòu)平臺(tái),對(duì)新增的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器進(jìn)行初始化配置。配置完成的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器即可根據(jù)主節(jié)點(diǎn)服務(wù)器的信令控制進(jìn)行工作。本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,包括但不限于數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)檢索方法。具體地,所述的一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,提取待存儲(chǔ)數(shù)據(jù)中的某一字段的各個(gè)字段值,通過哈希函數(shù)算法計(jì)算出各個(gè)字段值的哈希值;并根據(jù)所述哈希值,將待存儲(chǔ)數(shù)據(jù)的各行數(shù)據(jù)分別存儲(chǔ)在與主節(jié)點(diǎn)服務(wù)器連接的各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中,提高了數(shù)據(jù)處理效率和增加了數(shù)據(jù)存儲(chǔ)容量。
進(jìn)一步地,本發(fā)明提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法還進(jìn)一步將各個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的字段進(jìn)行備份,避免數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)生單點(diǎn)故障。此外,本發(fā)明提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法在執(zhí)行過程中,進(jìn)一步對(duì)主節(jié)點(diǎn)服務(wù)器的磁盤數(shù)據(jù)和流通信令進(jìn)行實(shí)時(shí)備份。當(dāng)主節(jié)點(diǎn)服務(wù)器在發(fā)生故障進(jìn)行主備切換時(shí),備份節(jié)點(diǎn)服務(wù)器與主節(jié)點(diǎn)服務(wù)器具有相同的數(shù)據(jù)和狀態(tài),保證了服務(wù)器切換的無縫進(jìn)行,為客戶端提供無間斷的服務(wù)。以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,包括: 主節(jié)點(diǎn)服務(wù)器接收客戶端的數(shù)據(jù)處理請(qǐng)求,所述數(shù)據(jù)處理請(qǐng)求包括數(shù)據(jù)存儲(chǔ)請(qǐng)求; 所述主節(jié)點(diǎn)服務(wù)器接收待存儲(chǔ)數(shù)據(jù); 所述主節(jié)點(diǎn)服務(wù)器提取所述待存儲(chǔ)數(shù)據(jù)的其中一個(gè)字段的所有字段值,并采用哈希函數(shù)計(jì)算出與所述字段的各個(gè)字段值一一對(duì)應(yīng)的哈希值; 所述主節(jié)點(diǎn)服務(wù)器根據(jù)計(jì)算出的哈希值,確定每個(gè)哈希值所對(duì)應(yīng)的存儲(chǔ)位置;每個(gè)存儲(chǔ)位置對(duì)應(yīng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的一個(gè)主硬盤;所述主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道與多個(gè)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接,且所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上設(shè)有至少一個(gè)主硬盤; 所述主節(jié)點(diǎn)服務(wù)器將所述待存儲(chǔ)數(shù)據(jù)和所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值,發(fā)送至與所述主節(jié)點(diǎn)服務(wù)器連接的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器; 所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上; 所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的數(shù)據(jù)進(jìn)行鏡像備份。
2.如權(quán)利要求1所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上,包括: 所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的每一個(gè)主硬盤設(shè)置一個(gè)標(biāo)簽; 所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器逐一判斷所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值與所述主硬盤的標(biāo)簽是否匹配; 若匹配,則所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器對(duì)與所述標(biāo)簽匹配的哈希值進(jìn)行解析,獲得所述哈希值所對(duì)應(yīng)的字段值,并根據(jù)所述字段值對(duì)所述待存儲(chǔ)數(shù)據(jù)進(jìn)行過濾,獲得所述字段值所在的行數(shù)據(jù),并將所述行數(shù)據(jù)存儲(chǔ)在與所述標(biāo)簽對(duì)應(yīng)的主硬盤中; 若不匹配,則所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)刪除。
3.如權(quán)利要求1或2所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,所述主節(jié)點(diǎn)服務(wù)器通過所述信令傳輸通道,定期向所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)送狀態(tài)檢測(cè)信令,對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的工作狀態(tài)進(jìn)行監(jiān)控。
4.如權(quán)利要求3所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,所述哈希值所對(duì)應(yīng)的存儲(chǔ)位置包括第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上的第一主硬盤;所述主節(jié)點(diǎn)服務(wù)器通過信令傳輸通道與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接; 則所述主節(jié)點(diǎn)服務(wù)器將所述待存儲(chǔ)數(shù)據(jù)和所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值,發(fā)送給所述每個(gè)存儲(chǔ)位置所分別對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器,包括:所述主節(jié)點(diǎn)服務(wù)器將所述待存儲(chǔ)數(shù)據(jù)和所述字段的字段值所對(duì)應(yīng)的哈希值,發(fā)送給所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器; 所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的主硬盤相對(duì)應(yīng)的哈希值,并將與所述哈希值對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述主硬盤上,包括:所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從所述字段的各個(gè)字段值所對(duì)應(yīng)的哈希值中,篩選出與本節(jié)點(diǎn)的第一主硬盤相對(duì)應(yīng)的第一哈希值,并將所述第一哈希值所對(duì)應(yīng)的字段值所在的行數(shù)據(jù)存儲(chǔ)到所述第一主硬盤中。
5.如權(quán)利要求4所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,所述主節(jié)點(diǎn)服務(wù)器還通過信令傳輸通道與第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接;所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器包括第一從硬盤;所述主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的數(shù)據(jù)進(jìn)行鏡像備份,包括: 所述主節(jié)點(diǎn)服務(wù)器將所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤中存儲(chǔ)的數(shù)據(jù),鏡像映射到所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中進(jìn)行備份。
6.如權(quán)利要求5所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,當(dāng)所述主節(jié)點(diǎn)服務(wù)器檢測(cè)到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器發(fā)生故障時(shí),則: 所述主節(jié)點(diǎn)服務(wù)器斷開與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的數(shù)據(jù)連接; 所述主節(jié)點(diǎn)服務(wù)器將所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤的任務(wù),切換至所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中執(zhí)行。
7.如權(quán)利要求6所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,所述主節(jié)點(diǎn)服務(wù)器還通過信令傳輸通道與第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器連接;所述第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器包括第二從硬盤; 所述主節(jié)點(diǎn)服務(wù)器將所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤的任務(wù),切換至所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中執(zhí)行之后,還包括: 所述主節(jié)點(diǎn)服務(wù)器將所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中存儲(chǔ)的數(shù)據(jù),鏡像映射到所述第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第二從硬盤中進(jìn)行備份。
8.如權(quán)利要求7所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,當(dāng)所述主節(jié)點(diǎn)服務(wù)器檢測(cè)到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器從 故障中恢復(fù)時(shí),則: 所述主節(jié)點(diǎn)服務(wù)器將所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤中存儲(chǔ)的數(shù)據(jù),鏡像映射到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤中進(jìn)行更新; 所述主節(jié)點(diǎn)服務(wù)器恢復(fù)與所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的數(shù)據(jù)連接; 所述主節(jié)點(diǎn)服務(wù)器將所述第二數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一從硬盤的任務(wù),切換到所述第一數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第一主硬盤中執(zhí)行; 所述主節(jié)點(diǎn)服務(wù)器對(duì)所述第三數(shù)據(jù)節(jié)點(diǎn)服務(wù)器的第二從硬盤進(jìn)行格式化。
9.如權(quán)利要求1或2所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,所述數(shù)據(jù)處理請(qǐng)求還包括數(shù)據(jù)檢索請(qǐng)求; 所述主節(jié)點(diǎn)服務(wù)器接收所述數(shù)據(jù)檢索請(qǐng)求后,判斷所述數(shù)據(jù)檢索請(qǐng)求中是否含有查詢地址; 若所述主節(jié)點(diǎn)服務(wù)器判定所述數(shù)據(jù)檢索請(qǐng)求中含有查詢地址,則所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述查詢地址對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中;所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器;所述主節(jié)點(diǎn)服務(wù)器將所述檢索得到的數(shù)據(jù)發(fā)送至所述客戶端; 若所述主節(jié)點(diǎn)服務(wù)器判定所述數(shù)據(jù)檢索請(qǐng)求中不含有查詢地址,則所述主節(jié)點(diǎn)服務(wù)器將所述數(shù)據(jù)檢索請(qǐng)求發(fā)送至與所述主節(jié)點(diǎn)服務(wù)器連接的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器;所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器根據(jù)所述數(shù)據(jù)檢索請(qǐng)求,分別對(duì)本節(jié)點(diǎn)的各個(gè)硬盤進(jìn)行檢索,并將檢索得到的數(shù)據(jù)反饋至所述主節(jié)點(diǎn)服務(wù)器;所述主節(jié)點(diǎn)服務(wù)器將所述的所有數(shù)據(jù)節(jié)點(diǎn)服務(wù)器檢索得到的數(shù)據(jù)進(jìn)行匯總后,發(fā)送至所述客戶端。
10.如權(quán)利要求9所述的數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,所述主節(jié)點(diǎn)服務(wù)器連接有備份節(jié)點(diǎn)服務(wù)器; 所述備份節(jié)點(diǎn)服務(wù)器對(duì)所述主節(jié)點(diǎn)服務(wù)器中的數(shù)據(jù)和信令進(jìn)行實(shí)時(shí)備份。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,包括主節(jié)點(diǎn)服務(wù)器接收客戶端的數(shù)據(jù)處理請(qǐng)求,所述數(shù)據(jù)處理請(qǐng)求包括數(shù)據(jù)存儲(chǔ)請(qǐng)求。所述主節(jié)點(diǎn)服務(wù)器接收待存儲(chǔ)數(shù)據(jù);所述主節(jié)點(diǎn)服務(wù)器提取所述待存儲(chǔ)數(shù)據(jù)中的一個(gè)字段的各個(gè)字段值,并計(jì)算出對(duì)應(yīng)的哈希值,確定每個(gè)哈希值所對(duì)應(yīng)的存儲(chǔ)位置;所述主節(jié)點(diǎn)服務(wù)器將待存儲(chǔ)數(shù)據(jù)和哈希值發(fā)送給數(shù)據(jù)節(jié)點(diǎn)服務(wù)器;所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器將所述哈希值所對(duì)應(yīng)的行數(shù)據(jù)存儲(chǔ)到相應(yīng)的主硬盤上;主節(jié)點(diǎn)服務(wù)器對(duì)所述數(shù)據(jù)節(jié)點(diǎn)服務(wù)器中存儲(chǔ)的數(shù)據(jù)進(jìn)行鏡像備份。所述數(shù)據(jù)處理請(qǐng)求包括數(shù)據(jù)檢索請(qǐng)求。本發(fā)明提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法,數(shù)據(jù)處理效率更高,容量更大,并避免了集群中的單點(diǎn)故障的發(fā)生。
文檔編號(hào)G06F17/30GK103116661SQ20131008882
公開日2013年5月22日 申請(qǐng)日期2013年3月20日 優(yōu)先權(quán)日2013年3月20日
發(fā)明者張起飛 申請(qǐng)人:廣東宜通世紀(jì)科技股份有限公司