一種分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的方法及裝置。
【背景技術(shù)】
[0002]大數(shù)據(jù)在通訊、互聯(lián)網(wǎng)、金融、醫(yī)療、軍工、科學(xué)等各個(gè)領(lǐng)域均有應(yīng)用。大數(shù)據(jù)分析相比于傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用,具有數(shù)據(jù)量大、查詢分析復(fù)雜等特點(diǎn)。而針對(duì)分布式文件系統(tǒng)來(lái)說(shuō),要管理的自然是海量數(shù)據(jù)。就以電信的流量分析數(shù)據(jù)為例,每天都會(huì)有新的數(shù)據(jù),每個(gè)地區(qū)也會(huì)有不同的數(shù)據(jù),時(shí)間一長(zhǎng)比如說(shuō)十年的數(shù)據(jù),就會(huì)是海量數(shù)據(jù)。如果運(yùn)營(yíng)商要根據(jù)這些數(shù)據(jù)統(tǒng)計(jì)出規(guī)律,指定更合理的計(jì)費(fèi)方案,那么,這些龐大的數(shù)據(jù)存儲(chǔ)在分布式文件系統(tǒng)中,怎樣提高讀取效率是一件很重要的事情。
[0003]相關(guān)技術(shù)中,這些龐大的表格以一些大文件的方式存儲(chǔ),一開(kāi)始存儲(chǔ)時(shí),是以追加寫(xiě)的方式存入,而需要讀取時(shí),再順序讀出來(lái)。如果寫(xiě)入時(shí)是按行的方式寫(xiě)進(jìn)去,順序讀出來(lái)的時(shí)候就是以行的格式讀出來(lái)。但是如果業(yè)務(wù)想分析每一列的數(shù)據(jù),就會(huì)比較麻煩,需要讀出來(lái)重新整合,數(shù)據(jù)量越大工作量也就越大。
【發(fā)明內(nèi)容】
[0004]鑒于上述技術(shù)問(wèn)題,本發(fā)明提供了一種克服上述技術(shù)問(wèn)題或者至少部分地解決上述技術(shù)問(wèn)題的分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的方法及裝置,通過(guò)將一個(gè)文件在多個(gè)存儲(chǔ)服務(wù)器中分別存儲(chǔ)多個(gè)不同的異構(gòu)副本,在讀取文件的異構(gòu)副本時(shí),可以根據(jù)需要讀取對(duì)應(yīng)的異構(gòu)副本,能夠有效提高用戶處理數(shù)據(jù)的工作效率。
[0005]依據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的方法,包括:
[0006]獲取用于存儲(chǔ)文件的副本的寫(xiě)請(qǐng)求參數(shù);
[0007]根據(jù)所述寫(xiě)請(qǐng)求參數(shù)從元數(shù)據(jù)服務(wù)器獲取每個(gè)存儲(chǔ)服務(wù)器的位置信息;
[0008]根據(jù)所述寫(xiě)請(qǐng)求參數(shù)將所述文件的副本按照預(yù)先指定的格式轉(zhuǎn)換得到多個(gè)不同格式的所述文件的異構(gòu)副本;
[0009]根據(jù)從所述元數(shù)據(jù)服務(wù)器獲取的所述存儲(chǔ)服務(wù)器的位置信息,將轉(zhuǎn)換得到的多個(gè)不同格式的所述文件的異構(gòu)副本分別存儲(chǔ)在指定的存儲(chǔ)服務(wù)器上。
[0010]可選地,在根據(jù)所述寫(xiě)請(qǐng)求參數(shù)將所述文件的副本按照預(yù)先指定的格式轉(zhuǎn)換得到多個(gè)不同格式的所述文件的異構(gòu)副本的步驟之前,所述方法還包括:
[0011]根據(jù)所述寫(xiě)請(qǐng)求參數(shù)判斷是否啟用所述文件的異構(gòu)副本;
[0012]如果啟用所述文件的異構(gòu)副本,則進(jìn)入根據(jù)所述寫(xiě)請(qǐng)求參數(shù)將所述文件的副本按照預(yù)先指定的格式轉(zhuǎn)換得到多個(gè)不同格式的所述文件的異構(gòu)副本的步驟。
[0013]可選地,所述將所述文件的副本按照預(yù)先指定的格式轉(zhuǎn)換得到多個(gè)不同格式的所述文件的異構(gòu)副本的步驟為:
[0014]根據(jù)所述寫(xiě)請(qǐng)求參數(shù)將所述文件的副本按照行模式存儲(chǔ)、列模式存儲(chǔ)或塊模式存儲(chǔ)的格式轉(zhuǎn)換成多個(gè)不同格式的所述文件的異構(gòu)副本,并緩存轉(zhuǎn)換得到的多個(gè)不同格式的所述文件的異構(gòu)副本。
[0015]可選地,所述方法還包括:
[0016]獲取用于讀取文件的副本的讀請(qǐng)求參數(shù);
[0017]根據(jù)所述讀請(qǐng)求參數(shù)從所述元數(shù)據(jù)服務(wù)器獲取要讀的存儲(chǔ)服務(wù)器的位置信息;
[0018]根據(jù)讀請(qǐng)求參數(shù)判斷是否啟用所述文件的異構(gòu)副本;
[0019]如果啟用所述文件的異構(gòu)副本,則根據(jù)從所述元數(shù)據(jù)服務(wù)器獲取要讀的存儲(chǔ)服務(wù)器的位置信息,從指定的存儲(chǔ)服務(wù)器上讀取所述文件的異構(gòu)副本。
[0020]可選地,所述寫(xiě)請(qǐng)求參數(shù)包括:文件句柄、文件偏移量、文件長(zhǎng)度和文件的副本的格式,其中所述文件的副本的格式包括:按照行模式存儲(chǔ)、按照列模式存儲(chǔ)或者按照塊模式存儲(chǔ);
[0021]所述讀請(qǐng)求參數(shù)包括:文件句柄、文件偏移量、文件長(zhǎng)度和所述文件的副本的讀取模式,所述讀取模式包括按照行模式讀取副本、按照列模式讀取副本或者按照塊模式讀取副本。
[0022]依據(jù)本發(fā)明的另一個(gè)方面,還提供了一種分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的裝置,包括:
[0023]寫(xiě)請(qǐng)求獲取模塊,用于獲取用于存儲(chǔ)文件的副本的寫(xiě)請(qǐng)求參數(shù);
[0024]第一位置獲取模塊,用于根據(jù)所述寫(xiě)請(qǐng)求參數(shù)從元數(shù)據(jù)服務(wù)器獲取每個(gè)所述存儲(chǔ)服務(wù)器的位置信息;
[0025]格式轉(zhuǎn)換模塊,用于根據(jù)所述寫(xiě)請(qǐng)求參數(shù)將所述文件的副本按照預(yù)先指定的格式轉(zhuǎn)換得到多個(gè)不同格式的所述文件的異構(gòu)副本;
[0026]副本存儲(chǔ)模塊,用于根據(jù)從所述元數(shù)據(jù)服務(wù)器獲取的所述存儲(chǔ)服務(wù)器的位置信息,將轉(zhuǎn)換得到的多個(gè)不同格式的所述文件的異構(gòu)副本分別存儲(chǔ)在指定的存儲(chǔ)服務(wù)器上。
[0027]可選地,所述裝置還包括:
[0028]第一判斷模塊,用于根據(jù)所述寫(xiě)請(qǐng)求參數(shù)判斷是否啟用所述文件的異構(gòu)副本;如果啟用所述文件的異構(gòu)副本,則觸發(fā)所述格式轉(zhuǎn)換模塊;。
[0029]可選地,所述格式轉(zhuǎn)換模塊進(jìn)一步用于根據(jù)所述寫(xiě)請(qǐng)求參數(shù)將所述文件的副本按照行模式存儲(chǔ)、列模式存儲(chǔ)或塊模式存儲(chǔ)的格式轉(zhuǎn)換成多個(gè)不同格式的所述文件的異構(gòu)副本,并緩存轉(zhuǎn)換得到的多個(gè)不同格式的所述文件的異構(gòu)副本。
[0030]可選地,所述裝置還包括:
[0031]讀請(qǐng)求獲取模塊,用于獲取用于讀取文件的副本的讀請(qǐng)求參數(shù);
[0032]第二位置獲取模塊,用于根據(jù)所述讀請(qǐng)求參數(shù)從所述元數(shù)據(jù)服務(wù)器獲取要讀的存儲(chǔ)服務(wù)器的位置信息;
[0033]第二判斷模塊,用于根據(jù)所述讀請(qǐng)求參數(shù)判斷是否啟用所述文件的異構(gòu)副本;
[0034]副本讀取模塊,用于如果啟用所述文件的異構(gòu)副本,則根據(jù)從所述元數(shù)據(jù)服務(wù)器獲取要讀的存儲(chǔ)服務(wù)器的位置信息,從指定的存儲(chǔ)服務(wù)器上讀取所述文件的異構(gòu)副本。
[0035]可選地,所述寫(xiě)請(qǐng)求參數(shù)包括:文件句柄、文件偏移量、文件長(zhǎng)度和文件的副本的格式,其中所述文件的副本的格式包括:按照行模式存儲(chǔ)、按照列模式存儲(chǔ)或者按照塊模式存儲(chǔ);
[0036]所述讀請(qǐng)求參數(shù)包括:文件句柄、文件偏移量、文件長(zhǎng)度和所述文件的副本的讀取模式,所述讀取模式包括按照行模式讀取副本、按照列模式讀取副本或者按照塊模式讀取副本。
[0037]本發(fā)明的有益效果是:在本發(fā)明的實(shí)施例中,由于客戶端程序可以將文件的副本按照預(yù)先指定的格式轉(zhuǎn)換得到多個(gè)不同格式的文件的異構(gòu)副本,并將轉(zhuǎn)換得到的多個(gè)不同格式的文件的異構(gòu)副本分別存儲(chǔ)在指定的存儲(chǔ)服務(wù)器上,通過(guò)將一個(gè)文件存多個(gè)異構(gòu)副本,每個(gè)異構(gòu)副本之間是可以相互轉(zhuǎn)換,多個(gè)異構(gòu)副本起到冗余的作用,以提高文件系統(tǒng)的可靠性。而且由于每個(gè)存儲(chǔ)服務(wù)器中存儲(chǔ)的文件的異構(gòu)副本的格式不同,使得用戶可以根據(jù)需要(例如根據(jù)數(shù)據(jù)分析的需要)選擇讀取文件的異構(gòu)副本,例如當(dāng)用戶需要按行分析文件的副本時(shí),就可以選擇讀取按行模式存儲(chǔ)的文件的異構(gòu)副本;當(dāng)用戶需要按列分析文件的副本時(shí),就可以選擇讀取按列模式存儲(chǔ)的文件的異構(gòu)副本;當(dāng)用戶需要按塊分析文件的副本(一些多維表格數(shù)據(jù))時(shí),就可以選擇讀取按塊模式存儲(chǔ)的文件的異構(gòu)副本。由于用戶可以根據(jù)需要選擇讀取文件的異構(gòu)副本,能夠有效提高用戶處理數(shù)據(jù)的工作效率,特別適用于海量的規(guī)則性數(shù)據(jù)操作和大數(shù)據(jù)庫(kù)的管理。
【附圖說(shuō)明】
[0038]圖1表示本發(fā)明的實(shí)施例中分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的方法中存儲(chǔ)文件的異構(gòu)副本的流程圖之一;
[0039]圖2表示本發(fā)明的實(shí)施例中分布式文件系統(tǒng)中的副本冗余架構(gòu)的示意圖;
[0040]圖3表示本發(fā)明的實(shí)施例中按行模式存儲(chǔ)的文件的異構(gòu)副本的示意圖;
[0041]圖4表示本發(fā)明的實(shí)施例中按列模式存儲(chǔ)的文件的異構(gòu)副本的示意圖;
[0042]圖5表示本發(fā)明的實(shí)施例中按塊模式存儲(chǔ)的文件的異構(gòu)副本的示意圖;
[0043]圖6表示本發(fā)明的實(shí)施例中分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的方法中存儲(chǔ)文件的異構(gòu)副本的流程圖之二;
[0044]圖7表示本發(fā)明的實(shí)施例中分布式存儲(chǔ)系統(tǒng)中管理異構(gòu)副本的方法中讀取文