999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數字圖書館數據存儲系統性能優化

2015-10-15 05:05:40
科技傳播 2015年2期
關鍵詞:圖書館

宋 凱

中國傳媒大學文科科研處,北京 100024

0 引言

現代化高校的數字圖書館改變傳統的紙質媒體的信息查看和傳播方式而借助于網絡信息技術,傳播各種以數字多媒體為存儲單位的知識、文獻信息,電子文獻資源、教師課件、課程視頻等。數字圖書館是用數字技術處理和存儲各種圖文并茂文獻的圖書館,實質上是一基于種多媒體的信息分享系統。通過數字圖書館所提供的搜索功能,提高了讀者檢索資源的效率;同時,通過數字圖書館提供的web端、移動端等相關應用平臺極大的提高了讀者的訪問便利度。數字圖書館需要大量的磁、光、電等新型存儲媒介來存儲文本、圖像、聲音、動畫、影視作品等文獻信息資源的數字化信息[1]。海量數據信息的存儲和管理是數字圖書館的顯著特征之一。數字圖書館數據信息資源的種類、數量、性質及其使用方式等均對讀者訪問的性能、資源的傳輸速度、可靠性等方面起著決定性的作用。數字圖書館具有系統用戶數量龐大,并發存取海量數據及業務類型多的特點。

數字圖書館的數據信息種類繁多,形式復雜多樣,數據的重要性程度不一,數據訪問方式各異,因而不同的數據類型則對讀寫性能等方面有不同的要求[1]。大文件的順序讀寫,如視頻數據等多媒體資源,讀寫數據量很大,要求數據存儲吞吐量性能高。小文件隨機讀,如數字期刊、數字圖書等,資源訪問頻率很高,下載流量也比較大,對存儲系統的IOPS要求很高。因此如何在復雜的數據環境中提升存儲系統的I/O性能以滿足數字圖書館各種數據訪問的要求是一個急需要解決的問題。

因此,針對上述問題本文提出一種適用于數字圖書館應用環境的存儲系統性能優化方法KVCache,其基本原理為將最近訪問的文件保持在由高速非易失性存儲介質組成的緩存層中,下次訪問相同的文件數據時則不需要再訪問低速的磁盤,直接從緩存層中得到,以獲得較高的 I/O 性能。該優化方法的特點主要包含以下方面:

1)采用非易失性高速存儲設備,例如SSD,作為存儲系統的緩存層存儲介質,充分保障數據在各種應用環境下的性能[8]。

2)采用Key-Value技術實現了緩存的持久化存儲,提升了存儲系統的訪問性能。

3)利用多級存儲下的兩段更新事務原子性管理,在提升存儲系統I/O性能的前提下,保證多級存儲數據一致性和可靠性。

1 相關研究

目前緩存對于緩存的研究主要集中在通用塊層。

FlashCache是Linux內核中的一種磁盤緩存實現模塊,于2010年由Facebook公司開發,FlashCache的具體實現,將請求IO以一定的哈希映射關系同時映射到閃存設備和磁盤設備中。并在讀寫路徑中,先請求閃存設備,再請求磁盤設備,從而實現了使用閃存設備對傳統磁盤進行緩存的設計。磁盤與閃存之間的映射,FlashCache使用了對磁盤以及閃存邏輯上進行條帶化,哈希映射的方式完成[5]。

BCache作為同樣實現在Linux內核中的一種磁盤緩存實現,其則是基于通用塊層實現的,與FlashCache不同,其實現與IO調度層之上,可以使用更少的設備來緩存整個存儲子系統的數據。同時,由于其實現于通用塊層,BCache可以有效利用閃存設備對隨機IO讀寫的優異性能,將隨機IO組合為順序IO再寫入傳統磁盤中,大大增加了磁盤的讀寫能力。

塊存儲方案用于實現持久化緩存,可以將緩存模型簡化,也是傳統緩存模型常用的解決方案。使用塊存儲接口調用持久化緩存設備,可以將設備直接與內存中的緩存塊相映射,從而快速索引持久化設備中的緩存數據。然而此方式的缺點是,由于塊存儲方案存儲流程非常簡單,通過對內核的系統調用實現數據的存取,如果在寫入過程中阻塞等待內核塊接口的完成回調則損失了緩存性能,而如果不阻塞等待則無法達到第一階段寫事務的原子性和可靠性要求[2]。

