過匯卿 王 梅 樂嘉錦
(東華大學計算機科學與技術(shù)學院 上海 201620)
?
一種面向CASA的分布式數(shù)據(jù)存儲策略
過匯卿 王 梅 樂嘉錦
(東華大學計算機科學與技術(shù)學院 上海 201620)
隨著天文設(shè)備的進步發(fā)展,對海量天文數(shù)據(jù)處理形成了新的挑戰(zhàn)。為使當前主流的天文數(shù)據(jù)分析軟件可以有效處理海量數(shù)據(jù),提出一種適用于射電天文處理上層應用的分布式數(shù)據(jù)存儲策略DDSS(Distributed Data Storage Strategy)。首先,設(shè)計分布式數(shù)據(jù)存儲策略的系統(tǒng)框架。其次,設(shè)計混合分片列式存儲方法,在保留列存儲查詢優(yōu)勢的同時提升了數(shù)據(jù)導入的速度。進一步,通過維護基于相對位置映射的元數(shù)據(jù)來快速讀取包含大量數(shù)據(jù)的天文陣列數(shù)據(jù),顯著地提升了天文處理應用底層數(shù)據(jù)讀寫的吞吐量。最后,通過實驗證明了該方法的有效性。
分布式 天文 陣列數(shù)據(jù)
伴隨著信息爆炸,大數(shù)據(jù)時代已經(jīng)走入各行各業(yè),在諸如天文學、物理學、社會科學等行業(yè)中正源源不斷的產(chǎn)生真正的海量大數(shù)據(jù)。然而,這些行業(yè)在解決大數(shù)據(jù)所帶來數(shù)據(jù)讀寫與處理緩慢問題的方法卻滯后于其數(shù)據(jù)產(chǎn)生的速度。在射電天文領(lǐng)域,隨著射電望遠鏡設(shè)備的飛躍發(fā)展,望遠鏡所能觀測和產(chǎn)生的數(shù)據(jù)量早已超出了當前主流的天文學數(shù)據(jù)處理軟件的承載能力。為此,急需將計算機數(shù)據(jù)處理的前沿技術(shù)如列存儲、分布式等應用到當前成熟的處理軟件中,以應對海量天文數(shù)據(jù)所帶來的挑戰(zhàn)和沖擊。
射電天文領(lǐng)域中,天文學家主要采用的數(shù)據(jù)處理軟件有AIPS,AIPS++以及CASA等。其中,CASA[1]是當前主流的射電天文數(shù)據(jù)處理和分析軟件。它由AIPS++發(fā)展而來,提供基于二維表的數(shù)據(jù)模型來處理和分析射電天文數(shù)據(jù)。CASA通過調(diào)用casacore[2]庫中封裝的原AIPS++處理程序,實現(xiàn)各種數(shù)據(jù)分析和處理。然而,由于casacore底層實現(xiàn)的限制,只可以單節(jié)點串行地處理數(shù)據(jù),這使得CASA需要極高的單點硬件性能。并且由于其不具備擴展性,難以應對大數(shù)據(jù)流量下高效的數(shù)據(jù)讀寫需求。
另一方面,正如大部分科學數(shù)據(jù),射電天文數(shù)據(jù)包含大量的陣列數(shù)據(jù),近年來,針對以陣列(Array)為主要數(shù)據(jù)形式的科學數(shù)據(jù)庫也得到了廣泛的研究。如基于傳統(tǒng)關(guān)系模型的陣列數(shù)據(jù)庫SciDB[3,4]以及基于Hadoop的數(shù)據(jù)庫SciHadoop[5,6]等。SciDB是一個針對科學數(shù)據(jù)的分布式數(shù)據(jù)庫,其數(shù)據(jù)模型是基于多維的陣列,這樣就打破了傳統(tǒng)數(shù)據(jù)庫固定表結(jié)構(gòu)的限制,使其具備了對陣列進行的操作運算的功能。SciHadoop將科學家輸入的基于陣列數(shù)據(jù)模型的邏輯查詢語句轉(zhuǎn)化為map/reduce程序進行執(zhí)行。上述研究均對陣列數(shù)據(jù)的分布式存儲和查詢進行了研究,然而其并非針對射電天文數(shù)據(jù)處理,因此其查詢難以滿足天文領(lǐng)域?qū)﹃嚵袛?shù)據(jù)的眾多運算。若使用其提供的上層接口與天文軟件對接,由于接口調(diào)用使得數(shù)據(jù)吞吐率低,影響了性能。
針對上述問題,本文提出了面向海量天文數(shù)據(jù)處理,適用于射電天文學數(shù)據(jù)分析軟件CASA的分布式數(shù)據(jù)存儲策略DDSS。DDSS通過重寫CASA底層的文件存儲管理模塊,在不修改任何上層應用接口的情況下解決了其只支持集中式、串行的數(shù)據(jù)讀寫機制,實現(xiàn)了并行化讀寫數(shù)據(jù)和分布式存儲數(shù)據(jù)。DDSS首先根據(jù)陣列數(shù)據(jù)類型與普通數(shù)據(jù)類型混合的特點,采用了行列混合分片的方法,分片時保證每個數(shù)據(jù)片段大小均勻,在不影響寫入效率的同時保留了其讀取某一屬性的高效性。進一步,在寫數(shù)據(jù)的同時,維護基于數(shù)據(jù)相對位置映射的元數(shù)據(jù)文件,以提高陣列數(shù)據(jù)讀取時的效率。實驗測評表明,所提策略在寫數(shù)據(jù)與讀數(shù)據(jù)的吞吐量都有了顯著的提高,其數(shù)據(jù)寫入性能提升了6.8倍,數(shù)據(jù)讀取性能提升了3.4倍。同時也驗證了陣列數(shù)據(jù)的大小并不會影響系統(tǒng)的性能,系統(tǒng)具有較好的可擴展性。
CASA是一個融合了射電天文數(shù)據(jù)圖形化、數(shù)據(jù)分析、數(shù)據(jù)處理等功能的綜合軟件包,其內(nèi)部的數(shù)據(jù)格式以CASA TABLE的二維表形式存在[7]。其按屬性可以分為三種,分別是ArrayColumn(AC)、IndexColumn(IC)和ScalarColumn(SC)。ArrayColumn存放各種數(shù)據(jù)類型的陣列數(shù)據(jù),IndexColumn和ScalarColumn存放普通類型的數(shù)據(jù),類似傳統(tǒng)數(shù)據(jù)庫中的屬性。在CASA TABLE中,大量的表數(shù)據(jù)往往集中在ArrayColumn中。如表1所示,表1為一張5列10 000行的CASA TABLE。其中前4列分別為int、int、float和double類型的普通數(shù)據(jù),第五列為4×5的int型陣列數(shù)據(jù)。雖然ArrayColumn只有一列,但可計算出其占全表大小的80%。
表1 CASA TABLE示例表
CASA提供了底層數(shù)據(jù)存儲類StorageManager,使得其可以被二次開發(fā)來替換原始的數(shù)據(jù)讀寫方式,從而進行I/O優(yōu)化。StorageManager是CASA核心庫即casacore中負責數(shù)據(jù)讀寫的模塊,其決定了數(shù)據(jù)的存儲方式、位置、元數(shù)據(jù)信息等。目前,CASA中調(diào)用的StorageManager只支持集中式環(huán)境下串行的數(shù)據(jù)I/O,導致了I/O效率低下、無法擴展、硬件要求高等問題,已經(jīng)難以滿足當前海量射電天文數(shù)據(jù)的處理需求。
為了無縫支持CASA系統(tǒng),DDSS結(jié)合CASA環(huán)境編寫而成,其與CASA以及casacore庫的整體結(jié)構(gòu)與數(shù)據(jù)流入流出過程如圖1所示。圖1中虛線框中即為的主要模塊,包括數(shù)據(jù)劃分模塊、數(shù)據(jù)分配模塊、重寫后的CASA存儲管理(DDSS_StMan)模塊和數(shù)據(jù)流出的接口。系統(tǒng)的工作流程為:數(shù)據(jù)先經(jīng)過劃分,經(jīng)數(shù)據(jù)分配模塊分配到各個節(jié)點,各個節(jié)點的存儲管理器DDSS_StMan負責數(shù)據(jù)的寫入和讀出。
圖1 DDSS框架圖
形式化描述如下:
定義1CASA TABLE形式的數(shù)據(jù)集D={F1,F2,…,F|D|}。其中,F(xiàn)i表示按照數(shù)據(jù)分片策略stfrag得到的數(shù)據(jù)片段,F(xiàn)1,F2,…,F|D|應滿足F1∪F2∪…∪F|D|=D且Fi1∩Fi2=φ(i1≠i2,0≤i1,i2≤|D|)。
定義2節(jié)點集N={N1,N2,…,N|N|}。
其中,Nk表示系統(tǒng)中第k個存儲節(jié)點。數(shù)據(jù)集D依照數(shù)據(jù)分配策略stallo分配到各個節(jié)點,每個節(jié)點Nk所得到的數(shù)據(jù)D_Nk可以表示為D_Nk=stallo(stfrag(D),N)。當上層需要數(shù)據(jù)時,各個節(jié)點同時通過存儲管理器(DDSS_StMan)模塊從磁盤中取出數(shù)據(jù),轉(zhuǎn)換成CASA TABLE的格式,完成過濾后流入導出接口。上層CASA應用可以直接調(diào)用各節(jié)點接口中的數(shù)據(jù),完成其所需要的操作。
DDSS面向的是海量實時流入的CASA TABLE數(shù)據(jù)(如圖1所示),因此無論是數(shù)據(jù)劃分還是數(shù)據(jù)存儲管理都必須考慮到以下問題:1) 數(shù)據(jù)對象是CASA TABLE,該數(shù)據(jù)以陣列類型數(shù)據(jù)為主,同時也包含普通數(shù)據(jù)類型;2) 盡可能提高并行執(zhí)行度,來提供數(shù)據(jù)讀寫的效率。為此,本文將進一步詳細介紹數(shù)據(jù)劃分模塊及重寫后的CASA存儲管理模塊。而數(shù)據(jù)分配模塊主要采用一致性哈希算法[8,9]完成數(shù)據(jù)分配[10],在此不再贅述。
在CASA TABLE中,由于大部分數(shù)據(jù)量傾斜在ArrayColumn中,ArrayColumn往往會是所關(guān)注的焦點,在大量實際應用中,都需要對ArrayColumn中的陣列數(shù)據(jù)進行讀取,此時列存儲是十分適合這類場景的。然而,若采用直接的列存儲,將數(shù)據(jù)垂直劃分后用多進程分別寫入不同列的方法,會使得某個進程需要寫入大量的數(shù)據(jù),而其他所有進程寫入少量的數(shù)據(jù),造成并行效率低的問題。因此,本文采用混合分片列式存儲策略。
混合分片列式存儲[11]是指在滿足定義1的前提下將數(shù)據(jù)集D先進行水平劃分,再進行垂直劃分。其與行列混合存儲的不同之處在于垂直劃分后的數(shù)據(jù)片段F1,F2,…,F|D|分別根據(jù)屬性名的不同,存于不同的文件之中。這樣既解決了列存儲在寫入效率的不足,同時卻保持了列存儲的形式,可以發(fā)揮列存儲在讀取某單一屬性如CASA TABLE中實際數(shù)據(jù)存放的ArrayColumn列效率高的優(yōu)勢。如圖2所示,Table為一張8行三列的CASA TABLE,以三行為一個水平劃分,按此劃分通過下文的分配策略分配到每個節(jié)點,然后以列為單位,寫進程分別將數(shù)據(jù)寫入對應列名的文件中如tableIC_1、tableSC_1和AC_1中,從而實現(xiàn)了列存儲。在分布式環(huán)境下,數(shù)據(jù)片段Fi根據(jù)分配策略stallo分配到滿足定義2的節(jié)點集N。相同屬性的數(shù)據(jù)片段Fi會
在各個節(jié)點被寫入相同路徑的文件中。當數(shù)據(jù)不斷增加,以追加的方式的到來時,新的數(shù)據(jù)也會以追加的方式寫入同一列名的文件夾中。
圖2 數(shù)據(jù)表分片圖
在進行數(shù)據(jù)分析,讀取磁盤數(shù)據(jù)時,雖然每個節(jié)點儲存列文件中的不同分片數(shù)據(jù)并不連續(xù),但是單個分片內(nèi)的數(shù)據(jù)是以順序的方式存儲中的。通常CASA TABLE中的數(shù)據(jù)會以時間或者天線頻道排序,這樣當天文學家需要某個時間段或者某個頻道的陣列數(shù)據(jù)時,就只需要在某一個節(jié)點讀取數(shù)據(jù),節(jié)省了多節(jié)點元組重構(gòu)和通信的網(wǎng)絡(luò)開銷。
DDSS_StMan是DDSS中負責數(shù)據(jù)讀寫和管理的模塊。由于casacore中原有的存儲管理器(StorageManager)并不支持分布式環(huán)境。DDSS_StMan重寫了StorageManager使其支持分布式與并行的環(huán)境,并且使用基于相對位置映射的元數(shù)據(jù),加快陣列數(shù)據(jù)讀取的速度。
4.1 支持分布式環(huán)境的DDSS_StMan
casacore中原有的存儲管理器在設(shè)計時數(shù)據(jù)讀寫是單進程、串行處理的。同時,由于casacore庫中全局的元數(shù)據(jù)文件以表為單位來創(chuàng)建,但在分布式環(huán)境下,我們對數(shù)據(jù)表進行劃分,但casacore中的元數(shù)據(jù)信息卻并不支持因數(shù)據(jù)表劃分而再次劃分元數(shù)據(jù)文件,這便在寫數(shù)據(jù)時造成了元數(shù)據(jù)文件沖突。在DDSS _StMan為了支持分布式環(huán)境,在數(shù)據(jù)讀寫時提供了支持多進程的接口,并記錄了各個節(jié)點數(shù)據(jù)的全局信息。于此同時其數(shù)據(jù)讀寫不再依靠casacore中所使用的元數(shù)據(jù)信息,以避免在分布式環(huán)境中所造成的各種元數(shù)據(jù)信息錯誤。當寫入數(shù)據(jù)時,每個進程得到其劃分后的數(shù)據(jù)之后,開始寫入數(shù)據(jù),并記錄相關(guān)信息,完成基于相對位置映射的元數(shù)據(jù)。當讀取數(shù)據(jù)時,不再從casacore庫中所使用的元數(shù)據(jù)信息來尋找數(shù)據(jù),而是通過之前維護的相對位置映射元數(shù)據(jù)來完成數(shù)據(jù)尋址,進行數(shù)據(jù)讀取。
4.2 基于相對位置映射的元數(shù)據(jù)
在節(jié)點接收數(shù)據(jù)的水平分片后,將其垂直劃分,根據(jù)之前的分配算法用相應的進程寫入磁盤。在應用壞境中,進程需要讀取ArrayColumn中的某一行或某幾行。在列存儲中,讀取節(jié)點上單獨列所有內(nèi)容,是非常便捷的,但是當進行選擇性讀取的時候,往往需要從頭遍歷該列的數(shù)據(jù)文件,從而產(chǎn)生巨大的開銷。傳統(tǒng)的索引技術(shù)并不適用與陣列數(shù)據(jù),而一些基于陣列數(shù)據(jù)的索引大多針對某一陣列內(nèi)部數(shù)據(jù)。因此,本文提出了一種在寫入陣列數(shù)據(jù)的同時,維護該列陣列各陣列相對位置的元數(shù)據(jù)信息,來快速定位該陣列在文件中的位置。如圖3所示。每個ArrayColumn的陣列數(shù)據(jù)文件都會有一個對應的元數(shù)據(jù)文件,元數(shù)據(jù)文件中的指針與陣列數(shù)據(jù)文件中的陣列一一對應。當?shù)玫皆獢?shù)據(jù)文件中指針的位置時,便可以將位置信息映射到陣列數(shù)據(jù)文件中,再通過位置信息直接讀取需要的陣列。DDSS中,使用行號作為元組重構(gòu)的鍵值,元數(shù)據(jù)文件中也會記錄相應的行號信息。
圖3 指針與數(shù)據(jù)的相對位置映射圖
實現(xiàn)上述的功能需要重寫CASA存儲管理器,尤其是修改其中的put與get函數(shù)。在put函數(shù)中需要添加寫元數(shù)據(jù)文件的功能,而在get函數(shù)中需要先讀取元數(shù)據(jù)文件,確認所需數(shù)據(jù)的實際地址映射。再根據(jù)映射關(guān)系map函數(shù)來確定實際數(shù)據(jù)的儲存位置。最后,讀取相應的陣列數(shù)據(jù)文件中所需要的陣列數(shù)據(jù)。
4.3 相對位置映射方法設(shè)計
ArrayColumn以列存儲的方式,用字節(jié)流寫入磁盤之中,設(shè)每個陣列大小為SA字節(jié),總共寫入k行,即k個陣列。同時,在元數(shù)據(jù)文件中寫入指針,指針大小遠遠小于陣列大小,設(shè)指針大小為SP字節(jié)總共寫入k行,即k個指針,其中SP< (1) 通過P_Pos的值,可以推導出對應陣列在陣列文件中的起始字節(jié)位置P_SB: P_PS=P_Pos×SA×k (2) 得到陣列起始位置P_SB后,在讀取陣列文件時,使用lseek(filename,P_SB)函數(shù)直接從該陣列所在的位置讀取SA個字節(jié)即可。 令式(1)與式(2)的計算函數(shù)為P_SB=Map(pki),基于運用基于位置映射的元數(shù)據(jù)來選取陣列數(shù)據(jù)的算法如下: 算法1:FindArray(int Row_id) 輸入:元組重構(gòu)的行號。 輸出:該元組的陣列。 1readbuffer_meta[n];2readbuffer_array[m];3read(metadata,readbuffer_meta);4while(readbuffer_meta[i]!=NULL)5 if(Row_id==readbuffer_meta[i])6 pki==I;7 break;8 i++;9P_SB=Map(pki);10lseek(ArrayData,P_SB);11read(ArrayData,readbuffer_array);12returnreadbuffer_array; 該方法在傳統(tǒng)的數(shù)據(jù)庫中針對傳統(tǒng)數(shù)據(jù)并沒有任何效果,反而可能會影響讀取效率,然而針對CASA TABLE中的ArrayColumn卻非常適合。因為CASA TABLE中絕大部分數(shù)據(jù)量傾斜在ArrayColumn中,ArrayColumn中的一個陣列所占的存儲空間往往可以達到MB級別。而元數(shù)據(jù)文件的總大小往往只有KB級別。在實驗中發(fā)現(xiàn),一個1 GB左右大小的數(shù)據(jù)文件所對應的元數(shù)據(jù)文件約為5 KB。鑒于這種情況,全掃描元數(shù)據(jù)文件所帶來的開銷幾乎可以忽略不計,但卻可以快速定位陣列數(shù)據(jù)文件中相應陣列的位置,避免了大量的陣列文件掃描的開銷。 DDSS通過上述方法將數(shù)據(jù)取出,并依賴casacore完成部分節(jié)點內(nèi)處理后傳遞至導出接口,上層即可直接運用接口中的數(shù)據(jù),完成相應操作。 5.1 實驗環(huán)境 實驗采用centos 6.4(Final)和casacore-1.5.0作為軟件環(huán)境。硬件采用2個服務器作為節(jié)點,每個服務器擁有2個4核的CPU(Intel Xeon CPU E5-2609 2.40 GHz),32 GB內(nèi)存,和Broadcom NetXtreme BCM5750 千兆網(wǎng)卡。實驗數(shù)據(jù)采用MWA[12]天文項目中數(shù)據(jù),共23列,陣列型數(shù)據(jù)5列(即CASA TABLE中的ArrayColumn),陣列大小為4×384的浮點型數(shù)據(jù),占整張表數(shù)據(jù)量的99.98%。同時,為了測試DDSS與casacore中標準存儲模式在不同數(shù)據(jù)規(guī)模下的性能,將陣列型數(shù)據(jù)復制擴大,并且應實驗需要,數(shù)據(jù)在內(nèi)存中生成。 5.2 實驗結(jié)果和分析 本文實驗對比了CASA使用casacore庫中標準的數(shù)據(jù)存儲管理器模塊(STANDARD)與CASA使用DDSS的I/O能力,驗證兩者的表現(xiàn)。每組實驗運行3次,取平均結(jié)果。 實驗一分別測試了標準情況下與DDSS在單機串行環(huán)境和多節(jié)點并行下,針對不同數(shù)據(jù)量的讀寫性能。圖4(a)中的數(shù)據(jù)量為9.5 GB,比較了單節(jié)點串行環(huán)境下STANDARD與DDSS的讀寫性能。圖4(b)中數(shù)據(jù)量為38 GB,比較了STANDARD與DDSS在單節(jié)點串行和多節(jié)點并行的讀寫能力,其中DDSS的并行環(huán)境為2個節(jié)點。每個陣列大小均約為1 MB。 圖4 實驗結(jié)果 結(jié)合圖4分析可得,在串行環(huán)境下,無論數(shù)據(jù)量或大或小,DDSS的數(shù)據(jù)寫入性能都率優(yōu)于STANDARD,其隨著數(shù)據(jù)量的增大,兩者耗時的比例幾乎不變,DDSS比STANDARD快1.2倍左右。但是在數(shù)據(jù)讀取方面DDSS則比CASA在大量數(shù)據(jù)環(huán)境下有了顯著的提升,單機和集群兩種情況分別比STANDARD快了5.6倍和6.8倍,可見列存儲和基于位置映射的讀取數(shù)據(jù)方式是十分有效的。并且當數(shù)據(jù)量不斷擴大時,DDSS的效果會更加優(yōu)越。在分布式環(huán)境中,DDSS十分有效地提升了數(shù)據(jù)寫入的速度,比STANDARD快了3.4倍。當數(shù)據(jù)量較小的情況下,本文方法讀取數(shù)據(jù)的效果提升的較少,其原因是分布式環(huán)境下,每個節(jié)點得到的數(shù)據(jù)量減少,在數(shù)據(jù)量不大的情況下,效果并不十分顯著??偨Y(jié)可得,通過分布式并行處理有效地減少了數(shù)據(jù)的讀寫時間。 實驗二測試了陣列為1、2、4 MB時系統(tǒng)的讀寫數(shù)據(jù)時間。數(shù)據(jù)的總量為38 GB保持不變,每個實驗按照陣列大小改變其記錄條數(shù)。如圖5所示,可以發(fā)現(xiàn)在數(shù)據(jù)總量不變的情況下,更改單個陣列的大小對系統(tǒng)的讀寫性能幾乎沒有影響,這說明DDSS可以靈活滿足各種大小的陣列數(shù)據(jù),適合各種天文場景的應用。 圖5 DDSS應對不同大小陣列的吞吐量圖 本文提出了適應主流射電天文軟件CASA的底層分布式數(shù)據(jù)存儲策略。在不改變?nèi)魏紊蠈討脤拥臈l件下,使其支持分布式環(huán)境,將數(shù)據(jù)進行混合方片后采用列存儲的方法,重寫數(shù)據(jù)儲存管理器并維護基于相對位置映射的元數(shù)據(jù),提升CASA軟件的底層I/O讀寫效率。最后通過一系列實驗驗證了所提方法DDSS的有效性。在未來的研究中,針對ArrayColumn和列存儲,可以對陣列數(shù)據(jù)進行數(shù)據(jù)壓縮,進一步提高讀寫效率。另外重點關(guān)注于進程安全問題,在保證并行效果的同時,完善其對進程安全的控制,提高系統(tǒng)的健壯性和可靠性。 [1] McMullin J P,Waters B,Young W,et al.CASA Architecture and Applications[C]//Astronomical Data Analysis Software and Systems XVI ASP Conference Series,2007,376:127. [2] Diepen G N J V.Casacore Table Data System and its use in the MeasurementSet[J].Astronomy and Computing,2015,12:174-180. [3] Zetics P,Jose S.Overview of sciDB:large scale array storage,processing and analysis[C]//Proceedings of the 2010 ACM SIGMOD International Conference on Management of data,2010,NY,USA:ACM,2010:963-968. [4] Yao Y,Bowen B,Dalya B,et al.SciDB for High-Performance Array-Structured Science Data at NERSC[J].Computing in Science & Engineering,2015,17(3):44-52. [5] Buck J,Watkins N,LeFevre J,et al.SciHadoop:array-based query processing in Hadoop[C]//Proceedings of International Conference for High Performance Computing,Networking,Storage and Analysis,2011,NY,USA:ACM,2011. [6] Buck J,Watkins N,Levin G,et al.SIDR:structure-aware intelligent data routing in Hadoop[C]//Proceedings of the International Conference on High Performance Computing,Networking,Storage and Analysis,2013,NY,USA:ACM,2013. [7] 危兵,王鋒,鄧輝,等.CASA混合編程技術(shù)分析與功能擴展研究[J].天文技術(shù)與研究,2014,11(1):46-53. [8] Hong T,Wu Ya,Cao B,et al.A dynamic data allocation method with improved load-balancing for cloud storage system[C]//Proceedings of the 31st AIAA International Communications Satellite Systems Conference (ICSSC),2013,Shanghai,China,2013:220-225. [9] 巴子言,吳軍,馬嚴.基于虛節(jié)點的一致性哈希算法的優(yōu)化[J].軟件,2014(12):26-29. [10] Eswaran K. Placement of records in a file and file allocation in a computer network[C]//Proceedings of IFIP Congress on Information Processing.Stockholm,Sweden,1974,304-307. [11] Floratou A,Patel J,Shekita E,et al.Column-oriented storage techniques for MapReduce[J].VLDB Endowment,2011,4(7):419-429. [12] Tingay S,Goeke R,Bowman J D,et al.The Murchison Widefield Array:The Square Kilometre Array Precursor at Low Radio Frequencies[J].Publications of the Astronomical Society of Australia,2012,30(30):109-121. A DISTRIBUTED DATA STORAGE STRATEGY FOR CASA Guo Huiqing Wang Mei Le Jiajin (SchoolofComputerScienceandTechnology,DonghuaUniversity,Shanghai201620,China) With the progress and development in astronomical equipments,to process massive astronomical data forms the new challenge.In order to make current mainstream astronomical data analysis software can effectively deal with massive data,we proposed a distributed data storage strategy (DDSS) applicable for radio astronomy to deal with upper application.First we designed the system framework of DDSS.Then we designed the hybrid method of partitioning and columnar storage,while preserving the advantage of column-store in data query,the speed of data import is promoted as well.Furthermore,by maintaining the relative position mapping-based metadata to quickly read astronomical array data containing large amount of data,the I/O throughput of astronomy when processing underlying data of applications is significantly improved.Finally,through experiment we testified the effectiveness of the proposed method. Distribution Astronomy Array data 2015-10-13。過匯卿,碩士生,主研領(lǐng)域:數(shù)據(jù)倉庫和分布式技術(shù)。王梅,副教授。樂嘉錦,教授。 TP3 A 10.3969/j.issn.1000-386x.2016.11.0075 實驗與分析
6 結(jié) 語