本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種聯(lián)機(jī)分析處理方法。
背景技術(shù):
聯(lián)機(jī)分析處理(On-Line Analytical Processing,OLAP)是一種利用服務(wù)器集群對(duì)數(shù)據(jù)進(jìn)行加工處理的數(shù)據(jù)處理方法。在聯(lián)機(jī)分析處理的過程中,通常涉及對(duì)服務(wù)器集群進(jìn)行數(shù)據(jù)的寫入、數(shù)據(jù)的讀取,以及對(duì)數(shù)據(jù)的進(jìn)一步分析處理。
現(xiàn)有的聯(lián)機(jī)處理方法中,對(duì)服務(wù)器集群中新結(jié)點(diǎn)添加的效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問題是提升聯(lián)機(jī)分析處理方法中添加新結(jié)點(diǎn)的效率。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種聯(lián)機(jī)分析處理方法,包括:提供服務(wù)器集群,所述服務(wù)器集群包括多個(gè)結(jié)點(diǎn);在所述服務(wù)器集群中添加新結(jié)點(diǎn),所述新結(jié)點(diǎn)的添加過程包括:所述新結(jié)點(diǎn)連接至所述服務(wù)器集群中任意一個(gè)或多個(gè)現(xiàn)有的結(jié)點(diǎn);所述新結(jié)點(diǎn)從所述任意一個(gè)或多個(gè)現(xiàn)有的結(jié)點(diǎn)獲取協(xié)調(diào)器的信息,所述協(xié)調(diào)器選自所述服務(wù)器集群中的結(jié)點(diǎn);所述新結(jié)點(diǎn)根據(jù)所述協(xié)調(diào)器的信息與所述協(xié)調(diào)器建立連接;所述新結(jié)點(diǎn)向所述協(xié)調(diào)器發(fā)出添加至所述服務(wù)器集群的申請(qǐng);所述新結(jié)點(diǎn)從所述協(xié)調(diào)器獲取更新后服務(wù)器集群的配置信息,所述更新后服務(wù)器集群的配置信息包括所述現(xiàn)有的結(jié)點(diǎn)的配置信息以及所述新結(jié)點(diǎn)的配置信息。
可選的,所述聯(lián)機(jī)分析處理方法還包括:從所述服務(wù)器集群中刪除結(jié)點(diǎn),刪除結(jié)點(diǎn)的過程包括:所述協(xié)調(diào)器接收來自待刪除的結(jié)點(diǎn)的移除請(qǐng)求信息;在配置信息中移除所述待刪除結(jié)點(diǎn)的配置信息,以更新所述服務(wù)器集群的配置信息。
可選的,所述服務(wù)器集群的內(nèi)存劃分為不同的數(shù)據(jù)桶,各個(gè)數(shù)據(jù)桶獨(dú)立地進(jìn)行業(yè)務(wù)處理。
可選的,所述聯(lián)機(jī)分析處理方法還包括:客戶端向所述服務(wù)器集群寫入數(shù)據(jù);所述寫入數(shù)據(jù)包括:根據(jù)待寫入的鍵值對(duì)判斷待寫入的數(shù)據(jù)桶;向所述待寫入的數(shù)據(jù)桶所在的結(jié)點(diǎn)發(fā)送所述鍵值對(duì),以向所述數(shù)據(jù)桶寫入所述鍵值對(duì)。
可選的,所述聯(lián)機(jī)分析處理方法還包括:所述服務(wù)器集群接收查詢函數(shù),所述查詢函數(shù)用于對(duì)所述服務(wù)器集群中的目標(biāo)數(shù)據(jù)進(jìn)行處理;所述服務(wù)器集群確定所述目標(biāo)數(shù)據(jù)所在的數(shù)據(jù)桶,在所述數(shù)據(jù)桶中執(zhí)行所述查詢函數(shù);所述服務(wù)器集群返回所述查詢函數(shù)的執(zhí)行結(jié)果。
可選的,所述聯(lián)機(jī)分析處理方法還包括:客戶端在所述服務(wù)器集群注冊(cè)插件,所述插件配置有自定義存放算法;所述服務(wù)器集群利用所述插件配置的自定義存放算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。
可選的,所述服務(wù)器集群的內(nèi)存劃分為不同的數(shù)據(jù)分區(qū),所述自定義存放算法綁定至一個(gè)或多個(gè)數(shù)據(jù)分區(qū);所述服務(wù)器集群利用所述插件配置的自定義存放算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放包括:當(dāng)所述數(shù)據(jù)待存放至的數(shù)據(jù)分區(qū)為綁定所述自定義存放算法的數(shù)據(jù)分區(qū)時(shí),利用所述自定義存放算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。
可選的,所述服務(wù)器集群的內(nèi)存劃分為不同的數(shù)據(jù)分區(qū),所述聯(lián)機(jī)分析處理方法還包括:所述服務(wù)器集群判斷客戶端是否對(duì)被劃分至不同數(shù)據(jù)分區(qū)的數(shù)據(jù)進(jìn)行操作,若對(duì)被劃分至不同數(shù)據(jù)分區(qū)的數(shù)據(jù)進(jìn)行操作,則將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)后,再進(jìn)行所述操作。
可選的,所述操作為寫入操作;將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)包括:將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)的緩存;所述聯(lián)機(jī)分析處理方法還包括:在寫入完成后,對(duì)比所述寫入的數(shù)據(jù)和所述緩存中的數(shù)據(jù),若不一致,則重新寫入。
可選的,所述聯(lián)機(jī)分析處理方法還包括:所述服務(wù)器集群異步的進(jìn)行將數(shù)據(jù)寫入內(nèi)存的操作和對(duì)數(shù)據(jù)的持久化操作。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:
通過新結(jié)點(diǎn)連接至服務(wù)器集群中的任意一個(gè)或者多個(gè)現(xiàn)有的結(jié)點(diǎn)后,可以從所述任意一個(gè)或多個(gè)現(xiàn)有的結(jié)點(diǎn)獲取協(xié)調(diào)器的信息,根據(jù)協(xié)調(diào)器信息可以與所述協(xié)調(diào)器進(jìn)行連接,在連接后可以向協(xié)調(diào)器發(fā)出添加至服務(wù)器集群的申請(qǐng),協(xié)調(diào)器可以通過上述申請(qǐng)獲悉新結(jié)點(diǎn)的配置信息,進(jìn)而可以添加新結(jié)點(diǎn)的配置信息,以對(duì)現(xiàn)存的配置信息進(jìn)行更新。在上述過程中,由于協(xié)調(diào)器選自所述服務(wù)器集群中的結(jié)點(diǎn),可以進(jìn)行動(dòng)態(tài)變更,并且在新結(jié)點(diǎn)加入時(shí),由協(xié)調(diào)器對(duì)服務(wù)器集群的配置信息進(jìn)行更新,故可以在服務(wù)器集群中的結(jié)點(diǎn)在線的情況下,添加新結(jié)點(diǎn)至服務(wù)器集群,而無需對(duì)已有結(jié)點(diǎn)進(jìn)行重啟進(jìn)行配置更新。
進(jìn)一步,所述服務(wù)器集群的內(nèi)存劃分為不同的數(shù)據(jù)桶,各個(gè)數(shù)據(jù)桶獨(dú)立的進(jìn)行業(yè)務(wù)處理,故可以減少數(shù)據(jù)桶之間的依賴,使得各個(gè)數(shù)據(jù)桶可以相互獨(dú)立的進(jìn)行各自的業(yè)務(wù)處理。進(jìn)而在不同的數(shù)據(jù)桶中可以獨(dú)立的執(zhí)行查詢函數(shù),提升系統(tǒng)的并行處理能力,進(jìn)一步提升系統(tǒng)效率。
進(jìn)一步,客戶端可以在服務(wù)器集群注冊(cè)插件,插件中配置由客戶端根據(jù)自身需求設(shè)置的自定義存放算法,服務(wù)器集群可以利用插件配置的自定義算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。通過上述方式可以由根據(jù)客戶端設(shè)置的方式進(jìn)行數(shù)據(jù)的存放,而非僅能根據(jù)服務(wù)器集群的分配進(jìn)行存放,通過設(shè)置合理的存放算法,可以在利用服務(wù)器集群進(jìn)行分布式計(jì)算時(shí),直接在一個(gè)結(jié)點(diǎn)或者網(wǎng)絡(luò)距離較近的幾個(gè)結(jié)點(diǎn)中進(jìn)行計(jì)算,進(jìn)而可以避免通過網(wǎng)絡(luò)傳輸帶來的性能損耗,進(jìn)而可以提升服務(wù)器集群的響應(yīng)性能。
進(jìn)一步,當(dāng)客戶端的操作涉及的數(shù)據(jù)被劃分至不同的分區(qū)時(shí),可以將操作涉及到的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn),在進(jìn)行所述操作。由于客戶端與服務(wù)器集群之間進(jìn)行數(shù)據(jù)交互的用時(shí)通常比較長(zhǎng);若所述操作涉及到被劃分至不同分區(qū)的數(shù)據(jù),則需要服務(wù)器集群對(duì)操作過程進(jìn)行不同結(jié)點(diǎn)間的協(xié)調(diào)控制;故先將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)后,再進(jìn)行操作,可以減少對(duì)數(shù)據(jù)進(jìn)行操作的時(shí)間,進(jìn)一步提升系統(tǒng)的效率。
附圖說明
圖1是本發(fā)明實(shí)施例的聯(lián)機(jī)分析處理方法的流程圖;
圖2是本發(fā)明實(shí)施例的聯(lián)機(jī)分析處理方法中一種刪除結(jié)點(diǎn)的方法的流程圖;
圖3是本發(fā)明實(shí)施例的聯(lián)機(jī)分析處理方法中一種客戶端向服務(wù)器集群寫入數(shù)據(jù)的方法的流程圖;
圖4是本發(fā)明實(shí)施例的聯(lián)機(jī)分析處理方法中一種數(shù)據(jù)查詢的方法的流程圖;
圖5是本發(fā)明實(shí)施例的聯(lián)機(jī)分析處理方法中一種數(shù)據(jù)自定義存放的方法的流程圖。
具體實(shí)施方式
如前所述,現(xiàn)有的聯(lián)機(jī)處理方法中,對(duì)服務(wù)器集群中新結(jié)點(diǎn)添加的效率較低。
現(xiàn)有的集群服務(wù)器為靜態(tài)集群服務(wù)器,當(dāng)新添加結(jié)點(diǎn)或者刪除結(jié)點(diǎn)時(shí),需要對(duì)已有的服務(wù)器集群更新配置并且分步分批重啟已有的服務(wù)器集群,使更新的配置生效。
在本發(fā)明實(shí)施例中,通過新結(jié)點(diǎn)連接至服務(wù)器集群中的任意一個(gè)或者多個(gè)現(xiàn)有的結(jié)點(diǎn)后,可以從所述任意一個(gè)或多個(gè)現(xiàn)有的結(jié)點(diǎn)獲取協(xié)調(diào)器的信息,根據(jù)協(xié)調(diào)器信息可以與所述協(xié)調(diào)器進(jìn)行連接,在連接后可以向協(xié)調(diào)器發(fā)出添加至服務(wù)器集群的申請(qǐng),協(xié)調(diào)器可以通過上述申請(qǐng)獲悉新結(jié)點(diǎn)的配置信息,進(jìn)而可以添加新結(jié)點(diǎn)的配置信息,以對(duì)現(xiàn)存的配置信息進(jìn)行更新。在上述過程中,由于協(xié)調(diào)器選自所述服務(wù)器集群中的結(jié)點(diǎn),可以進(jìn)行動(dòng)態(tài)變更,并且在新結(jié)點(diǎn)加入時(shí),由協(xié)調(diào)器對(duì)服務(wù)器集群的配置信息進(jìn)行更新,故可以在服務(wù)器集群中的結(jié)點(diǎn)在線的情況下,添加新結(jié)點(diǎn)至服務(wù)器集群,而無需對(duì)已有結(jié)點(diǎn)進(jìn)行重啟進(jìn)行配置更新。
為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)的說明。
圖1是本發(fā)明實(shí)施例中一種聯(lián)機(jī)分析處理方法的流程圖。圖1所示的聯(lián)機(jī)分析處理方法包括:提供服務(wù)器集群,所述服務(wù)器集群包括多個(gè)結(jié)點(diǎn),其中,新結(jié)點(diǎn)的添加過程可以通過如下步驟實(shí)現(xiàn):
步驟S11,所述新結(jié)點(diǎn)連接至所述服務(wù)器集群中任意一個(gè)或多個(gè)現(xiàn)有的結(jié)點(diǎn);
步驟S12,所述新結(jié)點(diǎn)從所述任意一個(gè)或多個(gè)現(xiàn)有的結(jié)點(diǎn)獲取協(xié)調(diào)器的信息,所述協(xié)調(diào)器選自所述服務(wù)器集群中的結(jié)點(diǎn);
步驟S13,所述新結(jié)點(diǎn)根據(jù)所述協(xié)調(diào)器的信息與所述協(xié)調(diào)器建立連接;
步驟S14,所述新結(jié)點(diǎn)向所述協(xié)調(diào)器發(fā)出添加至所述服務(wù)器集群的申請(qǐng);
步驟S15,所述新結(jié)點(diǎn)從所述協(xié)調(diào)器獲取更新后服務(wù)器集群的配置信息,所述更新后服務(wù)器集群的配置信息包括所述現(xiàn)有的結(jié)點(diǎn)的配置信息以及所述新結(jié)點(diǎn)的配置信息。
服務(wù)器集群中的不同結(jié)點(diǎn)可以是不同的服務(wù)器,服務(wù)器集群中的各個(gè)服務(wù)器可以協(xié)同工作,共同完成對(duì)數(shù)據(jù)的分析處理。例如可以對(duì)原始數(shù)據(jù)中進(jìn)行加工處理,然后形成能夠更易理解的、真實(shí)反映出多維特性的信息數(shù)據(jù);進(jìn)而可以幫助分析人員、管理人員等相關(guān)人員能夠從多種角度、不同層次、不同粒度對(duì)信息數(shù)據(jù)進(jìn)行快速、一致、交互地處理,從而獲得對(duì)原始數(shù)據(jù)的更深入了解。OLAP可以基于服務(wù)器集群滿足決策支持或多維環(huán)境下特定的存儲(chǔ)、計(jì)算、查詢和報(bào)表需求。
服務(wù)器集群中的結(jié)點(diǎn)通常是可以動(dòng)態(tài)調(diào)整的,可以向服務(wù)器集群添加新的結(jié)點(diǎn),也可以刪除服務(wù)器集群中現(xiàn)有的結(jié)點(diǎn)。
在添加新結(jié)點(diǎn)時(shí),可以如步驟S11中所示,將新結(jié)點(diǎn)連接至服務(wù)器集群中任意一個(gè)或者多個(gè)現(xiàn)有的結(jié)點(diǎn)。連接的過程可以通過在新結(jié)點(diǎn)配置服現(xiàn)有結(jié)點(diǎn)的信息完成。
由于在服務(wù)器集群中,每個(gè)現(xiàn)有的結(jié)點(diǎn)中均存儲(chǔ)有協(xié)調(diào)器的信息,故在連接至現(xiàn)有的結(jié)點(diǎn)后,可以如步驟S12所示,通過現(xiàn)有的結(jié)點(diǎn)獲取協(xié)調(diào)器的信息。協(xié)調(diào)器可以選自現(xiàn)有的結(jié)點(diǎn),可以對(duì)作為協(xié)調(diào)器的結(jié)點(diǎn)進(jìn)行更換。
在一個(gè)非限定性的例子中,協(xié)調(diào)器可以選擇服務(wù)器集群中最早的結(jié)點(diǎn)。當(dāng)前協(xié)調(diào)器退出服務(wù)器集群時(shí),可以在其退出后的服務(wù)器集群中選擇最早加入的結(jié)點(diǎn)作為協(xié)調(diào)器。
在新結(jié)點(diǎn)和協(xié)調(diào)器建立連接后,可以向協(xié)調(diào)器發(fā)送添加至所述服務(wù)器集群的申請(qǐng),如步驟S14所示。通過該申請(qǐng),協(xié)調(diào)器可以獲知新結(jié)點(diǎn)的配置信息。在具體實(shí)施中,配置信息可以是端口信息、結(jié)點(diǎn)的資源信息等,服務(wù)器集群可以根據(jù)配置信息進(jìn)行系統(tǒng)層面的統(tǒng)籌。
在具體實(shí)施中,協(xié)調(diào)器在獲取到新結(jié)點(diǎn)的配置信息后,可以添加新結(jié)點(diǎn)的配置信息,以對(duì)現(xiàn)存的配置信息進(jìn)行更新。協(xié)調(diào)器可以向新結(jié)點(diǎn)發(fā)送其它結(jié)點(diǎn)的配置信息,也可以向其他結(jié)點(diǎn)發(fā)送新結(jié)點(diǎn)的配置信息,以使得各個(gè)結(jié)點(diǎn)之間可以根據(jù)需要建立連接。至此,完成新結(jié)點(diǎn)添加至服務(wù)器集群的過程。
參見圖2,本發(fā)明實(shí)施例中的聯(lián)機(jī)分析處理方法還可以包括從服務(wù)器集群中刪除結(jié)點(diǎn),具體可以包括:
步驟S21,所述協(xié)調(diào)器接收來自待刪除的結(jié)點(diǎn)的移除請(qǐng)求信息;
步驟S22,在配置信息中移除所述待刪除結(jié)點(diǎn)的配置信息,以更新所述服務(wù)器集群的配置信息。
在具體實(shí)施中,待刪除結(jié)點(diǎn)向協(xié)調(diào)器發(fā)送請(qǐng)求信息可以是根據(jù)結(jié)點(diǎn)接收到的指令進(jìn)行,該指令可以是由用戶輸入至結(jié)點(diǎn),例如關(guān)閉指令。
在具體實(shí)施中,協(xié)調(diào)器更新所述服務(wù)器集群的配置信息可以是更新服務(wù)器集群中每個(gè)結(jié)點(diǎn)的配置信息,更新后的配置信息中不包含已刪除結(jié)點(diǎn)的配置信息。
在一具體實(shí)現(xiàn)中,在刪除結(jié)點(diǎn)后,協(xié)調(diào)器可以向待刪除結(jié)點(diǎn)反饋刪除操作的執(zhí)行結(jié)果。
本發(fā)明實(shí)施例中的服務(wù)器集群的內(nèi)存可以劃分為不同的數(shù)據(jù)桶,各個(gè)數(shù)據(jù)桶可以獨(dú)立地進(jìn)行業(yè)務(wù)處理。在具體實(shí)施中,參見圖3,聯(lián)機(jī)分析處理方法還可以包括客戶端向服務(wù)器集群寫入數(shù)據(jù)。具體地,參見圖3,可以包括以下步驟:
步驟S31,根據(jù)待寫入的鍵值對(duì)判斷待寫入的數(shù)據(jù)桶;
步驟S32,向所述待寫入的數(shù)據(jù)桶所在的結(jié)點(diǎn)發(fā)送所述鍵值對(duì),以向所述數(shù)據(jù)桶寫入所述鍵值對(duì)。
其中,數(shù)據(jù)桶為鍵值對(duì)的存儲(chǔ)單元,可以均衡的分布在集群中不同的結(jié)點(diǎn)中,以提供高效的數(shù)據(jù)查詢功能。在具體實(shí)施中,數(shù)據(jù)桶的劃分可以基于業(yè)務(wù)邏輯,同一結(jié)點(diǎn)中可以包含多個(gè)不同的數(shù)據(jù)桶。由于每個(gè)數(shù)據(jù)桶均可以獨(dú)立的進(jìn)行業(yè)務(wù)處理,故可以提升系統(tǒng)的并發(fā)性。
在一具體實(shí)現(xiàn)中,鍵值對(duì)中的鍵可以指示業(yè)務(wù)類型或業(yè)務(wù)需求,服務(wù)器集群可以根據(jù)鍵和各個(gè)服務(wù)器的負(fù)載及各個(gè)服務(wù)器的資源利用率來確定鍵值對(duì)的存儲(chǔ)位置,從而在滿足業(yè)務(wù)需求的同時(shí)提升系統(tǒng)的均衡性。
本發(fā)明實(shí)施例中的聯(lián)機(jī)分析處理方法還可以包括數(shù)據(jù)查詢,具體可以參見圖4,包括以下步驟:
步驟S41,所述服務(wù)器集群接收查詢函數(shù),所述查詢函數(shù)用于對(duì)所述服務(wù)器集群中的目標(biāo)數(shù)據(jù)進(jìn)行處理;
步驟S42,所述服務(wù)器集群確定所述目標(biāo)數(shù)據(jù)所在的數(shù)據(jù)桶,在所述數(shù)據(jù)桶中執(zhí)行所述查詢函數(shù);
步驟S43,所述服務(wù)器集群返回所述查詢函數(shù)的執(zhí)行結(jié)果。
其中,查詢函數(shù)可以根據(jù)業(yè)務(wù)需求對(duì)對(duì)目標(biāo)數(shù)據(jù)進(jìn)行處理,通常步驟S43中所述的執(zhí)行結(jié)果的數(shù)據(jù)量會(huì)小于目標(biāo)數(shù)據(jù)的數(shù)據(jù)量,故在服務(wù)器集群利用查詢函數(shù)對(duì)目標(biāo)數(shù)據(jù)進(jìn)行處理后僅返回執(zhí)行結(jié)果,可以節(jié)省網(wǎng)絡(luò)資源。另外,由于服務(wù)器集群的資源較為豐富,并且可以在不同的數(shù)據(jù)桶中可以獨(dú)立的執(zhí)行查詢函數(shù),可以提升系統(tǒng)的并行處理能力,進(jìn)一步可以系統(tǒng)效率也得到提升;同時(shí),也可以節(jié)省客戶端的資源。
本發(fā)明實(shí)施例中的聯(lián)機(jī)分析處理方法還可以包括自定義數(shù)據(jù)存放,具體可以參見圖5,包括如下步驟:
步驟S51,客戶端在所述服務(wù)器集群注冊(cè)插件,所述插件配置有自定義存放算法;
步驟S52,所述服務(wù)器集群利用所述插件配置的自定義存放算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。
其中,自定義存放算法可以根據(jù)業(yè)務(wù)需求確定?,F(xiàn)有的聯(lián)機(jī)分析處理方法中,對(duì)數(shù)據(jù)的存放更多是由服務(wù)器集群從系統(tǒng)的負(fù)載平衡角度確定,用戶無法根據(jù)業(yè)務(wù)需求對(duì)數(shù)據(jù)的存放位置進(jìn)行自定義,而服務(wù)器集群確定的數(shù)據(jù)存放方式往往無法滿足業(yè)務(wù)的需求,例如,一個(gè)業(yè)務(wù)所需要的數(shù)據(jù)可能被分散的存在不同結(jié)點(diǎn)中。如此,現(xiàn)有的基于服務(wù)器集群的聯(lián)機(jī)分析處理方法的效率也會(huì)受到網(wǎng)絡(luò)傳輸性能的影響。
而在本發(fā)明實(shí)施例中,客戶端可以在服務(wù)器集群注冊(cè)插件,插件中配置由客戶端根據(jù)自身需求設(shè)置的自定義存放算法,服務(wù)器集群可以利用插件配置的自定義算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。通過上述方式可以由根據(jù)客戶端設(shè)置的方式進(jìn)行數(shù)據(jù)的存放,而非僅能根據(jù)服務(wù)器集群的分配進(jìn)行存放,通過設(shè)置合理的存放算法,可以在利用服務(wù)器集群進(jìn)行分布式計(jì)算時(shí),直接在一個(gè)結(jié)點(diǎn)或者網(wǎng)絡(luò)距離較近的幾個(gè)結(jié)點(diǎn)中進(jìn)行計(jì)算,進(jìn)而可以避免通過網(wǎng)絡(luò)傳輸帶來的性能損耗,進(jìn)而可以提升服務(wù)器集群的響應(yīng)性能。
在具體實(shí)施中,所述服務(wù)器集群的內(nèi)存可以劃分為不同的數(shù)據(jù)分區(qū),所述自定義存放算法綁定至一個(gè)或多個(gè)數(shù)據(jù)分區(qū);所述服務(wù)器集群利用所述插件配置的自定義存放算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放包括:當(dāng)所述數(shù)據(jù)待存放至的數(shù)據(jù)分區(qū)為綁定所述自定義存放算法的數(shù)據(jù)分區(qū)時(shí),利用所述自定義存放算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。
其中,數(shù)據(jù)分區(qū)可以以鍵值對(duì)為基本操作單元,數(shù)據(jù)分區(qū)中可以含有完整數(shù)據(jù)存儲(chǔ)的描述信息和數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的,可以直接提供給客戶端進(jìn)行調(diào)用的邏輯結(jié)構(gòu)。
在具體實(shí)施中,所述插件可以在服務(wù)器集群對(duì)內(nèi)存進(jìn)行劃分前進(jìn)行注冊(cè),并綁定一個(gè)或多個(gè)數(shù)據(jù)分區(qū)。在服務(wù)器集群對(duì)內(nèi)存進(jìn)行劃分完成后,也可以對(duì)插件中配置的自定義存放算法進(jìn)行調(diào)整。當(dāng)所述數(shù)據(jù)待存放至的數(shù)據(jù)分區(qū)為綁定所述自定義存放算法的數(shù)據(jù)分區(qū)時(shí),才利用所述自定義存放算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。由此,可以提供更加靈活的數(shù)據(jù)存放方式。
本發(fā)明實(shí)施例中的聯(lián)機(jī)分析處理方法還可以包括:所述服務(wù)器集群判斷所述客戶端是否對(duì)被劃分至不同數(shù)據(jù)分區(qū)的數(shù)據(jù)進(jìn)行操作,若對(duì)被劃分至不同數(shù)據(jù)分區(qū)的數(shù)據(jù)進(jìn)行操作,則將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)后,再進(jìn)行所述操作。
當(dāng)客戶端的操作涉及的數(shù)據(jù)被劃分至不同的分區(qū)時(shí),可以將操作涉及到的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn),在進(jìn)行所述操作。由于客戶端與服務(wù)器集群之間進(jìn)行數(shù)據(jù)交互的用時(shí)通常比較長(zhǎng);若所述操作涉及到被劃分至不同分區(qū)的數(shù)據(jù),則需要服務(wù)器集群對(duì)操作過程進(jìn)行不同結(jié)點(diǎn)間的協(xié)調(diào)控制,故所述集群服務(wù)器需要在數(shù)據(jù)交互的過程中進(jìn)行等待;由此,先將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)后,再進(jìn)行操作,可以減輕服務(wù)器集群負(fù)擔(dān),并且服務(wù)器集群無需在數(shù)據(jù)交互的過程中進(jìn)行所述操作的等待,故可以減少對(duì)數(shù)據(jù)進(jìn)行操作的時(shí)間,進(jìn)一步提升系統(tǒng)的效率。
具體地,所述操作可以是寫入操作;將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)包括:將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)的緩存;所述聯(lián)機(jī)分析處理方法還包括:在寫入完成后,對(duì)比所述寫入的數(shù)據(jù)和所述緩存中的數(shù)據(jù),若不一致,則重新寫入。
其中,寫入操作可以是客戶端向服務(wù)器集群進(jìn)行的寫入操作,服務(wù)器集群可以先對(duì)寫入操作涉及到的數(shù)據(jù)進(jìn)行判斷,若寫入操作涉及到的操作被劃分至不同的數(shù)據(jù)分區(qū),則可以先將操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)的緩存,待復(fù)制結(jié)束后,再進(jìn)行對(duì)不同數(shù)據(jù)分區(qū)的寫入。
由于在寫入完成后,比所述寫入的數(shù)據(jù)和所述緩存中的數(shù)據(jù),在不一致時(shí)重新寫入,故可以提升寫入操作的可靠性。
本發(fā)明實(shí)施例中的聯(lián)機(jī)分析處理方法還可以包括:所述服務(wù)器集群異步的進(jìn)行將數(shù)據(jù)寫入內(nèi)存的操作和對(duì)數(shù)據(jù)的持久化操作。
數(shù)據(jù)的持久化即將內(nèi)存的數(shù)據(jù)存儲(chǔ)至永久性存儲(chǔ)單元。由于本發(fā)明實(shí)施例中默認(rèn)將數(shù)據(jù)存放在服務(wù)器集群的內(nèi)存中,為了避免在數(shù)據(jù)管理服務(wù)結(jié)點(diǎn)出現(xiàn)故障時(shí)內(nèi)存中數(shù)據(jù)的丟失,可以對(duì)內(nèi)存中數(shù)據(jù)進(jìn)行持久化操作。
可以通過更改配置,選擇將數(shù)據(jù)存放在結(jié)點(diǎn)的本地文件系統(tǒng)或者任何分布式文件系統(tǒng),比如HDFS等。也可以同時(shí)利用多種持久化的方式。
若客戶端每次調(diào)用寫入內(nèi)存的操作均調(diào)用相應(yīng)的持久化操作,會(huì)造成額外的存儲(chǔ)負(fù)荷,降低系統(tǒng)寫入吞吐。因此,本發(fā)明實(shí)施例中的聯(lián)機(jī)分析處理方法可以異步地進(jìn)行將數(shù)據(jù)寫入內(nèi)存的操作和對(duì)數(shù)據(jù)的持久化操作,從而可以提高系統(tǒng)吞吐量,降低響應(yīng)延遲。
本發(fā)明實(shí)施例通過新結(jié)點(diǎn)連接至服務(wù)器集群中的任意一個(gè)或者多個(gè)現(xiàn)有的結(jié)點(diǎn)后,可以從所述任意一個(gè)或多個(gè)現(xiàn)有的結(jié)點(diǎn)獲取協(xié)調(diào)器的信息,根據(jù)協(xié)調(diào)器信息可以與所述協(xié)調(diào)器進(jìn)行連接,在連接后可以向協(xié)調(diào)器發(fā)出添加至服務(wù)器集群的申請(qǐng),協(xié)調(diào)器可以通過上述申請(qǐng)獲悉新結(jié)點(diǎn)的配置信息,進(jìn)而可以添加新結(jié)點(diǎn)的配置信息,以對(duì)現(xiàn)存的配置信息進(jìn)行更新。在上述過程中,由于協(xié)調(diào)器選自所述服務(wù)器集群中的結(jié)點(diǎn),可以進(jìn)行動(dòng)態(tài)變更,并且在新結(jié)點(diǎn)加入時(shí),由協(xié)調(diào)器對(duì)服務(wù)器集群的配置信息進(jìn)行更新,故可以在服務(wù)器集群中的結(jié)點(diǎn)在線的情況下,添加新結(jié)點(diǎn)至服務(wù)器集群,而無需對(duì)已有結(jié)點(diǎn)進(jìn)行重啟進(jìn)行配置更新。
進(jìn)一步,所述服務(wù)器集群的內(nèi)存劃分為不同的數(shù)據(jù)桶,各個(gè)數(shù)據(jù)桶獨(dú)立的進(jìn)行業(yè)務(wù)處理,故可以減少數(shù)據(jù)桶之間的依賴,使得各個(gè)數(shù)據(jù)桶可以相互獨(dú)立的進(jìn)行各自的業(yè)務(wù)處理。進(jìn)而在不同的數(shù)據(jù)桶中可以獨(dú)立的執(zhí)行查詢函數(shù),提升系統(tǒng)的并行處理能力,進(jìn)一步提升系統(tǒng)效率。
進(jìn)一步,客戶端可以在服務(wù)器集群注冊(cè)插件,插件中配置由客戶端根據(jù)自身需求設(shè)置的自定義存放算法,服務(wù)器集群可以利用插件配置的自定義算法對(duì)接收到的數(shù)據(jù)進(jìn)行自定義存放。通過上述方式可以由根據(jù)客戶端設(shè)置的方式進(jìn)行數(shù)據(jù)的存放,而非僅能根據(jù)服務(wù)器集群的分配進(jìn)行存放,通過設(shè)置合理的存放算法,可以在利用服務(wù)器集群進(jìn)行分布式計(jì)算時(shí),直接在一個(gè)結(jié)點(diǎn)或者網(wǎng)絡(luò)距離較近的幾個(gè)結(jié)點(diǎn)中進(jìn)行計(jì)算,進(jìn)而可以避免通過網(wǎng)絡(luò)傳輸帶來的性能損耗,進(jìn)而可以提升服務(wù)器集群的響應(yīng)性能。
進(jìn)一步,當(dāng)客戶端的操作涉及的數(shù)據(jù)被劃分至不同的分區(qū)時(shí),可以將操作涉及到的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn),在進(jìn)行所述操作。由于客戶端與服務(wù)器集群之間進(jìn)行數(shù)據(jù)交互的用時(shí)通常比較長(zhǎng);若所述操作涉及到被劃分至不同分區(qū)的數(shù)據(jù),則需要服務(wù)器集群對(duì)操作過程進(jìn)行不同結(jié)點(diǎn)間的協(xié)調(diào)控制;故先將所述操作涉及的數(shù)據(jù)復(fù)制到同一結(jié)點(diǎn)后,再進(jìn)行操作,可以減少對(duì)數(shù)據(jù)進(jìn)行操作的時(shí)間,進(jìn)一步提升系統(tǒng)的效率。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。