• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      支持大規(guī)模地震探測數(shù)據(jù)快速可視化的云端數(shù)據(jù)緩存技術(shù)

      2018-10-09 11:11:08魏曉輝崔浩龍李洪亮
      吉林大學學報(理學版) 2018年5期
      關(guān)鍵詞:數(shù)據(jù)文件云端客戶端

      魏曉輝, 崔浩龍, 李洪亮, 白 鑫

      (吉林大學 計算機科學與技術(shù)學院, 長春 130012)

      地震勘探是勘測地下石油與天然氣資源的重要方法, 在地殼研究等領(lǐng)域應(yīng)用廣泛. 勘探過程由數(shù)據(jù)采集、 數(shù)據(jù)處理和數(shù)據(jù)解釋3個階段組成. 通過數(shù)據(jù)采集獲得反射回來的原始地震波信號, 運用降噪、 削弱干擾、 提高分辨率等進行數(shù)據(jù)處理, 對處理后的三維地震體數(shù)據(jù)進行可視化, 可直觀地展現(xiàn)地球深部的具體構(gòu)造, 方便領(lǐng)域內(nèi)專家對地震數(shù)據(jù)進行解釋, 為科學研究和資源勘探提供了便利工具.

      目前, GOCAD,GeoEAST,Petrol,Ocean等三維建模軟件主要以處理解釋一體化的模式運作, 在集中的數(shù)據(jù)管理層上對地震數(shù)據(jù)進行可視化, 隨著數(shù)據(jù)采集技術(shù)的迅猛發(fā)展, 以及人們對高精度、 高分辨率數(shù)據(jù)的需求增加, 地震數(shù)據(jù)量級也呈指數(shù)級增長, 而計算機的存儲能力并不會無限擴展. 因此許多平臺在面臨大規(guī)模數(shù)據(jù)的存儲瓶頸時選擇將其分成多個小數(shù)據(jù)塊進行加載, 但該方法并未解決計算機存儲能力有限的問題, 使可視化平臺的發(fā)展受到限制. GOCAD是目前國際公認的主流建模軟件, 具有強大的三維建模、 數(shù)據(jù)可視化、 地質(zhì)解釋和分析的功能, 實現(xiàn)了高水平的半智能化建模[1-4]. GeoEast地震數(shù)據(jù)處理解釋一體化系統(tǒng)是國內(nèi)在該領(lǐng)域探索的代表, 系統(tǒng)整體功能已達到國際先進水平[5-6]. 但這些三維地震體數(shù)據(jù)可視化系統(tǒng)都有一個共同缺陷, 就是對地震數(shù)據(jù)進行集中處理解釋, 面對地震數(shù)據(jù)規(guī)模的快速增長, 在未來必將產(chǎn)生地震數(shù)據(jù)規(guī)模過大與存儲容量不足之間的矛盾.

      用戶在對地震數(shù)據(jù)訪問的過程中不會隨時都需要完整的數(shù)據(jù), 而是僅關(guān)注其中的某些區(qū)域, 稱為“興趣區(qū)域”[5,7-8], 隨著用戶的拖拽、 放大、 縮小等操作, 興趣區(qū)域也會隨之轉(zhuǎn)移, 帶來不同分塊文件的更替. 如果能對用戶的訪問行為進行預(yù)測, 在用戶關(guān)注當前區(qū)域時預(yù)測其下一步需要的數(shù)據(jù), 提前從文件系統(tǒng)加載到緩存中, 就能大量減少用戶等待時間. 文獻[9-10]對經(jīng)典的訪問預(yù)測算法——LS(last successor)算法進行了研究: 文獻[9]提出將文件訪問順序與用戶身份綁定, 以應(yīng)對不同用戶在訪問同一文件后分別訪問不同文件的情形; 文獻[10]則提出記錄當前訪問文件的兩個后繼, 作為對LS算法僅記錄一個后繼文件的擴充. 但上述方法均不適用于地學數(shù)據(jù)可視化過程中復雜的訪問模式, 用戶對地震數(shù)據(jù)的訪問會根據(jù)不同的可視化需要而變化, LS訪問預(yù)測算法無法適應(yīng)該需求.

      基于以上地學數(shù)據(jù)可視化平臺面臨的問題, 本文提出一個構(gòu)造云數(shù)據(jù)中心存儲數(shù)據(jù), 在客戶主機上部署輕量級客戶端程序按需遠程加載數(shù)據(jù)的計算模式, 解決了海量地震數(shù)據(jù)的存儲難題; 并提出使用分布式緩存技術(shù), 避免客戶端與服務(wù)端之間頻繁的網(wǎng)絡(luò)通信, 同時減少服務(wù)端訪問云端文件系統(tǒng)帶來的延遲; 基于關(guān)聯(lián)規(guī)則挖掘用戶對地震數(shù)據(jù)的訪問模式, 將符合概率條件的文件訪問順序記錄下來, 用于預(yù)測用戶下一步訪問, 適應(yīng)用戶多種訪問模式的情形. 實驗結(jié)果表明, 本文工作有效減少了客戶端的存儲占用, 實現(xiàn)了遠程地震數(shù)據(jù)在本地的快速可視化.

      1 地震探測數(shù)據(jù)云存儲架構(gòu)

      1.1 系統(tǒng)模型

      本文提出的云存儲系統(tǒng)分為提供大規(guī)模數(shù)據(jù)存儲服務(wù)的云數(shù)據(jù)中心與對地學數(shù)據(jù)進行可視化解釋的遠程客戶端兩部分, 利用網(wǎng)絡(luò)進行通信. 在云端存儲部分, 采用八叉樹結(jié)構(gòu)對地震數(shù)據(jù)進行分塊處理, 將數(shù)據(jù)塊線性排列進行編碼, 一個數(shù)據(jù)塊稱為一個tile, 若干tile構(gòu)成一個file, 組成地震數(shù)據(jù)塊的索引. 利用地震數(shù)據(jù)一次寫入多次讀取的應(yīng)用特性, 將建立索引的地震數(shù)據(jù)分塊存儲在Hadoop分布式文件系統(tǒng)(HDFS)中, 解決了單機集中存儲大規(guī)模地震數(shù)據(jù)時面臨的存儲容量瓶頸問題, 同時依靠HDFS對數(shù)據(jù)文件副本的管理策略, 使得云端存儲系統(tǒng)能為用戶提供高可用性的數(shù)據(jù)服務(wù). 遠程客戶端可部署在計算機、 工作站、 移動設(shè)備等多種硬件平臺上, 按需從云端存儲獲取數(shù)據(jù)塊進行可視化. 為了避免客戶端與云存儲頻繁進行數(shù)據(jù)傳輸, 加速數(shù)據(jù)加載過程, 在客戶端與云端設(shè)立分布式緩存, 將常用的數(shù)據(jù)塊緩存到內(nèi)存或本地存儲中, 降低了頻繁數(shù)據(jù)傳輸帶來的額外時間開銷, 實現(xiàn)了大規(guī)模地震數(shù)據(jù)在輕量級客戶端下的快速可視化.

      基于云端數(shù)據(jù)緩存系統(tǒng)架構(gòu)的地學數(shù)據(jù)可視化平臺, 能實現(xiàn)輕量級的客戶端軟件, 簡化平臺部署流程, 減少客戶端的存儲容量占用, 同時云端存儲的數(shù)據(jù)能支持多用戶共享, 允許多個遠端用戶對數(shù)據(jù)的并發(fā)操作, 利用分布式緩存加快了數(shù)據(jù)加載過程, 實現(xiàn)地震數(shù)據(jù)的快速可視化.

      云存儲架構(gòu)具有客戶端和云數(shù)據(jù)中心兩層緩存, 其中云數(shù)據(jù)中心由地震數(shù)據(jù)索引、 HDFS、 云端數(shù)據(jù)緩存、 ARLS(association rule last successor)訪問預(yù)測算法組成, 大規(guī)模地震數(shù)據(jù)被分布存儲在HDFS中, 任意地震數(shù)據(jù)中tile數(shù)據(jù)塊在HDFS中的存儲位置由地震數(shù)據(jù)索引維護, 便于云存儲系統(tǒng)快速定位到所需數(shù)據(jù)的存儲位置進行加載, ARLS訪問預(yù)測算法根據(jù)用戶的訪問模式預(yù)測用戶行為, 提前預(yù)取用戶所需的數(shù)據(jù), 云端數(shù)據(jù)緩存與客戶端緩存按照分布式緩存管理策略存儲近期經(jīng)常使用的數(shù)據(jù)塊, 減少數(shù)據(jù)通信及對文件系統(tǒng)的訪問頻率, 以支持大規(guī)模地震數(shù)據(jù)的快速可視化.

      1.2 大型地震數(shù)據(jù)快速三維可視化

      地震探測數(shù)據(jù)云存儲系統(tǒng)結(jié)合了地震數(shù)據(jù)索引[11-12]、 分布式文件系統(tǒng)HDFS、 訪問預(yù)測算法、 分布式緩存[13]、 Boost網(wǎng)絡(luò)通信等技術(shù), 整合了廣泛分布的存儲資源, 將大量豐富的大型地震數(shù)據(jù)資源放置在云存儲系統(tǒng)中進行統(tǒng)一管理和調(diào)度, 以低成本、 高可靠性地為用戶提供高性能、 按需的數(shù)據(jù)資源. 用戶無需關(guān)心云存儲的架構(gòu)和存儲方式, 可在任何地方快速訪問需要的地震數(shù)據(jù), 克服了集中存儲模式的不足, 實現(xiàn)了云端大型地震數(shù)據(jù)的快速三維可視化.

      云存儲系統(tǒng)不僅以八叉樹結(jié)構(gòu)對地震數(shù)據(jù)進行分塊處理, 還利用八叉樹對地震數(shù)據(jù)進行了多種分辨率的采樣, 以滿足用戶需求的多樣性. 當客戶端設(shè)備與云存儲系統(tǒng)建立初始連接時, 云存儲系統(tǒng)先為用戶返回所需數(shù)據(jù)的低分辨率采樣, 保證客戶端設(shè)備能快速顯示出可視化的地震數(shù)據(jù). 用戶之后會對低分辨率可視化結(jié)果進行操作, 如拖拽、 拉伸、 放大、 縮小等, 這就需要更高分辨率的數(shù)據(jù)來完成, 因此客戶端向服務(wù)器提出數(shù)據(jù)加載請求.

      服務(wù)器在等待客戶端數(shù)據(jù)請求的這段空閑時間內(nèi), 利用用戶的歷史訪問記錄, 通過ARLS訪問預(yù)測算法找出用戶下一步最可能訪問的數(shù)據(jù), 提前預(yù)取到云端數(shù)據(jù)緩存. 當接收到用戶的數(shù)據(jù)請求后, 先到云端數(shù)據(jù)緩存中進行查找, 如果數(shù)據(jù)已經(jīng)預(yù)取, 則可直接返回給用戶, 避免了用戶等待, 同時訪問預(yù)測模型會繼續(xù)預(yù)測下一步需要的數(shù)據(jù); 如果數(shù)據(jù)未預(yù)取到緩存中, 則需要根據(jù)地震數(shù)據(jù)索引獲得數(shù)據(jù)在集群中的位置, 將其加載到云端數(shù)據(jù)緩存中, 并返回給用戶, 訪問預(yù)測模型也會根據(jù)用戶的訪問實時進行調(diào)整, 以保證預(yù)測的準確率.

      服務(wù)器可以并行處理多用戶的數(shù)據(jù)請求, 并在服務(wù)器和客戶端建立了雙層數(shù)據(jù)緩存, 客戶端部分利用內(nèi)存作為高速緩存, 用于存儲近期可視化的數(shù)據(jù); 云端數(shù)據(jù)緩存則根據(jù)訪問預(yù)測模型的結(jié)果, 存儲未來熱點區(qū)域的數(shù)據(jù), 避免數(shù)據(jù)查找和讀寫持久化存儲設(shè)備, 加速了地震數(shù)據(jù)的可視化進程.

      1.3 API接口

      集中存儲地震數(shù)據(jù)的云數(shù)據(jù)中心需要提供一些API接口, 便于客戶端遠程連接到數(shù)據(jù)中心對文件進行相應(yīng)操作, 也為服務(wù)器檢索、 加載數(shù)據(jù)文件、 獲取訪問預(yù)測結(jié)果、 維護云端數(shù)據(jù)緩存提供工具, 其中對八叉樹結(jié)構(gòu)的索引記錄在.ldm文件中, 由SEG-Y轉(zhuǎn)換的tile數(shù)據(jù)存儲在.dat文件中, 二者共同構(gòu)成LDM文件供平臺加載數(shù)據(jù)使用. API接口功能列于表1.

      云數(shù)據(jù)中心為開發(fā)者提供了對云端數(shù)據(jù)緩存和并行文件系統(tǒng)操作的應(yīng)用接口, 直接對外提供了針對地震數(shù)據(jù)的數(shù)據(jù)服務(wù), 使開發(fā)者可遠程使用數(shù)據(jù)中心開放的地震數(shù)據(jù)構(gòu)建自己的獨立應(yīng)用, 進行地震數(shù)據(jù)的研究與分析工作, 研究數(shù)據(jù)不再僅局限于科研領(lǐng)域, 而是供各行業(yè)根據(jù)自身需要發(fā)掘其中蘊含的價值, 真正實現(xiàn)數(shù)據(jù)開放與共享.

      表1 API接口功能

      2 云端數(shù)據(jù)緩存

      2.1 數(shù)據(jù)組織與索引

      OpenProbe地學數(shù)據(jù)可視化平臺是一個具有自主知識產(chǎn)權(quán)的可視化平臺, 也是對本文緩存技術(shù)進行驗證的實驗平臺, 該平臺解決了數(shù)據(jù)規(guī)模過大與內(nèi)存容量有限的矛盾, 實現(xiàn)了內(nèi)存的動態(tài)加載機制, 能在集中模式下對數(shù)據(jù)進行快速可視化. OpenProbe平臺的OpenProbeLDM模塊為上層渲染模塊提供了面向大規(guī)模地震數(shù)據(jù)的數(shù)據(jù)訪問接口, 支持對勘探行業(yè)普遍使用的SEG-Y格式三維地震數(shù)據(jù)的快速可視化, 能將海量三維體數(shù)據(jù)以八叉樹的格式進行分層和分塊, 以獲得多分辨率數(shù)據(jù)塊, 在數(shù)據(jù)渲染過程中根據(jù)需要實時將所需數(shù)據(jù)塊加載到內(nèi)存中, 實現(xiàn)在有限的內(nèi)存條件下對大規(guī)模地震數(shù)據(jù)的實時渲染.

      八叉樹存儲結(jié)構(gòu)在對三維體數(shù)據(jù)進行劃分與存儲時, 將體數(shù)據(jù)放置在一個能容納它的最小滿八叉樹中, 根據(jù)體數(shù)據(jù)的規(guī)模計算八叉樹的層數(shù), 逐層對體數(shù)據(jù)進行八等分, 每個數(shù)據(jù)塊作為八叉樹結(jié)構(gòu)的一個節(jié)點, 稱為tile, 其中第(n-1)層的數(shù)據(jù)塊由第n層的數(shù)據(jù)塊采樣而形成, 據(jù)此形成上層的低分辨率數(shù)據(jù). 將三維體數(shù)據(jù)劃分而成的八叉樹結(jié)構(gòu)線性存儲在磁盤文件中, 對所有數(shù)據(jù)塊進行編碼, 使用tileID標識唯一的數(shù)據(jù)塊, 從而建立數(shù)據(jù)索引, 對三維體數(shù)據(jù)用八叉樹劃分過程如圖1所示.

      圖1 三維體數(shù)據(jù)的八叉樹存儲結(jié)構(gòu)Fig.1 Octree storage structure of three-dimensional data

      本文將遠程數(shù)據(jù)緩存技術(shù)應(yīng)用在OpenProbe平臺上, 使用八叉樹結(jié)構(gòu)對三維地震體數(shù)據(jù)進行數(shù)據(jù)索引, 利用云數(shù)據(jù)中心的API接口進行客戶端與云端系統(tǒng)的交互, 實現(xiàn)了以下目標:

      1) 構(gòu)建云數(shù)據(jù)中心集中存儲大規(guī)模地震數(shù)據(jù), 節(jié)約了客戶端的存儲資源;

      2) 建立遠端服務(wù)器數(shù)據(jù)緩存, 提出ARLS訪問預(yù)測算法, 提高了緩存命中率, 加速了數(shù)據(jù)加載過程;

      3) 建立客戶端的本地數(shù)據(jù)緩存, 減少網(wǎng)絡(luò)通信頻率, 使遠程數(shù)據(jù)加載的時間開銷接近本地數(shù)據(jù)加載;

      4) 節(jié)約客戶端設(shè)備的軟、 硬件資源, 在低消耗的前提下完成數(shù)據(jù)的快速可視化.

      2.2 ARLS訪問預(yù)測算法

      在地學數(shù)據(jù)可視化過程中, 人們通常在同一時間無法關(guān)注整個地震數(shù)據(jù), 而是僅關(guān)注某一特定區(qū)域, 該區(qū)域稱為“興趣區(qū)域”. 伴隨著對地震數(shù)據(jù)諸如拖拽、 放大、 縮小等操作, 興趣區(qū)域會隨之轉(zhuǎn)移, 導致對不同分塊文件的頻繁訪問, 在很多系統(tǒng)中, 這種數(shù)據(jù)訪問模式都被視為獨立事件. 事實上, 數(shù)據(jù)請求并非完全隨機, 而是用戶或程序行為驅(qū)動的, 存在特定的訪問模式[14]. 如果能對用戶的訪問模式進行預(yù)測, 將下一步要訪問的文件預(yù)取到服務(wù)器緩存中, 即可節(jié)省大量的文件檢索與讀取時間, 因此本文在服務(wù)器端根據(jù)用戶對地震數(shù)據(jù)訪問的歷史記錄運行文件訪問預(yù)測算法, 對用戶未來的訪問模式進行預(yù)測.

      圖2 用戶的不同訪問模式Fig.2 User’s different access modes

      對用戶訪問記錄進行分析表明, 由于不同時刻用戶對數(shù)據(jù)瀏覽的需求不同, 其對文件的訪問模式并不唯一. 如圖2所示, 用戶U1在初始加載低分辨率數(shù)據(jù)f0后會有兩種訪問模式: 當用戶需要仔細查看當前區(qū)域, 對當前區(qū)域進行放大時, 會需要該區(qū)域內(nèi)的高分辨率數(shù)據(jù)f1; 當用戶大致瀏覽整個地學數(shù)據(jù)時, 會快速移動可視區(qū)域, 需要剩余的低分辨率數(shù)據(jù)f3. 用戶有多種訪問需求時, 會形成多個訪問模式. 經(jīng)典的文件預(yù)測模型LS在面對這種情形時只能選擇一個后繼作為f0的預(yù)測結(jié)果, LS預(yù)測嚴重依賴于訪問順序, 面對用戶切換訪問模式時會失效.

      本文提出一種ARLS算法, 通過使用數(shù)據(jù)挖掘中常用的關(guān)聯(lián)規(guī)則, 挖掘文件訪問順序之間的聯(lián)系. 其中用戶的歷史訪問記錄為H, minsup為最小支持度, 最終預(yù)測結(jié)果存儲在STL關(guān)聯(lián)容器M中, 算法描述如下.

      算法1(ARLS) ARLS (H,minsup,M).

      遍歷歷史記錄H;

      產(chǎn)生單元素構(gòu)成的頻繁項集L1={large 1-items};

      根據(jù)L1生成二元項構(gòu)成的候選集C2;

      forall recordr∈Hdo begin

      選出出現(xiàn)在C2中的記錄r, 構(gòu)成集合Cr;

      forallc∈Crdo

      c.count++;

      end

      從C2中選出c.count≥最小支持度minsup的項構(gòu)成二元頻繁項集L2;

      end

      遍歷二元頻繁項集L2, 以第一個元素為key, 第二個元素為value生成訪問預(yù)測記錄, 存儲在關(guān)聯(lián)容器M中;

      end.

      最小支持度minsup由用戶確定, 最終L2保存了符合篩選條件的二元頻繁項集, 即為用戶最常用的訪問順序, 將結(jié)果以〈front, successor〉的鍵值對形式保存在關(guān)聯(lián)容器M中, 一個前驅(qū)文件可對應(yīng)多個后繼文件, 全面覆蓋用戶常用的訪問模式. 實驗證明, ARLS訪問預(yù)測算法的平均準確率達到91.3%, 能有效預(yù)測用戶的訪問行為.

      3 系統(tǒng)原型設(shè)計與實現(xiàn)

      3.1 云存儲系統(tǒng)

      地震探測數(shù)據(jù)云存儲系統(tǒng)借用OpenProbe項目實現(xiàn), 客戶端保留了OpenProbe的絕大多數(shù)功能, 但不再保存完整的地震數(shù)據(jù), 而是通過內(nèi)存緩存保存近期可視化區(qū)域用到的數(shù)據(jù). 首先將近期使用的數(shù)據(jù)存儲在內(nèi)存緩沖區(qū), 當內(nèi)存緩沖區(qū)容量不足時, 根據(jù)LRU替換策略將最近不常用的數(shù)據(jù)刪除, 以減少網(wǎng)絡(luò)通信開銷, 保證最近正在使用的數(shù)據(jù)文件一直存在于本地緩存中. 客戶端緩存的生命周期從數(shù)據(jù)可視化開始到會話結(jié)束為止, 對地震數(shù)據(jù)可視化結(jié)束后, 客戶端程序?qū)⒕彺娉刂械木彺鏀?shù)據(jù)清空, 始終保持客戶端的輕量級特性.

      服務(wù)器端則是一個全新的系統(tǒng)實現(xiàn), 僅保留了八叉樹的數(shù)據(jù)索引規(guī)則, 利用基于關(guān)聯(lián)規(guī)則的ARLS算法挖掘用戶歷史訪問記錄中的訪問模式, 在滿足當前用戶訪問請求的同時預(yù)測用戶下一時刻需要的數(shù)據(jù), 預(yù)取到云端緩存. 云端緩存是長期緩存, 如果客戶端請求的地震數(shù)據(jù)被訪問預(yù)測算法正確預(yù)測, 則數(shù)據(jù)文件會提前預(yù)取到緩存中, 服務(wù)器直接將數(shù)據(jù)文件發(fā)送給客戶端, 充分利用了服務(wù)器空閑等待的時間, 提高了數(shù)據(jù)獲取效率. 盡管訪問預(yù)測算法對用戶單獨建模, 但由于服務(wù)端的同一地震數(shù)據(jù)對多個客戶端是共享的, 因此在緩存時, 不同用戶對同一數(shù)據(jù)的預(yù)取存儲在一個緩存區(qū)中. 服務(wù)端的緩存長期存在, 可最大限度減少當某個用戶的訪問預(yù)測失敗時所需數(shù)據(jù)不在緩存中的情形出現(xiàn), 以滿足眾多客戶端的快速可視化.

      3.2 分布式緩存空間管理

      分布式緩存中的客戶端是短期緩存, 存儲的分塊文件大小均等, 因此數(shù)據(jù)文件在緩存中駐留時間僅與訪問頻率有關(guān), 使用LRU替換策略維護本地內(nèi)存緩存, 根據(jù)不同設(shè)備設(shè)置內(nèi)存緩存的最大閾值, 避免對設(shè)備運行產(chǎn)生過重負擔. 使用隊列記錄內(nèi)存緩存的數(shù)據(jù)標識, 當對某一數(shù)據(jù)文件進行訪問時將該標識重新放到隊尾, 緩沖隊列容量超過閾值后將隊首的數(shù)據(jù)文件移出當前緩沖區(qū), 并從客戶端刪除. 由于地震數(shù)據(jù)在使用過程中僅涉及到讀操作, 因此無需對其進行一致性維護.

      云端數(shù)據(jù)緩存是長期緩存, 為多個客戶端的不同數(shù)據(jù)請求提供服務(wù), 需要存儲多個地震數(shù)據(jù)不同規(guī)模的分塊文件, 因此數(shù)據(jù)文件在緩存區(qū)駐留的時間由訪問頻率和文件大小共同決定, 對每個數(shù)據(jù)文件計算一個稱為使用度的值M, 該值與客戶端訪問數(shù)據(jù)文件的頻率F及數(shù)據(jù)文件占服務(wù)端緩存區(qū)的百分數(shù)S有關(guān), 可將M表示為:M=Fa1×Sa2, 其中指數(shù)a1和a2均為大于0的整數(shù), 由服務(wù)端管理員指定, 決定訪問頻率F與容量占用S之間的相對重要性, 當服務(wù)端緩存容量不足時, 替換出M值最小的數(shù)據(jù)文件.

      3.3 數(shù)據(jù)分發(fā)與傳輸

      分布式緩存機制避免了數(shù)據(jù)反復的讀入、 取出, 減少了I/O開銷, 客戶端的短期緩存保證使用頻率高的數(shù)據(jù)存儲在本地, 減少了網(wǎng)絡(luò)通信次數(shù), 當數(shù)據(jù)可視化所需的數(shù)據(jù)不在本地時, 與云數(shù)據(jù)中心建立連接, 進行網(wǎng)絡(luò)通信, 因此需要構(gòu)建相應(yīng)的數(shù)據(jù)通路.

      圖3 數(shù)據(jù)加載流程Fig.3 Data loading process

      客戶端在提出數(shù)據(jù)加載請求時, 根據(jù)tileID找到對應(yīng)的.dat文件標號fileID, 查找本地文件記錄判斷是否需要遠程數(shù)據(jù)加載, 如果需要則構(gòu)造通信消息, 攜帶如fileID、 文件路徑、 tileID和tile數(shù)據(jù)的偏移量等信息發(fā)送到云數(shù)據(jù)中心, 服務(wù)器返回tile所在的整個文件到客戶端形成數(shù)據(jù)緩存, 數(shù)據(jù)加載流程如圖3所示.

      在數(shù)據(jù)通信過程中, 需要傳遞消息和數(shù)據(jù)文件對象, 因此需要對數(shù)據(jù)對象進行數(shù)據(jù)序列化, 轉(zhuǎn)換成二進制字節(jié)流在網(wǎng)絡(luò)上傳輸. 服務(wù)器與客戶端傳輸?shù)臄?shù)據(jù)文件規(guī)模超出了Socket對傳輸數(shù)據(jù)量的限制, 需要實現(xiàn)分包等操作. 基于以上兩點原因, 本文使用Boost作為函數(shù)庫, 其中的Serialization在數(shù)據(jù)序列化方面不需要其他中介文件(如XML等)提供序列化支持, 支持對用戶自定義類的對象和STL容器對象進行序列化; Asio對Berkeley Socket APIS進行了封裝, 提供了網(wǎng)絡(luò)編程常用的操作系統(tǒng)接口, 使得底層的數(shù)據(jù)分包等操作對程序員不可見, 因而無需考慮傳輸數(shù)據(jù)量的限制, 極大簡化了數(shù)據(jù)通信流程, 提高了網(wǎng)絡(luò)傳輸效率.

      4 實驗結(jié)果

      4.1 實驗環(huán)境

      云存儲系統(tǒng): 吉林大學高性能計算中心節(jié)點. 中科曙光A620r-G機架式服務(wù)器, 配置如下: 2×AMD Opteron 6386 SE(16核, 2.8 GHz, 16 MB L3級Cache); 64 GB(16×4 GB)DDR3 1 600 MHz內(nèi)存; 9×500 GB SATA2.5″硬盤; Linux 操作系統(tǒng): Redhat Enterprise Linux 5.5, 64 bit.

      客戶端: ThinkStation C30工作站, 2×Intel Xeon E5-2620(6核, 2.0 GHz, 15 MB L3級Cache); 4 GB(2×2 GB)DDR3, 1 600 MHz內(nèi)存; 1 TB SATA Ⅲ3.5″硬盤; Windows操作系統(tǒng): Windows10 Professional 64 bit.

      網(wǎng)絡(luò)帶寬: 100 M以太網(wǎng), 平均傳輸速率15 MB/s. 應(yīng)用軟件: OpenProbe V1.0. 測試用例: 107 MB, 770 MB, 2.15 GB.

      4.2 地震數(shù)據(jù)可視化效果

      OpenProbe平臺在數(shù)據(jù)可視化過程中最重要的環(huán)節(jié)是數(shù)據(jù)加載, 本文首先測試平臺在云存儲結(jié)構(gòu)中加載不同規(guī)模數(shù)據(jù)的效果, 如圖4所示, 其中: (A)為107 MB數(shù)據(jù); (B)為770 MB數(shù)據(jù); (C)為2.15 GB數(shù)據(jù); 緩存規(guī)模為32 MB, 用于模擬實際環(huán)境中地震數(shù)據(jù)規(guī)模與緩存規(guī)模相差數(shù)倍的情形. 測試結(jié)果表明, 對于不同規(guī)模的數(shù)據(jù), 客戶端能從云數(shù)據(jù)中心加載到本地獲得良好的可視化效果.

      圖4 地震數(shù)據(jù)可視化效果Fig.4 Visualization effect of seismic data

      4.3 ARLS訪問預(yù)測算法準確率分析

      本文提出了基于分布式緩存和ARLS訪問預(yù)測算法的分布式地震數(shù)據(jù)可視化平臺, 其中ARLS訪問預(yù)測算法能預(yù)測用戶未來所需的數(shù)據(jù)文件, 利用服務(wù)器空閑時間預(yù)取數(shù)據(jù)到云端緩存, 通過提高云端緩存的命中率進一步節(jié)省服務(wù)器與云存儲之間的文件檢索和加載耗時. 圖5為ARLS訪問預(yù)測算法的準確率, 選取地震數(shù)據(jù)訪問記錄中的100條用于訓練集, 25條用于驗證算法準確率, 對測試用例在不同緩存規(guī)模(32 MB,64 MB,128 MB)下進行實驗(實際環(huán)境可根據(jù)地震數(shù)據(jù)大小增大緩存容量). 由圖5可見, 當?shù)卣饠?shù)據(jù)被劃分為約20個緩存文件時, 本文所用的預(yù)測算法能獲得82%以上的準確率, 當緩存文件個數(shù)增至30個以上時(A點), 準確率只有47.59%, 但將歷史記錄增加為200條后, 準確率會增至75%. 因此訪問預(yù)測算法需要獲得大量的、 多樣的歷史數(shù)據(jù)進行訓練, 并需要與緩存管理系統(tǒng)協(xié)調(diào), 根據(jù)地震數(shù)據(jù)規(guī)模合理劃分緩存文件大小, 在保證準確率的同時, 確保頻繁訪問的緩存文件會長時間駐留在緩存區(qū). 根據(jù)數(shù)據(jù)加載時間可知, 即使在A點情形下(準確率47.59%, 緩存規(guī)模32 MB, 文件68個), 也可節(jié)省文件加載時間為194 s, 鑒于云端會面臨多種地震數(shù)據(jù)的并發(fā)訪問, 本文提出的ARLS訪問預(yù)測算法能有效利用服務(wù)器空閑時間, 避免了文件系統(tǒng)導致的延遲.

      4.4 不同訪問預(yù)測算法比較

      圖6為對經(jīng)典LS訪問預(yù)測算法、 LNS算法[9]、 DLS算法[10]與本文ARLS算法在不同數(shù)據(jù)規(guī)模下的平均訪問預(yù)測準確率的比較結(jié)果. 隨著地震數(shù)據(jù)規(guī)模增大, 劃分的數(shù)據(jù)文件個數(shù)也增多, 用戶越有可能出現(xiàn)多樣的訪問模式. 測試結(jié)果表明, 本文提出的ARLS算法能適應(yīng)不同規(guī)模的數(shù)據(jù)訪問, 相對LS訪問預(yù)測算法77%的平均準確率, ARLS算法的平均準確率達到91.3%, 能適應(yīng)用戶擁有多種訪問模式的情形.

      圖5 ARLS訪問預(yù)測算法準確率Fig.5 Accuracy of ARLS access prediction algorithm

      圖6 不同訪問預(yù)測算法比較Fig.6 Comparison of different access prediction algorithms

      4.5 云端緩存命中率分析

      圖7為對本地緩存需要的數(shù)據(jù)能否在云端緩存命中進行分析的結(jié)果, 將3種示例數(shù)據(jù)分別在緩存規(guī)模為32 MB, 64 MB和128 MB情形下進行實驗. ARLS訪問預(yù)測算法通過數(shù)據(jù)預(yù)取的方法, 能夠提高云端緩存命中率, 使用戶的數(shù)據(jù)請求立刻被服務(wù)器響應(yīng), 降低了用戶的訪問延遲. 由于云端緩存存儲了多個用戶對于同一數(shù)據(jù)文件的預(yù)測結(jié)果, 因此可有效降低緩存未命中與ARLS訪問預(yù)測失敗同時出現(xiàn)的概率. 由實驗結(jié)果可見, 云端緩存命中率在最差情形下也達到了69.1%, 平均緩存命中率達95.61%, 大幅度提高了遠程數(shù)據(jù)的加載效率.

      4.6 平臺整體性能分析

      為分析分布式緩存和ARLS訪問預(yù)測算法對地學數(shù)據(jù)可視化平臺整體性能的提升效果, 分別使用LS,LNS,DLS算法的C/S架構(gòu)作對比研究, 結(jié)果如圖8所示. 由于分布式緩存和云端ARLS訪問預(yù)測算法的實現(xiàn), 平臺性能較對比架構(gòu)大幅度提升, 尤其對大規(guī)模地震數(shù)據(jù)進行可視化的過程中, 地學用戶能在可容忍的數(shù)據(jù)加載時間內(nèi)(可視化過程的平均延遲, 橫線標識為120 s, 實際使用過程中統(tǒng)計的經(jīng)驗值)獲得理想的可視化效果, 并大幅度減少了本地存儲資源的占用. 由實驗結(jié)果可知, 基于云存儲的地學數(shù)據(jù)可視化平臺整體性能較其他平臺架構(gòu)提高了70%, 實現(xiàn)了云端地震數(shù)據(jù)在客戶端的快速可視化.

      圖7 云端緩存命中率分析結(jié)果Fig.7 Analysis results of cloud cache hit rate

      圖8 平臺整體性能分析Fig.8 Analysis of overall performance of platform

      綜上所述, 本文提出的分布式數(shù)據(jù)緩存技術(shù)實現(xiàn)了地學數(shù)據(jù)可視化平臺地震數(shù)據(jù)存儲與數(shù)據(jù)可視化的分離, 將大規(guī)模地震數(shù)據(jù)集中存儲在云數(shù)據(jù)中心, 以可容忍的網(wǎng)絡(luò)通信開銷為代價極大減少了客戶端的物理資源消耗. 基于Boost實現(xiàn)的數(shù)據(jù)通路優(yōu)化了網(wǎng)絡(luò)傳輸效率, ARLS訪問預(yù)測算法的平均準確率達91.3%, 充分利用了可視化過程中服務(wù)器的空閑時間, 使云端緩存命中率平均達95.61%. 服務(wù)端緩存與客戶端緩存提高了數(shù)據(jù)加載效率, 使地學數(shù)據(jù)可視化平臺整體性能大幅度提高, 用戶可在有限的數(shù)據(jù)加載時間內(nèi)獲得更好的地震數(shù)據(jù)可視化效果, 能有效支持對遠程地震數(shù)據(jù)的快速可視化.

      猜你喜歡
      數(shù)據(jù)文件云端客戶端
      云端之城
      縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      數(shù)據(jù)文件恢復專題問答
      數(shù)據(jù)文件安全管控技術(shù)的研究與實現(xiàn)
      SQL數(shù)據(jù)文件恢復工具
      美人如畫隔云端
      行走在云端
      初中生(2017年3期)2017-02-21 09:17:43
      云端創(chuàng)意
      武隆县| 揭西县| 阿城市| 满洲里市| 西充县| 南部县| 庐江县| 德格县| 法库县| 古丈县| 苗栗县| 澎湖县| 甘南县| 颍上县| 焦作市| 伊宁县| 特克斯县| 礼泉县| 平塘县| 株洲市| 砚山县| 靖西县| 昭通市| 吴忠市| 湖北省| 清水县| 平远县| 巴中市| 错那县| 万年县| 左权县| 景宁| 桦川县| 商洛市| 剑河县| 蒙阴县| 遂宁市| 哈尔滨市| 鄄城县| 静乐县| 莱阳市|