而基于Key-Value的方式則很好地解決了塊存儲方案的缺點。Key-Value的方式可以很好地完成內存與磁盤設備的映射過程,因而邏輯視圖上對于持久化緩存項和內存緩存項的映射規則簡單,模型類似塊存儲緩存方案;而對于更新操作的一致性和可靠性以及性能特點,又可以超越塊存儲緩存方案。

2 KVCache的實現

KVCache的實現主要包括:key-Value原子更新策略、緩存數據分布與置換策略。

當更新I/O請求到達時,需要將I/O請求通過分割成多個細顆粒度的對象請求,并且為每個對象請求將創建一個更新事務,如圖1所示。

第一階段的寫事務將對象請求更新提交到保存在內存中的緩存目錄,并同時提交到內存緩存。完成對內存緩存的更新后,又將根據更新的緩存目錄,將緩存寫入到持久化緩存設備中。

第二階段的寫事物則是待Flush線程達到某個預設值時,將本地緩存寫回到后端存儲設備中。為了保證第二階段寫事務的可靠性和一致性,需要在第一階段寫事務完成后,以日志形式將該事務記錄在持久化緩存中,并在第二階段寫事務完成后將該日志刪除。

2.1 key-Value原子更新

KVCache中使用LevelDB作為持久化緩存接口,將對象緩存數據合并成可以并行讀寫,快速索引的磁盤數據因而本文選擇使用鍵值對存儲方案LevelDB來完成系統對數據的持久化緩存[4]。

LevelDB是一個開源的鍵值對存儲方案,其使用LSM樹對數據進行存儲,并利用內存暫存區設計優化了寫性能,通過將內存中數據和持久化后數據進行多級存儲,簡化了索引對內存產生的開銷。同時,由于LevelDB本身的鍵值對語義與內存緩存使用的map語義十分契合,減少了存儲接口轉換帶來的開銷。

圖2為KVCache對于更新請求結合LevelDB所進行的數據流圖。為了提高數據寫入性能,LevelDB對緩存持久化的操作其實是一個異步事務。也就是圖中看到當寫操作寫入LevelDB的memtable中后,并不是立刻會被寫入LevelDB SSTable。LevelDB 會將多個更新操作進行合并和等待到某預設值到達,才將數據寫入imm_memtable,并分級存儲到SSTable中。但是由于LevelDB本身的事務原子性管理,系統可以完全假設當數據寫入LevelDB的memtable時,即完成了對持久化緩存的寫入事務,因而系統可以向系統提交緩存更新成功響應。

圖2 單節點多級緩存更新事務處理流程

本文設計了緩存目錄,用于記錄與管理所有的緩存數據。緩存目錄只用于記錄緩存的最新版本號,本地版本號,后端版本號以及所在位置。緩存目錄主要結構如表1所示。

通過版本號記錄更新事務的狀態以及是否可提供讀操作。寫請求映射到緩存目錄后,最新緩存版本號(version)首先被更新,從而表明該緩存有更新的數據將存入,而其余本地版本號(lversion)以及后端版本號(bversion)不同則標記了該寫事務并未完成,如圖3所示。由于KVCache基于內存緩存與持久化緩存進行兩級緩存,所以當寫事務已成功提交給內存緩存與持久化緩存時,第一階段寫事務已完成。對于后端的寫提交為一個新的寫事務,通過異步寫操作執行。當提交給后端的寫操作完成后,緩存目錄的后端版本號更新至提交該操作時的最新緩存版本號。緩存更新事件在任一狀態時失敗,則可以通過緩存目錄有效回滾回上一個狀態點,且重新執行該寫事務,保證了更新事務的原子性。

圖3 緩存目錄項狀態轉換

2.2 數據分布與置換策略

由于緩存設備的空間有限,且內存存儲空間遠小于持久化設備的緩存空間,當緩存空間不足時的換出策略則變成多級緩存的另一個重要問題。KVCache中內存緩存與持久化緩存之間采用直寫策略。持久化緩存到后端采用寫回策略。

