數(shù)據(jù)處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種數(shù)據(jù)處理方法和裝置。
【背景技術(shù)】
[0002] 云計(jì)算、大數(shù)據(jù)所帶來(lái)的海量數(shù)據(jù),對(duì)越來(lái)越龐大的數(shù)據(jù)中心帶來(lái)考驗(yàn),軟件定義 基礎(chǔ)設(shè)施(Software Define Infrastructure,簡(jiǎn)稱SDI)將是未來(lái)數(shù)據(jù)中心的發(fā)展趨勢(shì)。SDI 規(guī)劃了利用三維環(huán)狀網(wǎng)絡(luò)(3D Tours)、三維網(wǎng)狀網(wǎng)絡(luò)(3D Mesh)等網(wǎng)絡(luò)拓?fù)鋪?lái)提升網(wǎng)絡(luò)的 性能和應(yīng)用的性能,3D Torus和3D Mesh是現(xiàn)在用的比較多的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其在平面的基 礎(chǔ)上,向三維空間擴(kuò)展,節(jié)點(diǎn)的連接采用GE或IB網(wǎng)絡(luò),節(jié)點(diǎn)之間的消息傳遞、負(fù)載均衡有專 有的算法,具有多路徑、簡(jiǎn)單、對(duì)稱、易擴(kuò)展等特點(diǎn)。目前使用容刪碼(Erasure Code,簡(jiǎn)稱 EC)算法實(shí)現(xiàn)數(shù)據(jù)容錯(cuò)技術(shù)也已經(jīng)規(guī)劃在SDI中,在3D Tours、3D Mesh等網(wǎng)絡(luò)拓?fù)湎逻\(yùn)行 分布式文件系統(tǒng)或分布式存儲(chǔ)軟件,利用該EC算法來(lái)編碼和解碼數(shù)據(jù)。
[0003] EC算法的具體原理為,將η份原始數(shù)據(jù),增加 m份校驗(yàn)數(shù)據(jù),并能通過(guò)n+m份中的 任意η份數(shù)據(jù),還原為原始數(shù)據(jù)。其包含了編碼(Encoding)和解碼(Decoding)兩個(gè)過(guò)程, 將原始的η份數(shù)據(jù)變?yōu)閚+m份是編碼,n+m份數(shù)據(jù)可分散存放在不同的位置,如果有任意小 于m份的數(shù)據(jù)失效,仍然能通過(guò)剩下的數(shù)據(jù)還原出來(lái),還原的過(guò)程叫解碼。由此可見(jiàn)通過(guò)EC 算法,只保留原始數(shù)據(jù)和校驗(yàn)數(shù)據(jù),當(dāng)數(shù)據(jù)丟失時(shí)候可以通過(guò)EC算法恢復(fù)原始數(shù)據(jù),這樣 在保證數(shù)據(jù)存儲(chǔ)的可靠性的同時(shí)大大的減少了存儲(chǔ)資源,降低了企業(yè)存儲(chǔ)成本。典型的EC 算法有X〇R、Reed-Solomon、Cauchy-Reed_Solomon等算法。EC算法實(shí)際上就是利用線性代 數(shù)的矩陣相乘的原理,先根據(jù)原始數(shù)據(jù)的個(gè)數(shù)和校驗(yàn)數(shù)據(jù)的個(gè)數(shù)得到生成矩陣,使用生成 矩陣乘以原始數(shù)據(jù)得到校驗(yàn)數(shù)據(jù)?;謴?fù)的過(guò)程即利用生成矩陣的逆矩陣乘以現(xiàn)有數(shù)據(jù)來(lái)得 到丟失的數(shù)據(jù)。不管生成矩陣是范德蒙矩陣還是Cauchy矩陣或是優(yōu)化過(guò)的矩陣,其核心都 是矩陣的乘法。
[0004] 然而,在3D Tours、3D Mesh等網(wǎng)絡(luò)拓?fù)湎逻\(yùn)行分布式文件系統(tǒng)過(guò)程中,利用現(xiàn)有 EC算法進(jìn)行編碼和解碼數(shù)據(jù),以保證數(shù)據(jù)存儲(chǔ)的可靠性時(shí),仍然不能有效利用網(wǎng)絡(luò)資源,對(duì) 于網(wǎng)絡(luò)資源消耗比較大,因此如何在3D T〇Urs、3DMeSh等網(wǎng)絡(luò)拓?fù)湎逻M(jìn)一步提升EC算法的 性能是如今亟待解決的一技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法和裝置,以解決現(xiàn)有EC算法不能有效利用 網(wǎng)絡(luò)資源,對(duì)于網(wǎng)絡(luò)資源消耗比較大的問(wèn)題。
[0006] 第一方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法,包括:
[0007] 接收管理節(jié)點(diǎn)發(fā)送的數(shù)據(jù)處理任務(wù)消息,所述數(shù)據(jù)處理任務(wù)消息攜帶有原始數(shù)據(jù) 個(gè)數(shù)和效驗(yàn)數(shù)據(jù)個(gè)數(shù);
[0008] 根據(jù)所述原始數(shù)據(jù)個(gè)數(shù)和所述效驗(yàn)數(shù)據(jù)個(gè)數(shù)獲取生成矩陣;同時(shí)獲取所述管理節(jié) 點(diǎn)對(duì)網(wǎng)絡(luò)中各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)進(jìn)行區(qū)域劃分的區(qū)域劃分結(jié)果,其中,所述區(qū)域劃分結(jié)果包括 區(qū)域個(gè)數(shù)和各區(qū)域內(nèi)的各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的信息;
[0009] 根據(jù)所述區(qū)域劃分結(jié)果和所述生成矩陣對(duì)網(wǎng)絡(luò)中各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)進(jìn)行 數(shù)據(jù)處理,所述數(shù)據(jù)處理包括生成效驗(yàn)數(shù)據(jù)處理和恢復(fù)原始數(shù)據(jù)處理。
[0010] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,若所述數(shù)據(jù)處理為生成 效驗(yàn)數(shù)據(jù)處理;
[0011] 所述根據(jù)所述區(qū)域劃分結(jié)果和所述生成矩陣對(duì)網(wǎng)絡(luò)中各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù) 進(jìn)行數(shù)據(jù)處理,包括:
[0012] 根據(jù)所述區(qū)域個(gè)數(shù)和所述生成矩陣獲取多個(gè)生成子矩陣,所述生成子矩陣的個(gè)數(shù) 與所述區(qū)域個(gè)數(shù)相同,且各生成子矩陣與各區(qū)域一一對(duì)應(yīng);
[0013] 根據(jù)區(qū)域內(nèi)的各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)和所述區(qū)域的生成子矩陣獲取效驗(yàn)子數(shù) 據(jù),并獲取其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)生成的效驗(yàn)子數(shù)據(jù);
[0014] 利用各區(qū)域的效驗(yàn)子數(shù)據(jù)生成效驗(yàn)數(shù)據(jù),并將所述效驗(yàn)數(shù)據(jù)存儲(chǔ)于相應(yīng)的數(shù)據(jù)存 儲(chǔ)節(jié)點(diǎn)中。
[0015] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式 中,所述獲取其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)生成的效驗(yàn)子數(shù)據(jù)之前,還包括:
[0016] 向所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)分別發(fā)送所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)所 屬區(qū)域的生成子矩陣,以使所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)根據(jù)自身所屬區(qū)域內(nèi)的各數(shù)據(jù) 存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)和自身所屬區(qū)域的生成子矩陣獲取效驗(yàn)子數(shù)據(jù)。
[0017] 結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,若所述數(shù)據(jù)處理為恢復(fù) 原始數(shù)據(jù)處理;
[0018] 所述根據(jù)所述區(qū)域劃分結(jié)果和所述生成矩陣對(duì)網(wǎng)絡(luò)中各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù) 進(jìn)行數(shù)據(jù)處理,包括:
[0019] 根據(jù)丟失數(shù)據(jù)和所述生成矩陣獲取恢復(fù)矩陣;
[0020] 根據(jù)所述區(qū)域個(gè)數(shù)和所述恢復(fù)矩陣獲取多個(gè)恢復(fù)子矩陣,所述恢復(fù)子矩陣的個(gè)數(shù) 和所述區(qū)域個(gè)數(shù)相同,且各恢復(fù)子矩陣與各區(qū)域一一對(duì)應(yīng);
[0021] 根據(jù)區(qū)域內(nèi)的各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)和所述區(qū)域的恢復(fù)子矩陣獲取恢復(fù)子數(shù) 據(jù),并獲取其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)生成的恢復(fù)子數(shù)據(jù);
[0022] 利用各區(qū)域的恢復(fù)子數(shù)據(jù)生成原始數(shù)據(jù),并將所述原始數(shù)據(jù)存儲(chǔ)于各原始數(shù)據(jù)所 在數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中。
[0023] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式 中,所述獲取其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)生成的恢復(fù)子數(shù)據(jù)之前,還包括:
[0024] 向所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)分別發(fā)送所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)所 屬區(qū)域的恢復(fù)子矩陣,以使所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)根據(jù)自身所屬區(qū)域內(nèi)的各數(shù)據(jù) 存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)和自身所屬區(qū)域的恢復(fù)子矩陣獲取恢復(fù)子數(shù)據(jù)。
[0025] 結(jié)合第一方面的第一種至第四種任一種可能的實(shí)現(xiàn)方式,在第一方面的第五種可 能的實(shí)現(xiàn)方式中,在根據(jù)所述區(qū)域劃分結(jié)果進(jìn)行數(shù)據(jù)處理之前,所述方法還包括:
[0026] 根據(jù)所述各區(qū)域內(nèi)的各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的信息確定其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。
[0027] 第二方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理裝置,包括:
[0028] 接收模塊,用于接收管理節(jié)點(diǎn)發(fā)送的數(shù)據(jù)處理任務(wù)消息,所述數(shù)據(jù)處理任務(wù)消息 攜帶有原始數(shù)據(jù)個(gè)數(shù)和效驗(yàn)數(shù)據(jù)個(gè)數(shù);
[0029] 獲取模塊,用于根據(jù)所述原始數(shù)據(jù)個(gè)數(shù)和所述消息數(shù)據(jù)個(gè)數(shù)獲取生成矩陣;同時(shí) 獲取所述管理節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)中各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)進(jìn)行區(qū)域劃分的區(qū)域劃分結(jié)果,其中,所述區(qū) 域劃分結(jié)果包括區(qū)域個(gè)數(shù)和各區(qū)域內(nèi)的各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的信息;
[0030] 處理模塊,用于根據(jù)所述區(qū)域劃分結(jié)果和所述生成矩陣對(duì)網(wǎng)絡(luò)中各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn) 中的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,所述數(shù)據(jù)處理包括生成效驗(yàn)數(shù)據(jù)處理和恢復(fù)原始數(shù)據(jù)處理。
[0031] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,若所述數(shù)據(jù)處理為生成 效驗(yàn)數(shù)據(jù)處理;
[0032] 所述處理模塊具體用于:
[0033] 根據(jù)所述區(qū)域個(gè)數(shù)和所述生成矩陣獲取多個(gè)生成子矩陣,所述生成子矩陣的個(gè)數(shù) 與所述區(qū)域個(gè)數(shù)相同,且各生成子矩陣與各區(qū)域一一對(duì)應(yīng);
[0034] 根據(jù)區(qū)域內(nèi)的各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)和所述區(qū)域的生成子矩陣獲取效驗(yàn)子數(shù)據(jù), 并獲取其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)生成的效驗(yàn)子數(shù)據(jù);
[0035] 利用各區(qū)域的效驗(yàn)子數(shù)據(jù)生成效驗(yàn)數(shù)據(jù),并將所述效驗(yàn)數(shù)據(jù)存儲(chǔ)于相應(yīng)的數(shù)據(jù)存 儲(chǔ)節(jié)點(diǎn)中。
[0036] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式 中,所述處理模塊還用于:向所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)分別發(fā)送所述其他區(qū)域的主 數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)所屬區(qū)域的生成子矩陣,以使所述其他區(qū)域的主數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)根據(jù)自身所屬 區(qū)域內(nèi)的各數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)和自身所屬區(qū)域的生成子矩陣獲取效驗(yàn)子數(shù)據(jù)。
[0037] 結(jié)合第二方面,在第二方面的第三種可能的實(shí)現(xiàn)方式中,若所述數(shù)據(jù)處理為恢復(fù) 原始數(shù)據(jù)處理;
[0038] 所