亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種大數(shù)據(jù)訪問方法

文檔序號:8361591閱讀:622來源:國知局
一種大數(shù)據(jù)訪問方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲,特別涉及一種大數(shù)據(jù)的文件訪問方法。
【背景技術(shù)】
[0002]隨著智慧醫(yī)療的迅速發(fā)展和海量醫(yī)學(xué)數(shù)據(jù)的出現(xiàn),需要相應(yīng)的大型數(shù)據(jù)庫作為載體來保存這些數(shù)據(jù),但大數(shù)據(jù)的調(diào)度成了一個大問題。醫(yī)學(xué)界的文件檢索數(shù)量隨著網(wǎng)絡(luò)資源也呈指數(shù)級增長,尤其是小文件的更新速度和累積量都不斷提升,已經(jīng)成為醫(yī)療云存儲亟待解決的問題。盡管分布式文件系統(tǒng)已經(jīng)被廣泛應(yīng)用于大規(guī)模數(shù)據(jù)的存儲、分析中,很多機(jī)構(gòu)都已采用分布式文件系統(tǒng)來解決快速增長的數(shù)據(jù)問題。然而現(xiàn)有分布式文件系統(tǒng)的設(shè)計主要針對大文件的讀寫,大量小文件的存儲會降低文件系統(tǒng)整體性能,不能被很好地應(yīng)用在醫(yī)學(xué)檢索等以小文件存儲為主的系統(tǒng)中。因此,針對相關(guān)技術(shù)中所存在的上述問題,目前尚未提出有效的解決方案。

【發(fā)明內(nèi)容】