KVCache使用LRU(Latest Recent Update)替換算法來完成在緩存空間不足時的剔除管理。

由于目錄緩存記錄了所有在緩存中的數據,因而系統在對象緩存數據被內存緩存LRU換出后,并不需要因此對緩存目錄進行修改;而當持久化緩存設備空間不足時,系統則需要修改緩存目錄。

KVCache通過LRU類來記錄存儲在內存緩存中的所有對象緩存項指針以及保存在緩存目錄中的所有指針。LRU類以被更新時間作為視圖,記錄被定義為LRU對象的指針列表。通過該方式,只需要在每次更新內存緩存與更新緩存目錄時,通過將LRU指針列表中該項提到列表頂部,則在空間不足時,只需要將LRU對象底部指針指向的數據在緩存中刪除則完成了系統的緩存替換算法。

2.3 實驗與評估

實驗環境基于SAN的架構,存儲設備中采用8GB的內存,使用40GB的SSD作為KVCache的持久化緩存[3][6][7]。SAN與應用服務器采用1Gb以太網進行互聯。測試模擬在數字圖書館的應用環境下的流媒體文件的順序讀寫和小文件的隨機讀寫為主的數據訪問方式。

讀寫性能對比測試見圖4。

實驗結果表明,在使用了KVCache的存儲系統中,所有壓力測試節點的順序讀帶寬總和為111MB/s,順序寫帶寬為113MB/s,基本接近千兆網卡傳輸上限。

小文件的隨機讀寫模擬測試通過二組數據完成:(a) 沒有加入緩存系統隨機讀寫測試。(b) 使用300G空間進行持久化緩存隨機讀寫測試。(c) 使用16G內存空間進行緩存隨機讀寫測試。

圖4 順序讀寫帶寬

圖5 隨機寫性能比較

圖5為模擬隨機小文件寫性能測試結果。橫坐標為不同的客戶節點,縱坐標為每一個VM使用IOSTAT獲取到的IOPS。通過對于總的IOPS計算發現,內存緩存與SSD緩存得到了幾乎相同的IOPS數。由于使用內存作為緩存的過程中,系統內存空間上限為16G,所以僅使用10G內存空間作為緩存。而系統的持久化緩存策略與內存緩存策略均使用寫回方式,因而內存緩存和持久化緩存獲得了幾乎相同的每秒吞吐量。同時可以看出由于KVCache使用了高速SSD進行緩存,I/O請求在一定范圍內均在SSD中命中,因而全面提升隨機I/O的性能,可以看到其擁有幾乎僅使用HDD作為后端9倍的吞吐量。

圖6 隨機讀性能比較

如圖6模擬隨機小文件讀性能上,KVCache使用SSD作為持久化緩存后的性能優勢更明顯。實驗結果可見,由于KVCache使用SSD作為緩存,并且采用Keyvalue的方式進行緩存數據的更新,使得其隨機讀總帶寬達到26.11MB/s,其讀寫性能基本上達到了內存讀的性能。

3 結論

針對高校數字圖書館的多樣化數據訪問的應用環境,提出了適用于數字圖書館應用環境的存儲系統性能優化方法KVCache,包括key-Value原子更新策略和數據分布與置換策略等內容。KVCache利用SSD閃存設備和key-Value技術實現緩存數據的緩存持久化存儲,并且利用多級存儲下的兩段更新事務原子性管理,保證多級存儲數據一致性和可靠性。

通過模擬實驗表明KVCache有效的增加了存儲系統中的數據在順序讀寫、隨機讀寫下的性能,并且使其隨機讀寫性能接近本地內存讀寫性能。

[1]黎春蘭,鄧仲華.信息資源視角下云計算面臨的挑戰[J].圖書與情報,2011(3):23-28.

[2]Fred Douglis and John K. Ousterhout. Beating the I/O bottleneck: A case for logstructured files systems. Technical Report UCB/CSD 88/467, Universityof California, Berkeley, October 1988.

[3]Howard Gobioff, Garth Gibson, and Doug Tygar. Security for network attached storage devices.Technical Report TR CMU-CS-97-185, Carniege Mellon,October 1997.

