張昌文 滿毅 何進(jìn) 谷杰銘 邢瀟
摘? ?要:隨著生物數(shù)據(jù)的價(jià)值被不斷地挖掘出來(lái),對(duì)其進(jìn)行有效存儲(chǔ)和高效地傳輸變得尤為重要。論文通過(guò)結(jié)合星際文件系統(tǒng)(Interplanetary File System,IPFS),提出了基于IPFS的生物數(shù)據(jù)存儲(chǔ)傳輸系統(tǒng),用來(lái)提高生物數(shù)據(jù)的存儲(chǔ)傳輸效率;在生物數(shù)據(jù)傳輸方面,引入了數(shù)據(jù)交換機(jī)制和秒傳機(jī)制來(lái)提高生物數(shù)據(jù)傳輸速度;在生物數(shù)據(jù)存儲(chǔ)方面,通過(guò)采用一種高效的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和引入版本控制機(jī)制來(lái)提高生物數(shù)據(jù)存儲(chǔ)效率。與此同時(shí),通過(guò)對(duì)生物數(shù)據(jù)的存儲(chǔ)傳輸進(jìn)行了深入調(diào)研,并進(jìn)行對(duì)比實(shí)驗(yàn)驗(yàn)證系統(tǒng)的效果,實(shí)驗(yàn)結(jié)果表明,相比于HTTP、FTP的存儲(chǔ)傳輸效率,論文提出的系統(tǒng)具有較高的存儲(chǔ)效率與傳輸速度。
關(guān)鍵詞:IPFS;數(shù)據(jù)交換機(jī)制;版本控制機(jī)制;秒傳機(jī)制
中圖分類號(hào):TP309.2? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract: The value of biological data (biodata) is constantly being explored, so it is especially important to store it efficiently. This paper proposes a biological data storage and transmission system based on IPFS by combining IPFS (Interplanetary File System), used to improve the efficiency of biological data storage transmission. In the aspect of biological data transmission, a data exchange mechanism and second transfer mechanism is introduced to improve the speed of biological data transmission. In the aspect of biological data storage, improving the biological data storage efficiency by adopting an efficient data storage structure and introducing a version control mechanism. In this paper, in-depth research on the storage and transmission of biological data, and a comparative experiment was carried out to verify the effect of the system. Experimental results show that compared with the storage and transmission efficiency of HTTP and FTP, the proposed system has higher storage efficiency and transmission speed.
Key words: IPFS; data exchange mechanism; version control mechanism; second transfer mechanism
1 引言
隨著生物行業(yè)的快速發(fā)展,生物數(shù)據(jù)呈現(xiàn)出了數(shù)據(jù)量巨大、數(shù)據(jù)來(lái)源廣泛、數(shù)據(jù)種類繁多、具有高價(jià)值等特點(diǎn),不同的研究機(jī)構(gòu)開(kāi)始對(duì)生物數(shù)據(jù)進(jìn)行研究分析,而研究的前提就是對(duì)生物數(shù)據(jù)進(jìn)行存儲(chǔ)與傳輸。在生物數(shù)據(jù)存儲(chǔ)方面,生物數(shù)據(jù)存儲(chǔ)是進(jìn)行研究的基礎(chǔ),因此必須要有一種高效的數(shù)據(jù)存儲(chǔ)方式來(lái)應(yīng)對(duì)生物數(shù)據(jù)所呈現(xiàn)出來(lái)的特點(diǎn)。目前,常用的數(shù)據(jù)存儲(chǔ)方式主要有關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)[1]和非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)[2]等。在生物數(shù)據(jù)的傳輸方面,數(shù)據(jù)傳輸是不同研究機(jī)構(gòu)之間分享研究結(jié)果的必然方法,目前常用的數(shù)據(jù)傳輸方式有FTP[3](文件傳輸協(xié)議)、HTTP[4](超文本傳輸協(xié)議)、P2P[5](點(diǎn)對(duì)點(diǎn)技術(shù))等技術(shù)。
在數(shù)據(jù)存儲(chǔ)方面,F(xiàn)ederico Tavella[6]等人提出了一種依賴于分子通信的新存儲(chǔ)解決方案,特別是用細(xì)菌納米網(wǎng)絡(luò)來(lái)解決DNA分子的存儲(chǔ)問(wèn)題。S. M. Hossein Tabatabaei Yazdi1[7]等人對(duì)歸檔和隨機(jī)訪問(wèn)DNA存儲(chǔ)通道引入和分析了一套新的約束編碼方案。Edvard Pedersen[8]等人提出了用于生物元數(shù)據(jù)庫(kù)管理的GeStore方法,它提供特定元數(shù)據(jù)庫(kù)版本的高效存儲(chǔ)和運(yùn)行時(shí)生成,以及生物數(shù)據(jù)分析工具的高效增量更新。
在數(shù)據(jù)傳輸方面,Kunwar Pal[9]等人提出基于數(shù)據(jù)塊優(yōu)先級(jí)選擇方案和帶寬感知對(duì)等體選擇機(jī)制的組合,其改善了對(duì)等體之間的延遲,從而提高數(shù)據(jù)的傳輸速度;Ping Lai[10]等人提出了一種新的高級(jí)數(shù)據(jù)傳輸服務(wù)(ADTS),此文利用ADTS設(shè)計(jì)一個(gè)高性能的FTP庫(kù)(FTP-ADTS),用于高性能數(shù)據(jù)傳輸;Ding Zhang[11]等人提出了一種利用Node.JS平臺(tái)構(gòu)建超文本傳輸協(xié)議(HTTP)Web服務(wù)器與傳輸控制協(xié)議或用戶數(shù)據(jù)報(bào)協(xié)議(TCP / UDP)套接字程序相結(jié)合的解決方案,提高PC程序和嵌入式系統(tǒng)通信的效率。
IPFS(Interplanetary File System,星際文件系統(tǒng))[12]是一個(gè)分布式的Web,點(diǎn)到點(diǎn)超媒體協(xié)議,被譽(yù)為將取代傳統(tǒng)的互聯(lián)網(wǎng)HTTP協(xié)議成為新一代的文件傳輸協(xié)議。它融合了P2P、DHT、BitTorrent、GIT、SFS等技術(shù),而在IPFS系統(tǒng)中起架構(gòu)作用的是P2P技術(shù),P2P技術(shù)采用的是分布式計(jì)算方式,具有可靠性、高容錯(cuò)性、可擴(kuò)展性、靈活性、計(jì)算速度快等特點(diǎn)。除此之外,IPFS系統(tǒng)融合了Merkle Tree[13]和DAG[14]提出的強(qiáng)大的Merkle DAG對(duì)象模型,并通過(guò)此對(duì)象模型構(gòu)建了版本文件系統(tǒng),用于不同版本文件的分發(fā)。
在論文中,首次提出了基于IPFS的生物數(shù)據(jù)的存儲(chǔ)傳輸系統(tǒng)。在生物數(shù)據(jù)傳輸方面,引入了數(shù)據(jù)交換機(jī)制和秒傳機(jī)制來(lái)提高生物數(shù)據(jù)傳輸速度。在生物數(shù)據(jù)存儲(chǔ)方面,通過(guò)采用一種高效的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)、引入版本控制機(jī)制來(lái)提高生物數(shù)據(jù)存儲(chǔ)效率;然后通過(guò)與HTTP、FTP技術(shù)在生物數(shù)據(jù)存儲(chǔ)傳輸效率方面進(jìn)行實(shí)驗(yàn)對(duì)比分析,得出論文提出的系統(tǒng)具有較高的數(shù)據(jù)存儲(chǔ)與傳輸效率。
基于 IPFS的生物存儲(chǔ)傳輸系統(tǒng)的設(shè)計(jì),主要包括系統(tǒng)框架、模塊設(shè)計(jì)以及系統(tǒng)中的關(guān)鍵點(diǎn)。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)框架
論文中設(shè)計(jì)出的系統(tǒng)主要用于生物數(shù)據(jù)的存儲(chǔ)與傳輸,因此將整個(gè)系統(tǒng)分為四層結(jié)構(gòu),如圖1所示,由下到上分別是存儲(chǔ)層、路由層、交換層、應(yīng)用層。
存儲(chǔ)層:主要目的是用來(lái)存儲(chǔ)生物數(shù)據(jù)。將整個(gè)系統(tǒng)中的每一個(gè)節(jié)點(diǎn)分離出一部分硬盤空間提供給整個(gè)網(wǎng)絡(luò)使用,并且采用了一種高效的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)來(lái)存儲(chǔ)生物數(shù)據(jù)。
路由層:主要目的是幫節(jié)點(diǎn)在整個(gè)系統(tǒng)中查到自己所需資源。此系統(tǒng)采用DHT[15](分布式哈希表)的存儲(chǔ)方式,用來(lái)存儲(chǔ)和查詢系統(tǒng)中的生物數(shù)據(jù)。
交換層:主要目的是用來(lái)提高生物數(shù)據(jù)的下載速度。系統(tǒng)在BitTorrent的基礎(chǔ)上進(jìn)行了改進(jìn),采用了一個(gè)特殊的數(shù)據(jù)交換機(jī)制。
應(yīng)用層:根據(jù)論文中要解決的業(yè)務(wù)需求,對(duì)生物數(shù)據(jù)進(jìn)行相關(guān)的操作,主要包括生物數(shù)據(jù)的上傳、生物數(shù)據(jù)的下載、生物數(shù)據(jù)的查詢。
2.2 模塊設(shè)計(jì)
如圖2所示,基于IPFS的生物數(shù)據(jù)的存儲(chǔ)傳輸系統(tǒng)主要由存儲(chǔ)模塊、資源查找模塊、數(shù)據(jù)交換模塊、系統(tǒng)功能模塊組成。
存儲(chǔ)模塊,即用于存儲(chǔ)生物數(shù)據(jù)的模塊,在此模塊中采用的是生物數(shù)據(jù)分片存儲(chǔ)的方式,并且對(duì)于系統(tǒng)網(wǎng)絡(luò)中已經(jīng)上傳的數(shù)據(jù)還引入了秒傳機(jī)制,達(dá)到極速秒傳的效果。此外,又引入了版本控制,即控制數(shù)據(jù)上傳過(guò)程中產(chǎn)生不同版本的問(wèn)題,并根據(jù)需要進(jìn)行不同版本的分發(fā)。
資源查找模塊,即用于查找所需的生物數(shù)據(jù)并存儲(chǔ)相關(guān)索引信息,其包括存儲(chǔ)與定位兩部分,當(dāng)生物數(shù)據(jù)的大小小于1KB時(shí)會(huì)直接存儲(chǔ)在DHT中,如果大于1KB的生物數(shù)據(jù)將只會(huì)存儲(chǔ)其索引值,當(dāng)進(jìn)行資源查找時(shí),會(huì)直接根據(jù)生物數(shù)據(jù)的索引值在DHT中查詢定位所需生物數(shù)據(jù)。
數(shù)據(jù)交換模塊,即整個(gè)系統(tǒng)中的每一個(gè)節(jié)點(diǎn)都有兩個(gè)列表:已有的生物數(shù)據(jù)和所需的生物數(shù)據(jù)。對(duì)于需要查找資源的節(jié)點(diǎn),通過(guò)資源查找模塊來(lái)對(duì)所需的生物數(shù)據(jù)查詢,當(dāng)查詢到之后,會(huì)與對(duì)應(yīng)的節(jié)點(diǎn)建立連接,并進(jìn)行數(shù)據(jù)的交換。在資源查找過(guò)程中,對(duì)于其它的節(jié)點(diǎn),會(huì)查詢自己有的生物數(shù)據(jù),并對(duì)比查找節(jié)點(diǎn)的所需數(shù)據(jù),確定自己是否有目標(biāo)資源。
系統(tǒng)功能模塊,主要功能有生物數(shù)據(jù)的上傳、下載、查詢。生物數(shù)據(jù)上傳,即將生物數(shù)據(jù)上傳到系統(tǒng)網(wǎng)絡(luò)之中;生物數(shù)據(jù)的下載,即在系統(tǒng)網(wǎng)絡(luò)中下載節(jié)點(diǎn)所需的生物數(shù)據(jù);生物數(shù)據(jù)查詢,即查詢網(wǎng)絡(luò)之中有哪些生物數(shù)據(jù)。
2.3 關(guān)鍵點(diǎn)
2.3.1 秒傳機(jī)制
在此系統(tǒng)中引入了秒傳機(jī)制,用來(lái)提高生物數(shù)據(jù)的上傳速度。其原理是當(dāng)某個(gè)節(jié)點(diǎn)上傳的生物數(shù)據(jù)到系統(tǒng)網(wǎng)絡(luò)中之后,通過(guò)哈希值校驗(yàn)可以確定此生物數(shù)據(jù)是否存在于網(wǎng)絡(luò)之中,如果存在于網(wǎng)絡(luò)之中,則該文件可以通過(guò)系統(tǒng)網(wǎng)絡(luò)復(fù)制一份到上傳者的本地存儲(chǔ)中,從而達(dá)到極速秒傳的效果。
2.3.2 數(shù)據(jù)交換機(jī)制
在數(shù)據(jù)交換模塊中,系統(tǒng)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都有兩個(gè)列表:have_list(已有生物數(shù)據(jù)塊)、want_list(想要生物數(shù)據(jù)塊)。通過(guò)節(jié)點(diǎn)之間交換生物數(shù)據(jù)塊來(lái)達(dá)到分發(fā)數(shù)據(jù)的效果,并且當(dāng)節(jié)點(diǎn)在下載生物數(shù)據(jù)的同時(shí),也會(huì)不斷地上傳已經(jīng)下載的生物數(shù)據(jù)塊到系統(tǒng)網(wǎng)絡(luò)中。與此同時(shí),此交換機(jī)制還存在一個(gè)倉(cāng)庫(kù)用來(lái)存儲(chǔ)所有節(jié)點(diǎn)已有的生物數(shù)據(jù)塊,因此只要當(dāng)生物數(shù)據(jù)的哈希值與want_list中的哈希值一樣時(shí),則可以直接下載該生物數(shù)據(jù)塊,而不僅局限于一個(gè)對(duì)應(yīng)的節(jié)點(diǎn)。
2.3.3 數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)
此系統(tǒng)在存儲(chǔ)生物數(shù)據(jù)時(shí),除了對(duì)生物數(shù)據(jù)進(jìn)行等大小的分片存儲(chǔ)之外,還采用了特殊的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。此結(jié)構(gòu)采用樹(shù)狀結(jié)構(gòu),主要由節(jié)點(diǎn)與鏈接組成,節(jié)點(diǎn)存儲(chǔ)有數(shù)據(jù)以及下級(jí)鏈接的關(guān)系,而鏈接存儲(chǔ)了數(shù)據(jù)的Hash值。鏈接的數(shù)據(jù)結(jié)構(gòu)主要由三部分組成:Name(下級(jí)數(shù)據(jù)名稱)、Size(下級(jí)數(shù)據(jù)大?。?、Cid(下級(jí)數(shù)據(jù)索引)。在這樣數(shù)據(jù)結(jié)構(gòu)下,父節(jié)點(diǎn)的哈希值是由子節(jié)點(diǎn)的哈希值所決定的,父節(jié)點(diǎn)中包含有子節(jié)點(diǎn)的信息,因此當(dāng)生物數(shù)據(jù)塊被修改之后,只需要對(duì)被修改的生物數(shù)據(jù)塊進(jìn)行復(fù)制,再進(jìn)行修改即可,而不是對(duì)整個(gè)生物數(shù)據(jù)進(jìn)行復(fù)制,因此會(huì)大大減少存儲(chǔ)空間的消耗。
2.3.4 版本控制機(jī)制
版本控制系統(tǒng),即當(dāng)生物數(shù)據(jù)存在部分更改時(shí)會(huì)產(chǎn)生不同版本的生物數(shù)據(jù),因此可以根據(jù)版本號(hào)來(lái)獲取需要的整個(gè)生物數(shù)據(jù)。從2.3.3小節(jié)提出的生物數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)可得,當(dāng)生物數(shù)據(jù)部分發(fā)生改變時(shí),只需要對(duì)其發(fā)生改變的生物數(shù)據(jù)塊進(jìn)行修改,這樣就產(chǎn)生了新版本的生物數(shù)據(jù)。由于當(dāng)生物數(shù)據(jù)塊被改動(dòng)之后,其對(duì)應(yīng)的哈希值也隨之改變,因此將所有生物數(shù)據(jù)塊的哈希值鏈接到一起作為其版本號(hào),并將其存儲(chǔ)到對(duì)應(yīng)的節(jié)點(diǎn)上。這樣就可以通過(guò)給定的生物數(shù)據(jù)的版本號(hào),查詢到對(duì)應(yīng)的節(jié)點(diǎn),再根據(jù)此版本號(hào)中的哈希值找到對(duì)應(yīng)的生物數(shù)據(jù)的分片,再將分片組合起來(lái),即形成了完整的生物數(shù)據(jù)。
3 系統(tǒng)運(yùn)行過(guò)程與可行性分析
3.1 系統(tǒng)運(yùn)行過(guò)程
基于IPFS的生物數(shù)據(jù)存儲(chǔ)傳輸系統(tǒng)的最主要的運(yùn)行過(guò)程是生物數(shù)據(jù)的上傳、下載、存儲(chǔ)。
首先,生物數(shù)據(jù)的上傳。當(dāng)生物數(shù)據(jù)大小大于1KB時(shí),會(huì)采用等大小分片的方式對(duì)生物數(shù)據(jù)進(jìn)行分片,即將生物數(shù)據(jù)的每一個(gè)片分成256KB,然后計(jì)算每片生物數(shù)據(jù)塊的哈希值,并將所有塊的哈希值(Block Hash)組成一個(gè)數(shù)組,再一次計(jì)算其哈希值,這樣就得到了生物數(shù)據(jù)最終的哈希值Hash(Biodata),然后將Hash(Biodata)和Block Hash數(shù)組組成一個(gè)對(duì)象并將其作為索引結(jié)構(gòu),最終將所有生物數(shù)據(jù)塊與索引結(jié)構(gòu)上傳到網(wǎng)絡(luò)中,完成生物數(shù)據(jù)的上傳,并返回生物數(shù)據(jù)的Hash(Biodata),如果生物數(shù)據(jù)大小小于1KB時(shí),則直接把生物數(shù)據(jù)與哈希值(索引)上傳到網(wǎng)絡(luò)中。此外,如果當(dāng)某個(gè)用戶上傳的生物數(shù)據(jù)已經(jīng)存在于系統(tǒng)網(wǎng)絡(luò)之中,那么將使用秒傳機(jī)制,來(lái)達(dá)到極速秒傳的效果。
其次,生物數(shù)據(jù)的存儲(chǔ)。為了提高存儲(chǔ)的效率,系統(tǒng)會(huì)選擇最快的路徑來(lái)存儲(chǔ)生物數(shù)據(jù)。系統(tǒng)中的每個(gè)節(jié)點(diǎn)都會(huì)提供一部分硬盤空間(默認(rèn)為10GB,可以配置)給整個(gè)網(wǎng)絡(luò)使用。那么在通常情況下,這部分硬盤空間總是最快的,因?yàn)椴恍枰缇W(wǎng)。當(dāng)存儲(chǔ)完畢后,網(wǎng)絡(luò)上任意節(jié)點(diǎn)都可以訪問(wèn)這個(gè)生物數(shù)據(jù)。當(dāng)有很多節(jié)點(diǎn)對(duì)這個(gè)生物數(shù)據(jù)感興趣,那么網(wǎng)絡(luò)中的拷貝數(shù)會(huì)越來(lái)越多,所以在生物數(shù)據(jù)下載時(shí)就可以與多個(gè)節(jié)點(diǎn)相連接來(lái)傳輸生物數(shù)據(jù)塊。除此之外,系統(tǒng)還引入了版本控制機(jī)制,來(lái)實(shí)現(xiàn)隨著時(shí)間變化的不同生物數(shù)據(jù)版本的控制,并且可以有效分發(fā)不同的生物數(shù)據(jù)版本。
最后,生物數(shù)據(jù)的下載。系統(tǒng)網(wǎng)絡(luò)中對(duì)生物數(shù)據(jù)的資源查找采用的是DHT(Distributed Hash Tables)技術(shù),網(wǎng)絡(luò)中所有節(jié)點(diǎn)都維護(hù)著鍵值對(duì)的映射,每個(gè)節(jié)點(diǎn)只負(fù)責(zé)網(wǎng)絡(luò)中一部分的數(shù)據(jù)存儲(chǔ)與路由信息,并且DHT的查詢效率為log2(n),所以當(dāng)某個(gè)節(jié)點(diǎn)根據(jù)生物數(shù)據(jù)的鍵即Hash值進(jìn)行資源查找時(shí),通過(guò)DHT可以迅速定位到資源所在地,然后調(diào)用數(shù)據(jù)交換機(jī)制來(lái)完成發(fā)起資源請(qǐng)求的節(jié)點(diǎn)下載所需生物數(shù)據(jù)。此外,當(dāng)網(wǎng)絡(luò)中有多個(gè)節(jié)點(diǎn)都存在資源時(shí),發(fā)起資源查詢的節(jié)點(diǎn)可以從多處目標(biāo)節(jié)點(diǎn)上獲取生物數(shù)據(jù)的片段,從而達(dá)到加速下載的目的。
3.2 系統(tǒng)可行性分析
生物數(shù)據(jù)具有很高的價(jià)值,此價(jià)值不僅體現(xiàn)在生物行業(yè),而且可以用于其它行業(yè),比如醫(yī)學(xué)、農(nóng)業(yè)和健康等領(lǐng)域。而IPFS被譽(yù)為將取代傳統(tǒng)的互聯(lián)網(wǎng)HTTP協(xié)議成為新一代的文件傳輸協(xié)議,IPFS具有可擴(kuò)展性、傳輸速度快的特點(diǎn),并且可以讓互聯(lián)網(wǎng)有更快的速度,更加安全,更加開(kāi)放,其為生物數(shù)據(jù)的存儲(chǔ)傳輸提供了技術(shù)支持。此外,IPFS的開(kāi)發(fā)可以使用多種編程語(yǔ)言,比如Go、JavaScript等,因此從技術(shù)方面來(lái)說(shuō)具有較強(qiáng)的可行性。
此系統(tǒng)作為一個(gè)分布式的系統(tǒng),網(wǎng)絡(luò)中的所有節(jié)點(diǎn)既是服務(wù)器也是客戶機(jī),不存在有中心服務(wù)器,因此當(dāng)網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)失效或者離開(kāi)網(wǎng)絡(luò)時(shí),都不會(huì)對(duì)整個(gè)網(wǎng)絡(luò)產(chǎn)生影響,因此從系統(tǒng)穩(wěn)定的角度來(lái)說(shuō)具有較強(qiáng)的可行性。
4 實(shí)驗(yàn)與分析
基于IPFS的生物數(shù)據(jù)存儲(chǔ)傳輸系統(tǒng)在生物數(shù)據(jù)的傳輸方面,生物數(shù)據(jù)的傳輸速度要比FTP、HTTP的速度更快,效率更高。在生物數(shù)據(jù)的存儲(chǔ)方面,使用該系統(tǒng)進(jìn)行生物數(shù)據(jù)存儲(chǔ)具有存儲(chǔ)簡(jiǎn)單方便、存儲(chǔ)效率高等優(yōu)勢(shì)。
本次實(shí)驗(yàn)采用的實(shí)驗(yàn)平臺(tái)分別是Windows(Intel? Core?i5-4200U CPU @ 1.60GHz 2.30GHz ;Memory:6.0 GB)、Ubuntu14.04(Intel? Core?2 Duo CPU E8400 @ 3.00GHz × 2;Memory:2.0 GB)、Ubuntu16.04(Intel? Core? i7-4790 CPU @ 3.60GHz × 8;Memory:15.6GB );實(shí)驗(yàn)網(wǎng)絡(luò)采用的是4G網(wǎng)絡(luò)。
在實(shí)驗(yàn)中采用的是FileZilla[16]來(lái)實(shí)現(xiàn)FTP的文件傳輸。當(dāng)生物數(shù)據(jù)大小為1GB時(shí),先在Windows上安裝好FileZilla Server,后在Ubuntu16.04和Ubuntu14.04系統(tǒng)中安裝FileZilla客戶端,然后在Ubuntu14.04系統(tǒng)中上傳本次實(shí)驗(yàn)的1GB的生物數(shù)據(jù)到FTP的服務(wù)器,實(shí)驗(yàn)結(jié)果表明,上傳速度為3.4MB/s;上傳成功之后在Ubuntu16.04系統(tǒng)中下載此生物數(shù)據(jù),實(shí)驗(yàn)結(jié)果表明,下載速度為1.3MB/s。1GB生物數(shù)據(jù)其所占空間為1GB;當(dāng)生物數(shù)據(jù)大小為5GB時(shí),實(shí)驗(yàn)結(jié)果表明,上傳速度為3.1MB/s,下載速度為1.2MB/s,5GB生物數(shù)據(jù)其所占空間為5GB。
在實(shí)驗(yàn)中采用的是HFS來(lái)實(shí)現(xiàn)HTTP的文件傳輸。當(dāng)生物數(shù)據(jù)大小為1GB時(shí),在Windows系統(tǒng)上搭建好HFS的服務(wù)器,由于其服務(wù)器是直接通過(guò)選擇硬盤中的文件,即整個(gè)Windows系統(tǒng)的硬盤空間都已經(jīng)在其服務(wù)器之中,故不存在上傳速度的說(shuō)法。然后,Ubuntu14.04系統(tǒng)中通過(guò)給定的HTTP鏈接在瀏覽器中打開(kāi)進(jìn)行下載文件,實(shí)驗(yàn)結(jié)果表明,其下載速度為3.4MB/s,并且1GB的生物數(shù)據(jù)占了Windows硬盤空間1GB的存儲(chǔ)。 當(dāng)生物數(shù)據(jù)大小為5GB時(shí),實(shí)驗(yàn)結(jié)果表明,下載速度為3.2MB/s,并且1GB的生物數(shù)據(jù)占了Windows硬盤空間5GB的存儲(chǔ)。
本次實(shí)驗(yàn)使用基于IPFS對(duì)生物數(shù)據(jù)進(jìn)行傳輸與存儲(chǔ)的系統(tǒng),首先在Windows、Ubuntu14.04、Ubuntu16.04系統(tǒng)中安裝好基于IPFS的系統(tǒng),并讓所有實(shí)驗(yàn)平臺(tái)都處在一個(gè)局域網(wǎng)中,然后在Windows系統(tǒng)上的節(jié)點(diǎn)上傳1GB的生物數(shù)據(jù),在Ubuntu16.04系統(tǒng)的節(jié)點(diǎn)上傳5GB的生物數(shù)據(jù),并且測(cè)試其上傳數(shù)據(jù)以及所占硬盤空間。隨后,系統(tǒng)中非上傳的某兩個(gè)節(jié)點(diǎn)對(duì)1GB、5GB的生物數(shù)據(jù)分別進(jìn)行下載,測(cè)試其下載速度。最后,此時(shí)網(wǎng)絡(luò)中1GB、5GB的生物數(shù)據(jù)分別都已經(jīng)存在于兩個(gè)系統(tǒng)節(jié)點(diǎn)之中,再讓不包含1GB或者5GB生物數(shù)據(jù)的節(jié)點(diǎn)進(jìn)行下載,測(cè)試其在多節(jié)點(diǎn)加速下的下載速度。此外,當(dāng)生物數(shù)據(jù)上傳到系統(tǒng)網(wǎng)絡(luò)中之后,會(huì)對(duì)文件進(jìn)行分塊并哈希存儲(chǔ)在本地硬盤之中。
本次實(shí)驗(yàn)通過(guò)對(duì)1GB/5GB生物數(shù)據(jù)的10%部分進(jìn)行完全改變,并采用各種傳輸方式對(duì)其進(jìn)行上傳并存儲(chǔ)。實(shí)驗(yàn)結(jié)果表明,當(dāng)生物數(shù)據(jù)量為1GB時(shí),改變其中100MB數(shù)據(jù),由于原來(lái)硬盤中已經(jīng)存儲(chǔ)有1GB數(shù)據(jù),再次上傳之后,在FTP傳輸方式中占用2GB硬盤空間;在HTTP傳輸方式中也占用2GB硬盤空間。在基于IPFS的系統(tǒng)中,占用1.1GB內(nèi)存空間;同樣當(dāng)生物數(shù)據(jù)量為5GB時(shí),改變其中500MB數(shù)據(jù),由于原來(lái)硬盤中已經(jīng)存儲(chǔ)有5GB數(shù)據(jù),再次上傳之后,在FTP傳輸方式中占用10GB硬盤空間;在HTTP傳輸方式中也占用10GB硬盤空間;在基于IPFS的系統(tǒng)中,占用5.5GB內(nèi)存空間。
綜上所述,當(dāng)生物數(shù)據(jù)量為1GB時(shí),實(shí)驗(yàn)結(jié)果如表1所示。當(dāng)生物數(shù)據(jù)量為5GB時(shí),實(shí)驗(yàn)結(jié)果如表2所示。
從實(shí)驗(yàn)結(jié)果可得,無(wú)論是在大數(shù)據(jù)量還是小數(shù)據(jù)量的情況下,論文提出的系統(tǒng)在生物數(shù)據(jù)的傳輸方面都表現(xiàn)出了遠(yuǎn)高于FTP、HTTP的傳輸效率。與此同時(shí),由于引入了秒傳機(jī)制和多節(jié)點(diǎn)加速機(jī)制,進(jìn)一步提高了生物數(shù)據(jù)的傳輸效率。在生物數(shù)據(jù)的存儲(chǔ)方面,當(dāng)生物數(shù)據(jù)部分發(fā)生改變需要再次上傳時(shí),F(xiàn)TP、HTTP會(huì)對(duì)整個(gè)生物數(shù)據(jù)再次存儲(chǔ),而論文提出的系統(tǒng)只會(huì)對(duì)修改部分進(jìn)行再次存儲(chǔ),因此明顯地提高了生物數(shù)據(jù)的存儲(chǔ)效率。
5 結(jié)束語(yǔ)
生物數(shù)據(jù)的存儲(chǔ)與傳輸在生物數(shù)據(jù)的研究中起著非常重要的作用,因此為了提高生物數(shù)據(jù)的存儲(chǔ)效率和加快生物數(shù)據(jù)的傳輸速度,論文首次提出了基于IPFS生物數(shù)據(jù)的存儲(chǔ)傳輸系統(tǒng)。
首先,在生物數(shù)據(jù)傳輸方面,上傳時(shí)采用了分片哈希上傳機(jī)制和秒傳機(jī)制,資源查找時(shí)采用了DHT技術(shù),下載時(shí)采用數(shù)據(jù)交換機(jī)制,以此來(lái)提高了生物數(shù)據(jù)的傳輸速度。
其次,在生物數(shù)據(jù)存儲(chǔ)方面,通過(guò)一種高效的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)對(duì)生物數(shù)據(jù)進(jìn)行存儲(chǔ),并通過(guò)版本控制系統(tǒng)對(duì)不同版本的生物數(shù)據(jù)進(jìn)行分發(fā),從而提高了生物數(shù)據(jù)的存儲(chǔ)效率。從實(shí)驗(yàn)結(jié)果中可得,在生物數(shù)據(jù)傳輸速度方面,論文提出的系統(tǒng)具有遠(yuǎn)快于FTP、HTTP的傳輸速度,并且在秒傳機(jī)制的作用下,當(dāng)系統(tǒng)網(wǎng)絡(luò)中存在所要上傳的生物數(shù)據(jù)時(shí),其可以達(dá)到極速秒傳的效果,并且在多節(jié)點(diǎn)加速機(jī)制的作用下,會(huì)進(jìn)一步提高生物數(shù)據(jù)傳輸?shù)乃俣?。在生物?shù)據(jù)的存儲(chǔ)方面,當(dāng)生物數(shù)據(jù)部分發(fā)生改變需要再次上傳時(shí),F(xiàn)TP、HTTP會(huì)對(duì)整個(gè)生物數(shù)據(jù)再次存儲(chǔ),而論文提出的系統(tǒng)只會(huì)對(duì)修改部分進(jìn)行再次存儲(chǔ),因此明顯地提高了生物數(shù)據(jù)的存儲(chǔ)效率。
基金項(xiàng)目:
國(guó)家重點(diǎn)研發(fā)計(jì)劃“生物信息安全及高效傳輸”項(xiàng)目(項(xiàng)目編號(hào):2017YFC1201204)。
參考文獻(xiàn)
[1] Tomasic I, Petrovi? N, Fotouhi H, et al. Data Flow and Collection for Remote Patients Monitoring: From Wireless Sensors through a Relational Database to a Web interface in Real Time [J]. 2017.
[2] Ginde G, Saha S, Mathur A, et al. Use of NoSQL database and visualization techniques to analyze massive scholarly article data from journals[J]. 2018.
[3] Gien M. A File Transfer Protocol (FTP) [J]. Computer Networks, 1978, 2(4):312-319.
[4] Reschke J F. This document defines the "Basic" Hypertext Transfer Protocol (HTTP) Authentication Scheme, which transmits credentials as userid/password pairs, obfuscated by the use of Base64 encoding [J]. 2015.
[5] Elrakabawy S M, Lindemann C. Peer-to-peer file transfer in wireless mesh networks[C]. Conference on Wireless on Demand Network Systems & Services. 2012.
[6] Tavella F, Giaretta A, Dooley-Cullinane T M, et al. DNA Molecular Storage System: Transferring Digitally Encoded Information through Bacterial Nanonetworks [J]. 2018.
[7] Yazdi S M H T, Han M K, Garcia-Ruiz E, et al. DNA-Based Storage: Trends and Methods [J]. IEEE Transactions on Molecular, Biological and Multi-Scale Communications, 2015, 1(3):230-248.
[8] Pedersen E, Bongo L A. Large-scale Biological Meta-Database Management [J]. Future Generation Computer Systems, 2016.
[9] Pal K, Govil M C, Ahmed M. Priority-based scheduling scheme for live video streaming in peer-to-peer network [J]. Multimedia Tools & Applications, 2018(2):1-31.
[10] Lai P , Subramoni H , Narravula S , et al. Designing Efficient FTP Mechanisms for High Performance Data-Transfer over InfiniBand.[C]. International Conference on Parallel Processing. IEEE Computer Society, 2009.
[11] Zhang D, Lin S, Fu Y, et al. The communication system between web application host computers and embedded systems based on Node.JS[C]. International Congress on Image & Signal Processing. IEEE, 2018.
[12] Benet J. IPFS - Content Addressed, Versioned, P2P File System [J]. Eprint Arxiv, 2014.
[13] Jian X, Wei L, Yu Z, et al. Dynamic Fully Homomorphic encryption-based Merkle Tree for lightweight streaming authenticated data structures [J]. Journal of Network & Computer Applications, 2018, 107.
[14] Radhakrishnan A, Solus L, Uhler C. Counting Markov equivalence classes for DAG models on trees [J]. Discrete Applied Mathematics, 2018:S0166218X18301069.
[15] Hassanzadeh-Nazarabadi Y, Küp?ü A, ?znur ?zkasap. Decentralized and locality aware replication method for DHT-based P2P storage systems [J]. Future Generation Computer Systems, 2018, 84:32-46.
[16] Woodraska D, Sanford M, Xu D. Security mutation testing of the FileZilla FTP server[C]. Acm Symposium on Applied Computing. 2011.