[0003]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種大數(shù)據(jù)訪問方法,包括:
[0004]在分布式文件系統(tǒng)中,將低于預(yù)設(shè)大小的文件進(jìn)行合并,形成新的存儲文件,
[0005]對合并后的文件建立主索引和次索引,
[0006]利用預(yù)取機(jī)制,在用戶請求之前對索引進(jìn)行緩存。
[0007]優(yōu)選地,所述將低于預(yù)設(shè)大小的文件進(jìn)行合并,進(jìn)一步包括:
[0008]將文件劃分成塊,將分布式文件系統(tǒng)的命名空間持久化在一個鏡像文件中,啟動時由名字節(jié)點將該鏡像文件加載到內(nèi)存中;
[0009]用戶在云存儲平臺中提交文件資源后,首先按照過濾條件通過文件過濾器進(jìn)行篩選,對于符合條件的文件,將預(yù)定數(shù)量的同一屬性的文件合并后生成新的存儲文件,在將新的存儲文件寫入系統(tǒng)的同時更新索引文件;
[0010]對每一個文件的讀寫操作,首先在命名空間中查詢,查找文件的塊地址、文件大小等信息,然后再在數(shù)據(jù)節(jié)點空間中進(jìn)行檢索。
[0011]優(yōu)選地,所述對合并后的文件建立主索引和次索引,其中主索引是文件所屬的資源集合;所述次索引是具體的資源條目,所述資源集合是具有相關(guān)性的資源條目的集合,一個資源條目只屬于一個資源集合,文件可以按照屬性域來劃分;在需要讀取文件時,依次在主索引和次索引中查詢;在文件經(jīng)過過濾后,云存儲平臺按照文件條目所屬資源集合為單位對過濾后的文件進(jìn)行合并成為文件塊;在數(shù)據(jù)處理過程中,就可以將新的文件塊內(nèi)資源條目分配給同一個MapReduce任務(wù)。
[0012]優(yōu)選地,所述預(yù)取機(jī)制進(jìn)一步包括:通過用戶當(dāng)前訪問的數(shù)據(jù)預(yù)測用戶將來訪問的數(shù)據(jù),并將其索引調(diào)入緩存,當(dāng)用戶訪問時加快系統(tǒng)響應(yīng),所述用戶在下載或瀏覽資源條目前,通過檢索或目錄查找的方式得到中間結(jié)果集,然后在其中選擇需要的資源條目進(jìn)一步訪問,在用戶看到結(jié)果集頁面與執(zhí)行下載或瀏覽之間的間隔內(nèi)通過提前緩存中間結(jié)果集中資源條目的索引,在用戶點擊下載或瀏覽時不執(zhí)行文件元數(shù)據(jù)查詢,直接進(jìn)行傳輸文件。
[0013]優(yōu)選地,所述對索引進(jìn)行緩存進(jìn)一步包括,在用戶發(fā)出檢索請求后,Web服務(wù)根據(jù)用戶檢索條件查詢符合用戶需要的資源條目結(jié)果集,返回給用戶,同時創(chuàng)建異步線程更新緩存,在返回用戶結(jié)果集到用戶瀏覽結(jié)果集并確定點擊下載或瀏覽操作之間的時間間隔內(nèi)更新緩存內(nèi)容,當(dāng)接收到更新緩存內(nèi)容請求時,調(diào)用索引模塊進(jìn)行檢索,將當(dāng)前結(jié)果集條目的元數(shù)據(jù)載入緩存,當(dāng)用戶發(fā)送下載或瀏覽請求時,Web服務(wù)調(diào)用分布式文件系統(tǒng)客戶端在緩存中查找元數(shù)據(jù)開始讀取數(shù)據(jù)并向客戶端傳輸;服務(wù)器維護(hù)一個固定線程數(shù)量的線程池,在每次接收到更新緩存請求的時候調(diào)用一個線程處理,若線程池內(nèi)沒有空閑線程則讓該緩存任務(wù)等待,利用FIFO算法建立緩存池并配置緩存池大小,將鍵值對key/value保存在緩存池中,其中文件名作為key,文件的數(shù)據(jù)節(jié)點ID,起始位置和長度的組合作為value,淘汰最久以前的緩存條目,該緩存池提供兩個操作即put操作和get操作,put操作往緩存池放入數(shù)據(jù),如果緩存池里面已有的數(shù)據(jù)達(dá)到了上限,則根據(jù)FIFO緩存替換算法替換數(shù)據(jù);Get操作根據(jù)key值獲取相應(yīng)的value值。
[0014]優(yōu)選地,所述主索引數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中,通過關(guān)系數(shù)據(jù)庫訪問接口提供訪問,使用Java中的Map數(shù)據(jù)結(jié)構(gòu)保存,在資源集合已經(jīng)寫入數(shù)據(jù)庫的基礎(chǔ)上,增加在資源條目添加時由系統(tǒng)生成值的字段,主索引中的數(shù)據(jù)采用Key/Value結(jié)構(gòu),使用Java中Map數(shù)據(jù)結(jié)構(gòu),在服務(wù)啟動的時候根據(jù)數(shù)據(jù)庫中內(nèi)容初始化該Map對象并一直存在,當(dāng)有新的資源集合加入或有的被刪除的時候,對該Map對象進(jìn)行更新;次索引是通過開源項目Lucene創(chuàng)建的,支持小文件元數(shù)據(jù)檢索,每當(dāng)用戶添加資源條目的時候?qū)崟r更新索引文件;多個用戶在一個資源集合下同時添加資源條目時,實現(xiàn)文件寫入的并發(fā)控制;
[0015]所述將文件進(jìn)行合并進(jìn)一步包括:創(chuàng)建SequenceFile對象,通過過濾器的過濾,對符合預(yù)設(shè)條件的文件進(jìn)行合并,根據(jù)資源條目所在的資源集合在主索引中查找,查找到資源集合對應(yīng)的文件路徑后,倉Il建SequenceFile對象,并獲得SequenceFile的Writer對象并對其進(jìn)行配置,準(zhǔn)備寫入文件,在執(zhí)行文件寫入的同時開啟一個新的線程,將該資源條目對應(yīng)的文件位值、長度信息寫入資源條目次索引,資源條目寫入成功后關(guān)閉輸出流,返回提交成功,否則返回提交失敗
[0016]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點:
[0017]針對用于全文檢索的小文件的讀寫,通過索引和預(yù)取提高檢索效率,在大量小文件的存儲和讀取的情況下保持云存儲平臺的響應(yīng)速度和分布式文件系統(tǒng)整體性能。
【附圖說明】
[0018]圖1是根據(jù)本發(fā)明實施例的大數(shù)據(jù)訪問方法的流程圖。
【具體實施方式】
[0019]下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細(xì)描述。結(jié)合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實現(xiàn)本發(fā)明。
[0020]本發(fā)明的一方面提供了一種用于小文件讀寫的大數(shù)據(jù)訪問方法,為大數(shù)據(jù)存取和利用提供了新的解決方案。圖1是根據(jù)本發(fā)明實施例的大數(shù)據(jù)訪問方法流程圖。
[0021]用戶在云存儲平臺中提交資源后,資源首先需要經(jīng)過文件過濾器的篩選,過濾條件包括文件大小、類型等,通過篩選的文件統(tǒng)稱為小文件。隨后對這些小文件提出一種合并策略,一定數(shù)量的小文件合并后生成新的存儲文件,一般對屬于同一屬性的小文件進(jìn)行合并。在將新的存儲文件寫入系統(tǒng)的同時更新索引文件。云存儲平臺中的索引包括,主索引是文件所屬的資源集合,如類型等;次索引是具體的資源條目。在需要讀取文件時,依次在主索引和次索引中查詢,縮小了查詢范圍,能夠保證較高的讀取響應(yīng)。
[0022]本發(fā)明的云存儲平臺系統(tǒng)的存儲層設(shè)計的核心包括:首先對小文件進(jìn)行合并生成存儲文件,再基于數(shù)據(jù)庫的存儲特征對合并后的文件建立次索引,通過索引預(yù)取提高文件讀取的響應(yīng)速度。以下詳細(xì)介紹存儲層具體的細(xì)節(jié)。
[0023]I基于小文件合并的存儲文件生成策略
[0024]將文件劃分成一個個block即塊,塊的默認(rèn)大小是64M。分布式文件系統(tǒng)的命名空間被持久化在一個鏡像文件中,啟動時由名字節(jié)點將其加載到內(nèi)存中。大量小文件會造成名字節(jié)點內(nèi)存不足,生成過大的鏡像文件降低讀取文件時文件的查找效率。對每一個文件的讀寫操作,首先在命名空間中查詢,查找文件的塊地址、文件大小等信息,然后再在數(shù)據(jù)節(jié)點空間中進(jìn)行檢索。當(dāng)讀取的文件
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1