[4]LevelDB. leveldb: A fast and lightweight key/value database library by Google.

[5]Alex Robson. Consistent Hashing. http://sharplearningcurve.com/blog/2010/09/27/consistenthashing/,September 2010.

[6]T. Clark.Designing Storage Area Networks: A Practical Reference for Implementing Fibre Channel and IP SANS (Second Edition). Addison-Wesley Networking Basics Series, 2003.

[7]D. Nagle, G. Ganger, J. Butler, et al.Network Support for Network-Attached Storage. In:Proceedings of Hot Interconnects. 18-20, 1999.

[8]Kim Y, Gupta A, Urgaonkar B, et al.Hybridstore: A cost-efficient, high-performance storage system combining SSDs and HDDs[C]//Modeling,Analysis & Simulation of Computer and Telecommunication Systems (MASCOTS), 2011 IEEE 19th International Symposium on. IEEE, 227-236. 2011.

猜你喜歡
圖書館
去圖書館坐坐
發明與創新(2021年6期)2021-03-10 07:13:54
圖書館
圖書館里送流年
圖書館
文苑(2019年20期)2019-11-16 08:52:12
夜間的圖書館
幽默大師(2019年5期)2019-05-14 05:39:38
圖書館里的小驚喜
圖書館 Library
幼兒畫刊(2018年11期)2018-12-03 05:11:44
時間重疊的圖書館
文苑(2018年17期)2018-11-09 01:29:40
圖書館
小太陽畫報(2018年1期)2018-05-14 17:19:25
飛躍圖書館
主站蜘蛛池模板: 国产精品尤物铁牛tv| 欧美激情伊人| 欧美国产综合色视频| 天天综合亚洲| 国产福利在线观看精品| 国产精品99r8在线观看| 国产极品美女在线| 亚洲精品福利视频| 亚洲综合一区国产精品| 久久精品最新免费国产成人| 国产亚洲精品无码专| 国产91视频免费观看| 激情综合网址| 国产丝袜丝视频在线观看| 超碰免费91| 国产综合网站| AV不卡无码免费一区二区三区| 成人91在线| 日韩精品成人网页视频在线| 成人福利在线免费观看| 影音先锋亚洲无码| 波多野结衣无码视频在线观看| 99热国产在线精品99| 欧美成a人片在线观看| 亚洲热线99精品视频| 福利片91| v天堂中文在线| 五月婷婷激情四射| 极品国产在线| 国产第一页亚洲| av在线5g无码天天| 手机在线看片不卡中文字幕| 亚洲国产欧洲精品路线久久| 99精品这里只有精品高清视频| 欧美亚洲国产一区| 国产白浆在线| 亚洲高清中文字幕| 永久免费无码日韩视频| 精品少妇人妻av无码久久| 伊人成人在线| 中文字幕永久在线看| 一级看片免费视频| 国产精品亚洲天堂| 久久久精品国产SM调教网站| 久久久成年黄色视频| 久久人搡人人玩人妻精品一| 国产成人免费| 亚洲动漫h| 9啪在线视频| 亚洲综合精品第一页| 一本大道香蕉久中文在线播放| 欧美午夜精品| 欧美日韩高清在线| 亚洲第一国产综合| 婷婷六月综合网| 国产欧美日韩va另类在线播放| 亚洲成人网在线观看| 免费高清自慰一区二区三区| 欧美精品三级在线| 免费看美女毛片| 免费国产福利| 天天综合色天天综合网| 色哟哟精品无码网站在线播放视频| 丁香五月婷婷激情基地| 人妻无码中文字幕第一区| 这里只有精品在线| 免费国产黄线在线观看| 国产国语一级毛片| 很黄的网站在线观看| 全色黄大色大片免费久久老太| 亚洲男人天堂2020| 亚洲性视频网站| 操国产美女| 在线中文字幕日韩| 婷婷在线网站| 美女被操黄色视频网站| 久久香蕉国产线看观看精品蕉| 国产成人综合网| 啪啪免费视频一区二区| 97国产精品视频自在拍| 国产成人综合网| 精品撒尿视频一区二区三区|