專利名稱:一種數(shù)據(jù)處理方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及其系統(tǒng)。
背景技術(shù):
UGC (User Generation Content,也有稱 User Created Content,用戶原創(chuàng)內(nèi)容)是一種用戶使用互聯(lián)網(wǎng)的新方式,即由原來的以下載為主變成下載和上傳并重。社區(qū)網(wǎng)絡(luò)、視頻分享和博客等都是UGC的主要應(yīng)用形式。隨著智能終端的多樣化,以及互聯(lián)網(wǎng)業(yè)務(wù)的不斷發(fā)展,UGC業(yè)務(wù)正在日漸崛起,引起了業(yè)界的廣泛關(guān)注。由于數(shù)據(jù)是用戶產(chǎn)生的,海量的用戶催生出海量的數(shù)據(jù),最終帶來更大量級的數(shù)據(jù)讀寫請求。為了運(yùn)營需要,數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)時(shí),會將用戶按照某些維度拆分成足夠細(xì)的 粒度分別部署,如將所有用戶拆分成不同單位Unit,讓每個(gè)服務(wù)進(jìn)程負(fù)責(zé)一些Unit,系統(tǒng)運(yùn)營時(shí)可按各個(gè)服務(wù)進(jìn)程的負(fù)載情況隨時(shí)調(diào)整部署。這里的Unit是部署的最小單位,一般為一段大小連續(xù)的用戶ID,不可再拆分。但UGC業(yè)務(wù)中往往存在這樣一種數(shù)據(jù)幾乎所有用戶都會去讀取,又無法再拆分。所有用戶去讀取,意味著整個(gè)系統(tǒng)的讀請求量有多大,這些數(shù)據(jù)所在的服務(wù)進(jìn)程就需要承受多大的壓力;不能再分割,意味著這些數(shù)據(jù)的粒度已經(jīng)足夠細(xì),無法再拆分部署到多個(gè)服務(wù)進(jìn)程。這就是所謂的“單點(diǎn)數(shù)據(jù)”。單點(diǎn)帶來的問題很明顯,在有串包機(jī)制時(shí)引發(fā)的問題更為嚴(yán)重。如圖I所示,進(jìn)程X負(fù)責(zé)單點(diǎn)數(shù)據(jù)的處理,它會影響整個(gè)系統(tǒng)的服務(wù)能力和擴(kuò)展性一旦進(jìn)程X的訪問量超過其處理能力,整個(gè)系統(tǒng)都將不能正常服務(wù)。所謂串包機(jī)制也稱數(shù)據(jù)串行處理機(jī)制,如圖I所示,接口機(jī)接收到的外部數(shù)據(jù)請求中會包含有對多個(gè)普通用戶數(shù)據(jù)的處理請求和對特殊用戶數(shù)據(jù)的處理請求,普通用戶數(shù)據(jù)會分布在不同的設(shè)備上,特殊用戶數(shù)據(jù)(即單點(diǎn)數(shù)據(jù))則集中部署,這些數(shù)據(jù)處理請求按照如圖所示的方式串行處理。為解決這一問題,目前采取了對進(jìn)程X進(jìn)行改造的方式,通過優(yōu)化存儲結(jié)構(gòu)和處理邏輯,加強(qiáng)安全性等手段,提升其服務(wù)能力和穩(wěn)定性,防止成為整個(gè)系統(tǒng)的瓶頸。比如,用內(nèi)存存儲替代文件存儲,也可以簡化處理邏輯,處理上又可減輕一部分壓力。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題
(I)系統(tǒng)設(shè)計(jì)復(fù)雜。針對普通數(shù)據(jù)(即非單點(diǎn)數(shù)據(jù))和特殊數(shù)據(jù)(即單點(diǎn)數(shù)據(jù)),實(shí)質(zhì)上存在兩種設(shè)計(jì),整個(gè)系統(tǒng)架構(gòu)變得復(fù)雜。(2)穩(wěn)定性差。現(xiàn)有方案雖然一定程度上解決了服務(wù)能力問題,但進(jìn)程X仍然負(fù)載著整個(gè)系統(tǒng)的請求量,一旦該服務(wù)進(jìn)程出現(xiàn)問題或處理異常,則整個(gè)系統(tǒng)都將受影響。(3)可擴(kuò)展性差。當(dāng)請求量持續(xù)增大時(shí),系統(tǒng)的處理能力仍有可能受制于特殊服務(wù)進(jìn)程(如圖I中進(jìn)程X)的處理能力。(4)運(yùn)維成本高。由此可見,針對單點(diǎn)處理,目前亟需一種系統(tǒng)結(jié)構(gòu)簡單、穩(wěn)定性高,以及可擴(kuò)展性強(qiáng)的數(shù)據(jù)處理機(jī)制。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法及其系統(tǒng),用以解決現(xiàn)有技術(shù)中,針對單點(diǎn)處理過程,系統(tǒng)結(jié)構(gòu)設(shè)計(jì)復(fù)雜、穩(wěn)定性差和可擴(kuò)展性差的問題。本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法,包括
對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝中的一份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),并分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程;
當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的寫操作請求時(shí),將該寫操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理;
當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),將該讀操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)或/和從數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理。本發(fā)明實(shí)施例提供的數(shù)據(jù)處理系統(tǒng),包括
單點(diǎn)數(shù)據(jù)預(yù)處理模塊,用于對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝中的一份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),并分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程;
數(shù)據(jù)請求分發(fā)模塊,用于當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的寫操作請求時(shí),將該寫操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理;以及,當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),將該讀操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)或/從數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理。本發(fā)明的上述實(shí)施例,通過對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所有數(shù)據(jù)拷貝中的一份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),并分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程,對于寫數(shù)據(jù)的請求,分發(fā)給主數(shù)據(jù)所在服務(wù)進(jìn)程處理,對于讀數(shù)據(jù)的請求,分發(fā)給主數(shù)據(jù)或/和從數(shù)據(jù)所在的服務(wù)進(jìn)程處理,從而與現(xiàn)有技術(shù)相比,一方面不用區(qū)分普通數(shù)據(jù)(非單點(diǎn)數(shù)據(jù))和特殊數(shù)據(jù)(單點(diǎn)數(shù)據(jù))以及設(shè)計(jì)不同的服務(wù)進(jìn)程,系統(tǒng)設(shè)計(jì)簡單;另一方面,系統(tǒng)中不再存在單點(diǎn),因而系統(tǒng)穩(wěn)定性提高;再一方面,數(shù)據(jù)可根據(jù)需要進(jìn)行復(fù)制,提高了系統(tǒng)可擴(kuò)展性。
圖I為現(xiàn)有技術(shù)中的單點(diǎn)數(shù)據(jù)處理模型示意 圖2為本發(fā)明實(shí)施例提供的單點(diǎn)數(shù)據(jù)的預(yù)處理流程示意 圖3為本發(fā)明實(shí)施例提供的單點(diǎn)數(shù)據(jù)處理模型示意 圖4為本發(fā)明實(shí)施例提供的單點(diǎn)數(shù)據(jù)的處理流程示意 圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式針對現(xiàn)有技術(shù)存在的問題,本發(fā)明實(shí)施例提供了一種單點(diǎn)數(shù)據(jù)處理方案,通過部署多份數(shù)據(jù)解決了單點(diǎn)依賴的問題。本發(fā)明實(shí)施例提供的技術(shù)方案在維持一套技術(shù)架構(gòu)的情況下,解決了單點(diǎn)數(shù)據(jù)的瓶頸問題,在系統(tǒng)擴(kuò)容和部署上,特殊數(shù)據(jù)(單點(diǎn)數(shù)據(jù))和普通數(shù)據(jù)(非單點(diǎn)數(shù)據(jù))沒有區(qū)別,從而使系統(tǒng)的穩(wěn)定性和可靠性得到一定保證。
下面結(jié)合附圖對本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。在本發(fā)明實(shí)施例中,將UGC等類似業(yè)務(wù)中存在的特殊數(shù)據(jù)(即幾乎所有用戶都會去讀取,但該數(shù)據(jù)又無法再拆分)稱為單點(diǎn)數(shù)據(jù)。針對單點(diǎn)數(shù)據(jù),本發(fā)明實(shí)施例中,首先對其進(jìn)行復(fù)制,得到多份數(shù)據(jù)拷貝,并將其中的一份數(shù)據(jù)拷貝作為該單點(diǎn)數(shù)據(jù)的主數(shù)據(jù),將其它數(shù)據(jù)拷貝作為該單點(diǎn)數(shù)據(jù)的從數(shù)據(jù)。然后,分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)的服務(wù)進(jìn)程,數(shù)據(jù)拷貝可與服務(wù)進(jìn)程一一對應(yīng)。主數(shù)據(jù)所在的服務(wù)進(jìn)程支持?jǐn)?shù)據(jù)的寫操作,從數(shù)據(jù)所在的服務(wù)進(jìn)程支持?jǐn)?shù)據(jù)的讀操作。上述處理流程可稱為單點(diǎn)數(shù)據(jù)的預(yù)處理流程,如圖2所示,該流程可包括
步驟201,對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,得到多份數(shù)據(jù)拷貝。單點(diǎn)數(shù)據(jù)的總的數(shù)據(jù)拷貝數(shù)量(包括原數(shù)據(jù)和復(fù)制得到的數(shù)據(jù))不少于兩份,具體 可根據(jù)各單點(diǎn)數(shù)據(jù)的請求量,或根據(jù)單點(diǎn)數(shù)據(jù)的請求量與非單點(diǎn)數(shù)據(jù)(即普通數(shù)據(jù))的請求量的比例,為單點(diǎn)數(shù)據(jù)部署合適數(shù)量的數(shù)據(jù)拷貝。此處單點(diǎn)數(shù)據(jù)的請求量是指對單點(diǎn)數(shù)據(jù)進(jìn)行讀寫操作的請求量。例如,當(dāng)單點(diǎn)數(shù)據(jù)的請求量是普通數(shù)據(jù)請求量的N倍時(shí),則該單點(diǎn)數(shù)據(jù)的拷貝數(shù)量為N份。在部署單點(diǎn)數(shù)據(jù)的數(shù)據(jù)拷貝時(shí),還可進(jìn)一步結(jié)合單個(gè)服務(wù)進(jìn)程的處理能力,即,根據(jù)單點(diǎn)數(shù)據(jù)的請求量和單個(gè)服務(wù)進(jìn)程的處理能力,合理部署單點(diǎn)數(shù)據(jù)的拷貝數(shù)量,其中請求量越高,單點(diǎn)數(shù)據(jù)的拷貝數(shù)量越高,單個(gè)服務(wù)進(jìn)程的處理能力越低,單點(diǎn)數(shù)據(jù)的拷貝數(shù)量越高。步驟202,為各數(shù)據(jù)拷貝分配拷貝標(biāo)識。為單點(diǎn)數(shù)據(jù)的每一份數(shù)據(jù)拷貝對應(yīng)分配一個(gè)拷貝標(biāo)識(Copy ID),該拷貝標(biāo)識能夠唯一標(biāo)識該單點(diǎn)數(shù)據(jù)的不同數(shù)據(jù)拷貝。為方便系統(tǒng)實(shí)現(xiàn),Copy ID可從0開始分配,并依次遞增,這樣,Copy ID的數(shù)值可表明對應(yīng)數(shù)據(jù)拷貝是單點(diǎn)數(shù)據(jù)的第幾份拷貝。Copy ID為0的數(shù)據(jù)拷貝為該單點(diǎn)數(shù)據(jù)的主數(shù)據(jù),Copy ID ^ I的數(shù)據(jù)拷貝為該單點(diǎn)數(shù)據(jù)的從數(shù)據(jù),如,當(dāng)單點(diǎn)數(shù)據(jù)的拷貝數(shù)量為n時(shí),Copy ID=O的數(shù)據(jù)為該單點(diǎn)數(shù)據(jù)的主數(shù)據(jù),Copy ID=1,2…n-1的數(shù)據(jù)分別為該單點(diǎn)數(shù)據(jù)的n-1份從數(shù)據(jù)。步驟203,分別將該單點(diǎn)數(shù)據(jù)的各數(shù)據(jù)拷貝分配給對應(yīng)的服務(wù)進(jìn)程。該步驟中,數(shù)據(jù)拷貝可與服務(wù)進(jìn)程一一對應(yīng)。主數(shù)據(jù)所在的服務(wù)進(jìn)程負(fù)責(zé)數(shù)據(jù)的寫操作,從數(shù)據(jù)所在的服務(wù)進(jìn)程負(fù)責(zé)數(shù)據(jù)的讀操作。在對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,得到多份數(shù)據(jù)拷貝后,還可根據(jù)需要對數(shù)據(jù)拷貝數(shù)量進(jìn)行調(diào)整,調(diào)整方式可參考步驟201中所述的確定數(shù)據(jù)拷貝數(shù)量的方式。當(dāng)單點(diǎn)數(shù)據(jù)的請求量下降時(shí),或/和單個(gè)服務(wù)進(jìn)程的處理能力增強(qiáng)時(shí),可適當(dāng)減少數(shù)據(jù)拷貝數(shù)量,反之,則可適當(dāng)增加數(shù)據(jù)拷貝數(shù)量,新增加的數(shù)據(jù)拷貝作為從數(shù)據(jù),分配給對應(yīng)的服務(wù)進(jìn)程。在對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,得到多份數(shù)據(jù)拷貝后,為了保證數(shù)據(jù)的一致性,當(dāng)該單點(diǎn)數(shù)據(jù)發(fā)生變更時(shí),還要在其主從數(shù)據(jù)之間進(jìn)行數(shù)據(jù)同步。具體的,由于主數(shù)據(jù)所在服務(wù)進(jìn)程負(fù)責(zé)主數(shù)據(jù)的寫操作,從數(shù)據(jù)所在進(jìn)程負(fù)責(zé)對從數(shù)據(jù)的讀操作,因此主數(shù)據(jù)會發(fā)生數(shù)據(jù)變更。當(dāng)主數(shù)據(jù)發(fā)生數(shù)據(jù)變更后,將變更后的主數(shù)據(jù)同步到對應(yīng)的從數(shù)據(jù)中,以保證數(shù)據(jù)的一致性?;谏鲜鰡吸c(diǎn)數(shù)據(jù)的預(yù)處理流程,或進(jìn)一步結(jié)合數(shù)據(jù)同步或/和數(shù)據(jù)拷貝數(shù)量調(diào)整流程,本發(fā)明實(shí)施例對單點(diǎn)數(shù)據(jù)的訪問處理流程進(jìn)行了相應(yīng)改進(jìn)。如圖3所示,當(dāng)接收到對單點(diǎn)數(shù)據(jù)的寫操作請求時(shí),將該寫操作請求分發(fā)給該單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程(如圖3中的進(jìn)程XI)進(jìn)行處理;當(dāng)接收到對單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),將該讀操作請求分發(fā)給所該點(diǎn)數(shù)據(jù)的主數(shù)據(jù)或/和從數(shù)據(jù)所在的服務(wù)進(jìn)程(如圖3中的進(jìn)程Xl…Xn其中之一)進(jìn)行處理。下面以圖3所示的單點(diǎn)數(shù)據(jù)處理模型為例,結(jié)合圖4對單點(diǎn)數(shù)據(jù)處理流程進(jìn)行詳細(xì)描述。其中,單點(diǎn)數(shù)據(jù)的拷貝數(shù)量為n,Copy ID=O的數(shù)據(jù)為該單點(diǎn)數(shù)據(jù)的主數(shù)據(jù),CopyID=1,2…n-1的數(shù)據(jù)分別為該單點(diǎn)數(shù)據(jù)的n-1份從數(shù)據(jù)。主數(shù)據(jù)所在的服務(wù)進(jìn)程為進(jìn)程XI,各從數(shù)據(jù)所在的服務(wù)進(jìn)程分別為進(jìn)程X2…Xn。參見圖4,為本發(fā)明實(shí)施例提供的單點(diǎn)數(shù)據(jù)的處理流程示意圖,如圖所示,該流程可包括
步驟401,接收對單點(diǎn)數(shù)據(jù)的訪問處理請求。具體的,接口機(jī)接收到外部的用戶數(shù)據(jù)訪問請求后,該請求串行執(zhí)行到普通用戶數(shù)據(jù)(即非單點(diǎn)數(shù)據(jù))后,在需要對特殊用戶數(shù)據(jù)(即單點(diǎn)數(shù)據(jù))進(jìn)行處理時(shí),則向存儲有該特殊用戶數(shù)據(jù)的設(shè)備或存儲模塊發(fā)送數(shù)據(jù)訪問請求。
·
步驟402,判斷該訪問處理請求是寫操作請求還是讀操作請求,若是讀操作請求,則轉(zhuǎn)入步驟403,若是寫操作請求則轉(zhuǎn)入步驟404。步驟403,將數(shù)據(jù)讀操作請求發(fā)往該單點(diǎn)數(shù)據(jù)的Copy ID=O…n_l的數(shù)據(jù)拷貝所在的進(jìn)程Xl…Xn之一。接收到該讀數(shù)據(jù)操作請求的進(jìn)程對該單點(diǎn)數(shù)據(jù)的從數(shù)據(jù)進(jìn)行讀操作處理。處理完成之后,可根據(jù)需要繼續(xù)串行到普通用戶數(shù)據(jù),或者返回處理結(jié)果。該步驟中,可將數(shù)據(jù)讀操作請求隨機(jī)發(fā)往Copy ID=O…n-1中的任意一個(gè)數(shù)據(jù)拷貝所在的服務(wù)進(jìn)程進(jìn)行處理;也可根據(jù)這些服務(wù)進(jìn)程的忙閑狀態(tài),從中選擇一個(gè)狀態(tài)為閑的服務(wù)進(jìn)程進(jìn)行處理;還可以在這些服務(wù)進(jìn)程的處理能力不同的情況下,從中選擇處理能力強(qiáng)的服務(wù)進(jìn)程進(jìn)行處理。步驟404,將數(shù)據(jù)寫操作請求發(fā)往該單點(diǎn)數(shù)據(jù)的Copy ID=O的數(shù)據(jù)拷貝所在的進(jìn)程XI,進(jìn)程Xl根據(jù)接收到的寫操作請求對該單點(diǎn)數(shù)據(jù)的Copy ID=O的數(shù)據(jù)拷貝進(jìn)行寫操作處理。處理完成之后,可根據(jù)需要繼續(xù)串行到普通用戶數(shù)據(jù),或者返回處理結(jié)果。為了保證數(shù)據(jù)一致性,當(dāng)通過步驟404對該單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)進(jìn)行寫操作處理,從而使主數(shù)據(jù)發(fā)生變更后,則在步驟404之后還可包括以下步驟
步驟405,將該單點(diǎn)數(shù)據(jù)變更后的主數(shù)據(jù)同步到該單點(diǎn)數(shù)據(jù)的各從數(shù)據(jù)中。該步驟可通過數(shù)據(jù)處理系統(tǒng)中的具有數(shù)據(jù)運(yùn)維功能的模塊實(shí)現(xiàn)。通過以上描述可以看出,本發(fā)明實(shí)施例通過對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所有數(shù)據(jù)拷貝中的一份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),并分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程,對于寫數(shù)據(jù)的請求,分發(fā)給主數(shù)據(jù)所在服務(wù)進(jìn)程處理,對于讀數(shù)據(jù)的請求,分發(fā)給從數(shù)據(jù)所在的服務(wù)進(jìn)程處理,從而與現(xiàn)有技術(shù)相比,一方面不用區(qū)分特殊數(shù)據(jù)(單點(diǎn)數(shù)據(jù))和普通數(shù)據(jù)(非單點(diǎn)數(shù)據(jù))以及設(shè)計(jì)不同的服務(wù)進(jìn)程,因而系統(tǒng)設(shè)計(jì)簡單 ’另一方面,系統(tǒng)中不再存在單點(diǎn),因而系統(tǒng)穩(wěn)定性提高;再一方面,數(shù)據(jù)可根據(jù)需要進(jìn)行復(fù)制,提高了系統(tǒng)可擴(kuò)展性。由于以上這些方面的改進(jìn),使數(shù)據(jù)處理系統(tǒng)的運(yùn)維成本得以降低。本發(fā)明的上述流程可通過軟件編程方式實(shí)現(xiàn)。參見圖5,為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖,該數(shù)據(jù)處理系統(tǒng)可應(yīng)用于本發(fā)明實(shí)施例的上述流程。該數(shù)據(jù)處理系統(tǒng)可包括單點(diǎn)數(shù)據(jù)預(yù)處理模塊501,用于對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝中的一份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),并分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程;
數(shù)據(jù)請求分發(fā)模塊502,用于當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的寫操作請求時(shí),將該寫操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理;以及,當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),將該讀操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)或/和從數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理。上述系統(tǒng)中,還可包括同步模塊503,用于在所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程對所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)完成寫操作處理之后,將變更后的主數(shù)據(jù)同步到所述單點(diǎn)數(shù) 據(jù)的各從數(shù)據(jù)中。上述系統(tǒng)中,數(shù)據(jù)請求分發(fā)模塊502具體用于,若所述單點(diǎn)數(shù)據(jù)的從數(shù)據(jù)為多份,則當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),從所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)和多份從數(shù)據(jù)所在的服務(wù)進(jìn)程中選擇一個(gè)服務(wù)進(jìn)程,并將該讀操作請求分發(fā)給選擇出的服務(wù)進(jìn)程進(jìn)行處理;其中,選擇服務(wù)進(jìn)程的方式包括以下之一
隨機(jī)選擇;
根據(jù)服務(wù)進(jìn)程的忙閑狀態(tài)選擇;
根據(jù)服務(wù)進(jìn)程的處理能力選擇。上述系統(tǒng)中,單點(diǎn)數(shù)據(jù)預(yù)處理模塊501還用于,在對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制后,對所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝分配拷貝標(biāo)識,并通過拷貝標(biāo)識區(qū)分主數(shù)據(jù)和從數(shù)據(jù)。上述系統(tǒng)中,單點(diǎn)數(shù)據(jù)預(yù)處理模塊501具體用于,對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制時(shí),根據(jù)所述單點(diǎn)數(shù)據(jù)的請求量確定所述單點(diǎn)數(shù)據(jù)的拷貝數(shù)量;單點(diǎn)數(shù)據(jù)預(yù)處理模塊501還用于,對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制后,根據(jù)所述單點(diǎn)數(shù)據(jù)的請求量的變化情況調(diào)整所述單點(diǎn)數(shù)據(jù)的拷貝數(shù)量。上述系統(tǒng)中,單點(diǎn)數(shù)據(jù)預(yù)處理模塊501和同步模塊503屬于該數(shù)據(jù)處理系統(tǒng)中的運(yùn)維功能模塊,如可以是運(yùn)維模塊中的子模塊;數(shù)據(jù)請求分發(fā)模塊502屬于該數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理功能模塊,如可以是數(shù)據(jù)處理模塊中的子模塊。本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.ー種數(shù)據(jù)處理方法,其特征在于,包括 對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝中的ー份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),井分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程; 當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的寫操作請求時(shí),將該寫操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理; 當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),將該讀操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)或/和從數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理。
2.如權(quán)利要求I所述的方法,其特征在于,還包括 在所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程對所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)完成寫操作處理之后,將變更后的主數(shù)據(jù)同步到所述單點(diǎn)數(shù)據(jù)的各從數(shù)據(jù)中。
3.如權(quán)利要求I所述的方法,其特征在于,若所述單點(diǎn)數(shù)據(jù)的從數(shù)據(jù)為多份,當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),從所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)和多份從數(shù)據(jù)所在的服務(wù)進(jìn)程中選擇ー個(gè)服務(wù)進(jìn)程,并將該讀操作請求分發(fā)給選擇出的服務(wù)進(jìn)程進(jìn)行處理;其中,選擇服務(wù)進(jìn)程的方式包括以下之一 隨機(jī)選擇; 根據(jù)服務(wù)進(jìn)程的忙閑狀態(tài)選擇; 根據(jù)服務(wù)進(jìn)程的處理能力選擇。
4.如權(quán)利要求I所述的方法,其特征在于,對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制后,還包括對所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝分配拷貝標(biāo)識,并通過拷貝標(biāo)識區(qū)分主數(shù)據(jù)和從數(shù)據(jù)。
5.如權(quán)利要求I至4任一項(xiàng)所述的方法,其特征在于,對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制時(shí),根據(jù)所述單點(diǎn)數(shù)據(jù)的請求量確定所述單點(diǎn)數(shù)據(jù)的拷貝數(shù)量; 對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制后,還包括根據(jù)所述單點(diǎn)數(shù)據(jù)的請求量的變化情況,調(diào)整所述單點(diǎn)數(shù)據(jù)的拷貝數(shù)量。
6.ー種數(shù)據(jù)處理系統(tǒng),其特征在于,包括 單點(diǎn)數(shù)據(jù)預(yù)處理模塊,用于對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝中的ー份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),井分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程; 數(shù)據(jù)請求分發(fā)模塊,用于當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的寫操作請求時(shí),將該寫操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理;以及,當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),將該讀操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)或/和從數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,還包括 同步模塊,用于在所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程對所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)完成寫操作處理之后,將變更后的主數(shù)據(jù)同步到所述單點(diǎn)數(shù)據(jù)的各從數(shù)據(jù)中。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述數(shù)據(jù)請求分發(fā)模塊具體用于,若所述單點(diǎn)數(shù)據(jù)的從數(shù)據(jù)為多份,則當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),從所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)和多份從數(shù)據(jù)所在的服務(wù)進(jìn)程中選擇ー個(gè)服務(wù)進(jìn)程,并將該讀操作請求分發(fā)給選擇出的服務(wù)進(jìn)程進(jìn)行處理;其中,選擇服務(wù)進(jìn)程的方式包括以下之一 隨機(jī)選擇;根據(jù)服務(wù)進(jìn)程的忙閑狀態(tài)選擇; 根據(jù)服務(wù)進(jìn)程的處理能力選擇。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述單點(diǎn)數(shù)據(jù)預(yù)處理模塊還用于,在對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制后,對所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝分配拷貝標(biāo)識,并通過拷貝標(biāo)識區(qū)分主數(shù)據(jù)和從數(shù)據(jù)。
10.如權(quán)利要求6至9任一項(xiàng)所述的系統(tǒng),其特征在于,所述單點(diǎn)數(shù)據(jù)預(yù)處理模塊具體用于,對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制時(shí),根據(jù)所述單點(diǎn)數(shù)據(jù)的請求量確定所述單點(diǎn)數(shù)據(jù)的拷貝數(shù)量; 所述單點(diǎn)數(shù)據(jù)預(yù)處理模塊還用于,對所述單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制后,根據(jù)所述單點(diǎn)數(shù)據(jù)的請求量的變化情況,調(diào)整所述單點(diǎn)數(shù)據(jù)的拷貝數(shù)量。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)處理方法及其系統(tǒng),該方法包括對單點(diǎn)數(shù)據(jù)進(jìn)行復(fù)制,將所述單點(diǎn)數(shù)據(jù)的所有數(shù)據(jù)拷貝中的一份數(shù)據(jù)作為主數(shù)據(jù),其它數(shù)據(jù)拷貝分別作為從數(shù)據(jù),并分別將主數(shù)據(jù)和從數(shù)據(jù)分配給對應(yīng)服務(wù)進(jìn)程;當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的寫操作請求時(shí),將該寫操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理;當(dāng)接收到對所述單點(diǎn)數(shù)據(jù)的讀操作請求時(shí),將該讀操作請求分發(fā)給所述單點(diǎn)數(shù)據(jù)的主數(shù)據(jù)或/和從數(shù)據(jù)所在的服務(wù)進(jìn)程進(jìn)行處理。采用本發(fā)明可針對單點(diǎn)處理過程,降低系統(tǒng)結(jié)構(gòu)設(shè)計(jì)復(fù)雜度,提高穩(wěn)定性和可擴(kuò)展性。
文檔編號H04L29/06GK102694825SQ20111006935
公開日2012年9月26日 申請日期2011年3月22日 優(yōu)先權(quán)日2011年3月22日
發(fā)明者田明, 舒軍 申請人:騰訊科技(深圳)有限公司