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

基于非易失存儲器的事務存儲系統綜述

2016-07-31 23:32:23汪東升
計算機研究與發展 2016年2期
關鍵詞:數據庫設備

石 偉 汪東升,2

1(清華大學計算機科學與技術系 北京 100084)2(清華信息科學與技術國家實驗室(籌) 北京 100084)(shiwei09@mails.tsinghua.edu.cn)

基于非易失存儲器的事務存儲系統綜述

石 偉1汪東升1,2

1(清華大學計算機科學與技術系 北京 100084)2(清華信息科學與技術國家實驗室(籌) 北京 100084)(shiwei09@mails.tsinghua.edu.cn)

隨著非易失存儲器的出現和廣泛使用,存儲體系結構正在發生根本改變.傳統數據庫系統與文件系統事務處理技術大多基于磁盤設備,設計之初并未考慮非易失存儲器特性.為了充分利用非易失存儲器特性,縮小計算機系統的I?O性能與CPU處理性能之間的差距,基于非易失存儲器的事務存儲系統與技術成為了研究熱點.首先討論了軟件層事務處理技術的現狀,分別介紹了傳統數據庫系統與文件系統事務處理常用技術;然后依據閃存和相變內存進行劃分,對現有基于非易失存儲器的事務存儲系統與技術進行了討論;最后給出了基于非易失存儲器的事務存儲系統研究展望.在基于閃存的事務存儲相關研究中,首先分析了使用傳統設備接口閃存設備加速事務處理的系統設計,然后重點分析了基于專用事務接口的事務閃存存儲系統研究,并對基于閃存的事務存儲系統不同研究進行了比較.在基于相變內存的事務存儲相關研究中,分別分析并比較了相變內存在主存環境和外存環境提供事務處理的技術,重點討論了日志與緩存融合技術、細粒度日志技術等關鍵問題.

非易失性存儲器;閃存;相變存儲器;事務處理;事務存儲系統;I?O棧

Fig.1 Current states of development of RRAM,MRAM and PCM[21].圖1 RRAM,MRAM,PCM目前發展狀態

事務作為一個抽象概念,最早在數據庫領域中被提出[1-3],表示具有原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability),也即ACID特性的一組數據庫操作.這一抽象概念主要用于保證數據庫正常工作時對共享存儲資源的隔離性以及異常崩潰后的數據正確性.為了在系統或進程崩潰等異常情況下保證事務特性,Mohan等人[4]提出了ARIES算法,使用了寫前日志(write-ahead logging,WAL)方法將數據寫入數據庫.文件系統相比數據庫系統對事務的概念進行了簡化,只保證異常情況發生后恢復數據的一致性,采用的技術一般包括日志(journaling)[56]、影子頁(shadow paging)[7]以及軟更新(soft update)[8]技術.此外,事務概念也被擴展到計算機體系結構和編譯領域以解決多核共享內存體系結構下并行程序內存訪問隔離性等問題[9-10].

數據庫系統和文件系統中的事務處理技術經過不斷的發展,出現了很多在特定場景下的高效事務機制保證算法;另一方面,由于底層存儲介質從磁帶、軟盤到磁盤的不斷發展,事務處理技術也不斷地被改進以適應底層存儲設備的變化.

近年來,隨著以閃存為主的非易失存儲器(nonvolatile memory,NVM)芯片存儲密度的提升與價格的下降,具有不同設備接口、基于非易失性存儲器的高性能存儲設備層出不窮.除了已經量產的閃存之外,目前即將投入量產以及仍處于實驗階段的新型非易失存儲介質還包括相變存儲器(phase change memory,PCM)[1115]、阻變存儲器(resistive RAM,RRAM或ReRAM)[16-18]及磁存儲器(magnetic RAM,MRAM)[19-20]等.圖1是研究機構Gartner在2013年半導體與電子研究報告中給出的幾種新型非易失存儲器目前的發展狀態.從圖1可以看出,相變存儲器目前即將量產,但阻變存儲器和磁存儲器根據其調研距離實用化還有大約5~10年的時間.這些非易失存儲器正在從根本上改變由磁介質構成的傳統存儲體系結構,并進一步縮小計算機系統的I?O性能與CPU處理性能之間的差距.本文中討論的非易失存儲器主要包括目前已經量產并被廣泛使用的閃存存儲器以及即將量產的相變存儲器.

對于包括閃存和相變內存在內的非易失存儲介質,其自身存儲特性以及構成存儲設備后內部工作機制與傳統存儲設備存在本質差異.例如閃存具有異地更新(out-of-place update)特性、相變內存具有字節尋址(byte-addressed)特性,而現有的數據庫系統與文件系統事務處理技術大部分基于磁盤設備進行設計,并沒有充分利用這些特性,這導致現有的軟件層事務處理技術運行在非易失存儲設備上時會造成重復設計、性能較低以及寫放大(write amplification)等問題.

本文首先對傳統軟件層事務處理技術進行了介紹;接著,依據已被廣泛使用的閃存和即將量產的相變內存進行劃分,對基于新型非易失存儲器的事務存儲系統與技術相關研究進行了討論;最后給出了非易失存儲器在事務存儲系統中應用的研究展望.

1 軟件層事務處理技術現狀

軟件層事務處理技術一直是研究的熱點,由于這類技術應用在系統I?O棧的不同層,其技術細節不盡相同,按照應用場景的不同可以分為數據庫系統事務處理技術以及文件系統事務處理技術.其中,文件系統事務處理技術一般只保證一致性和持久性,對原子性和隔離性不做強制要求.

1.1 數據庫系統事務處理技術

1.1.1 ARIES

在傳統的關系型數據庫中,一個數據庫事務通常包含若干條SQL語句,這些SQL語句經過數據庫邏輯層的翻譯之后,表現為對底層大量數據塊的讀取和寫入操作.事務處理技術正是保證這些底層塊設備數據塊的變化,要么全部體現在數據庫中,要么由于事務被中止(abort)或回滾(rollback)而在數據庫中沒有體現,而不存在只修改了部分數據塊的中間狀態.通常,數據庫中的事務處理機制由存儲引擎負責.

數據庫存儲引擎正常運行時,為上層提供事務支持并不困難.但是,當數據庫系統崩潰甚至主機斷電時,由于系統緩存甚至磁盤緩沖區中的數據丟失,底層存儲設備上的數據信息在崩潰后的狀態并不確定.要保證系統崩潰后恢復的數據仍然滿足事務的ACID特性,需要在系統崩潰后數據恢復時進行大量的額外工作.

IBM的研究人員Mohan等人[4]提出了ARIES(algorithm for recovery and isolation exploiting semantics)恢復算法,用以在異常情況保證數據庫的事務機制.ARIES使用單獨劃分的一塊磁盤區域作為日志區域,在將數據寫入到數據庫之前,首先將新數據以及舊數據一并寫入到日志區域中,并使用事務標識加上標簽.當日志區域大小達到某一閾值或每隔一定時間后,日志區域中的數據塊被刷入到數據庫中并設置檢查點(checkpoint),檢查點信息中包含當前系統中運行的事務狀態.

如圖2所示,當系統異常崩潰后,恢復分3步進行:分析(analysis)、重做(redo)和撤銷(undo).首先對檢查點后的日志區域進行分析,結合檢查點信息,得到系統崩潰時系統中所有事務的狀態;第2步重做操作將所有可能的在系統崩潰時還未寫入數據庫的數據塊重新寫入;最后,使用日志中存有的舊數據覆蓋未提交事務的數據進行撤銷操作.通過這種寫前日志(WAL)的方法,ARIES保證在異常情況發生后可以根據日志及檢查點信息將數據庫恢復到滿足事務語義的狀態.

Fig.2 The three passes of ARIES restart[22].圖2 ARIES重啟后恢復的3步工作

使用ARIES算法保證事務語義時,數據在寫入數據庫之前,需先寫入到日志區域中,造成了額外的寫操作.在性能上,雖然ARIES造成了重復寫入,但是由于將原先對數據庫的隨機寫轉化為了對日志區域的連續寫入,同時檢查點寫入在后臺進行.由于磁盤設備隨機I?O性能遠遠低于連續I?O性能,所以對于磁盤設備,ARIES雖然存在額外寫但卻帶來了性能提升.在目前主流數據庫中,MySQL InnoDB存儲引擎[23]、PostgreSQL[24]、SQL Server[25]以及Oracle[26]均采用類似ARIES的事務處理機制.

1.1.2 嵌入式數據庫中的事務處理技術

隨著移動設備的流行,嵌入式數據庫在各種移動端應用中廣泛流行.相比傳統關系型數據庫,嵌入式數據庫更加輕量,同時處于文件系統層之上.

如圖3所示,在目前應用最為廣泛的嵌入式數據庫SQLite中,使用2種不同的日志模式保證數據處理的事務性.一種稱為回滾模式(rollback mode),另一種稱為寫前日志模式(WAL mode).

由于處于文件系統層之上,這2種日志模式均使用文件系統提供的fsync調用,并假設fsync具有原子性.圖3還詳細說明了SQLite的2種事務處理模式的具體流程,在回滾模式下,SQLite對數據庫文件進行修改時,首先創建一個回滾文件,然后將數據庫文件被修改部分舊數據先寫入回滾文件,繼而對數據庫文件進行修改,最后刪除回滾文件.寫前日志模式則與ARIES非常相似,不同的是,這里寫前日志是以文件的形式而不是磁盤區域的形式存在.

1.2 文件系統事務處理技術

文件系統在系統I?O棧中處于核心的位置,向上負責處理應用層的各種系統調用,向下負責管理底層塊設備.通常情況下,由于單個文件系統調用涉及到對許多底層數據塊的操作,在系統崩潰等異常情況下操作可能會被中斷.文件系統同一時刻可能處理著大量并發的文件系統調用,所以異常情況可能會造成大量文件系統調用處于未完成的狀態,這會給文件系統帶來嚴重的一致性問題.

為了解決文件系統在系統崩潰等異常情況下的一致性問題,數據庫系統事務概念被引入到文件系統中并被進行了簡化.文件系統將一個或多個系統調用封裝成一個事務,但是由于文件系統并不需要強制保證原子性和隔離性,所以文件系統中事務是一種弱事務.為了實現這種弱事務,目前主流文件系統使用的方法大致可以分為3類:日志、影子頁和軟更新.

1.2.1 日志

日志(journaling)借鑒了ARIES算法中的寫前日志(WAL),同樣也在底層塊設備上使用單獨的區域作為日志區域,為了避免覆蓋舊數據,先將數據寫入到日志區域,而后再將數據寫入到文件系統中.與寫前日志不同的是,文件系統日志通常提供不同的日志級別,以Ext3文件系統為例,可以選擇日志級別為寫回(writeback)、順序(ordered)和數據(data),由弱到強分別表示不作任何日志、只對元數據進行日志以及對元數據和數據進行日志,缺省選項為順序.當日志級別為順序時,可以保證元數據一致性;而選擇日志級別為數據時,可以保證數據的版本一致性.使用日志技術的文件系統包括Ext3?4[6],NTFS[28],ReiserFS[28],XFS[5]等.

Fig.3 SQLite journal modes[27].圖3 SQLite不同日志模式

1.2.2 影子頁

影子頁是虛擬視圖技術的一種實現,采用了對數據異地更新之后更新元數據的策略.文件系統在對數據進行修改時,并不直接對該數據進行本地更新(in-place update),而是將新數據寫入到別的地方,即避免數據覆蓋.除了新寫入的數據之外,與新數據相關的文件系統元數據也需要修改,由于文件系統在塊設備上是一個樹形結構,所以由底向上一層層地異地寫入新的數據,直到修改樹根部分最后一個指針數據塊,完成對新數據的寫入.由于在寫入最后一個指針數據塊之前,文件系統并沒有任何的改變,而寫入之后,則本次寫操作完成.使用影子頁技術的文件系統包括ZFS[29]和Brtfs[30]等.

1.2.3 軟更新

軟更新首先分析文件系統調用涉及到的所有數據塊之間的依賴關系,而后將數據塊按照一定順序寫入,這個順序可以保證異常中斷后已經寫入的數據或者元數據與文件系統其他元數據一致.在具體實現中,為了保證這一點,在涉及到依賴沖突時,需要進行回滾(roll back)或者前滾(roll forward)操作.在Unix的快速文件系統(FFS)中實現軟更新時,可以將性能提升到內存文件系統的級別[8,31].但是在文件系統中實現軟更新嚴格的順序規則非常困難,目前使用軟更新技術的有FreeBSD的UFS[32]文件系統.

1.2.4 其他技術

近年來,在文件系統事務處理研究中出現了很多新技術.紐約大學的Spillane等人[33]提出了一種事務型文件系統Valor,向上層直接提供強事務原語.在具體實現中,Valor使用了類寫前日志技術避免對舊數據的覆蓋寫,在虛擬文件系統(virtual file system,VFS)中加入了事務鎖機制,保證了文件系統調用之間的隔離性.使用Valor提供的接口,上層軟件可以在文件系統層實現嚴格的ACID事務邏輯.此外,威斯康辛大學的Wisdom小組的研究人員提出了基于反向指針的文件系統NoFS[34]以及快速恢復文件系統一致性的算法Ffsck[35].NoFS在傳統文件系統樹狀結構中加入反向指針,包括目錄樹i節點(inode)之間的反向指針以及數據塊與i節點之間的反向指針.當文件系統操作由于系統崩潰或斷電等原因被中斷后,NoFS可以通過正常的文件系統數據塊指針以及額外的反向指針對文件系統一致性進行驗證,并恢復到一致狀態.Ffsck則通過在文件系統所管理的底層塊設備上設置新的間接區域(indirect region)存放文件間接塊(indirect blocks)以及目錄數據塊,恢復時順序讀取間接區域內的數據塊進行驗證,從而提高了恢復速度.

1.3 小 結

數據庫系統正常運行時,事務處理機制負責事務間的數據隔離,并保證對舊數據的保護.當斷電、系統崩潰或進程崩潰等異常狀態發生后,事務處理機制需要中止未完成的事務,使用原先的舊數據清除沒有完成的事務,從而在底層存儲設備中將被故障中斷的事務狀態清理干凈.

數據庫系統主要采用基于寫前日志的技術,首先將新數據寫入到日志區域中,避免了對舊數據的覆蓋,當事務提交后,再次寫入到數據庫中.這樣的設計可以將隨機寫入轉換為對日志區域的順序寫,對于磁盤友好,但由于接近1∶1的額外的寫操作,對閃存設備卻會造成壽命問題.

與數據庫系統相比,文件系統本身并不負責數據隔離,而是由操作系統提供的文件鎖機制提供隔離性.文件系統主要保證在斷電或者系統崩潰等異常狀態后的數據一致性,現有的文件系統主要采用的是日志、影子頁和軟更新等技術.日志和影子頁技術避免了對數據進行覆蓋寫,軟更新則使用復雜的依賴性保證數據一致性.日志技術也在一定程度上造成了對底層設備的重復寫入.

2 基于閃存的事務存儲系統與技術

由閃存芯片組成的固態硬盤(solid-state drive,SSD)等閃存設備由于內部并行性等原因使得其I?O性能無論是帶寬還是延遲相比磁盤都有顯著地提升.為了兼容已有系統,固態硬盤大多采用傳統磁盤設備接口,但是在內部工作原理上,閃存設備與磁盤設備有本質區別,傳統的設備接口限制了閃存設備特性在事務處理技術上的發揮.

本節從2方面介紹基于閃存的事務存儲系統與技術,首先介紹的是使用傳統接口的閃存設備進行事務處理加速技術;接著介紹打破接口限制、擴展現有設備接口,利用軟硬件協同的閃存事務處理系統.

2.1 閃存設備特性

閃存作為一種持久化的可擦除編程存儲器,主要分為NOR閃存與NAND閃存.NOR閃存存儲單元使用NOR邏輯門,支持字節粒度的讀寫以及片上執行(execute on chip),程序可以在NOR閃存芯片內執行;NAND閃存則使用NAND邏輯門作為存儲單元并支持以頁(page)為單位的讀寫.與NOR閃存相比,NAND閃存具有存儲密度高、成本低等優點,因而被廣泛使用在存儲領域.NAND閃存根據單元存儲密度不同被分為SLC(single-level cell),MLC(multi-level cell)和TLC(triple-level cell)閃存[36-37].下文中所討論的閃存如無特殊說明,均為NAND閃存.

NAND閃存的編程為單向編程,當電子被注入到存儲單元后,即表示從狀態“1”寫為狀態“0”,但不支持從狀態“0”寫為狀態“1”.NAND閃存在重新寫入一個頁面之前,需要進行擦除(erase)操作.與讀、寫不同的是,NAND閃存擦除單位為塊(block).通常,閃存頁的大小為4KB或更大,而閃存塊包含256個或更多閃存頁.每個閃存頁除了數據區之外,根據頁空間大小還包含64~256B不等的頁帶外區域(out-of-band area,OOB)用于存放ECC、邏輯頁地址等信息.閃存的各個操作之間延遲相差較大,單個頁讀操作平均延遲為25μs,寫操作平均延遲為200μs,但是擦除操作的平均延遲長達1.5ms[38].此外NAND閃存擦除操作有限,SLC閃存可擦寫100 000次左右,MLC可擦寫約10 000次,但TLC僅可擦寫約1 000次[39-40].

為避免擦除操作造成的延遲并使擦除操作對上層透明從而兼容傳統設備接口,閃存采用異地更新(out-of-place update)的策略對頁面進行重寫,并引入了一層重定向(indirection)向上層軟件提供統一的邏輯地址空間.當對某個邏輯頁重新寫入數據時,首先分配一個空白物理頁并寫入數據,之后邏輯頁被映射到新寫入的物理頁,原先所指向的物理頁被標記為無效頁面,并被定期地進行垃圾回收(garbage collection,GC).在閃存設備中,管理邏輯地址到物理地址映射的這一層重定向被稱為閃存轉換層(flash translation layer,FTL).除了地址映射,閃存轉換層還負責垃圾回收以及磨損均衡等機制.根據不同的設計,閃存轉換層可以被實現在閃存設備固件中,也可以被實現在閃存設備驅動中.

對于事務處理,得益于閃存設備本身的高性能,使用傳統接口的閃存設備可得到一定程度的性能提升,但是這并沒有發揮出閃存設備全部的能力.目前主流的數據庫系統與文件系統是基于磁盤塊設備進行設計并優化的,而閃存設備由于內部閃存轉換層的存在,在內部機制上與磁盤設備完全不同,這使得針對磁盤設計的事務存儲技術沒有充分利用閃存設備的特點.現有在基于傳統接口閃存設備上構建的事務存儲系統存在的不足主要體現在以下3方面:

1)設計冗余

事務處理中的寫前日志技術及虛擬視圖技術本質上是為了保護活動事務原有數據不被覆蓋,這樣在事務主動撤銷或者由于錯誤造成的回滾時可以將所修改的數據恢復到原有狀態.而閃存設備的異地更新特性與軟件層事務處理機制保護舊數據的設計有異曲同工之處.這樣,異地更新這一設計同時出現在了閃存轉換層以及軟件層事務處理技術中.雖然這2處異地更新的目地和效果均不相同,但2處異地更新存在設計上的冗余,增加了數據管理和存儲的開銷,同時也可能造成性能優化策略存在沖突.

2)策略沖突

與設計冗余相比,策略沖突造成的問題更加嚴重.以日志文件系統為例,在寫文件之前,首先將寫入的數據與修改的文件元數據寫入存儲設備日志區域中,這種基于磁盤設計的寫入策略無形中增加了一倍以上的數據寫入量,會對閃存設備壽命造成損害.

3)協同缺失

傳統存儲設備接口相對簡單,沒有協同分工的能力.閃存設備內部具有一定的處理能力,邏輯較復雜,由于傳統設備接口的限制,閃存設備內部特性完全對上層系統透明.內部透明性使得閃存設備可以替換磁盤設備并兼容遺留系統軟件,但同時也完全杜絕了軟硬件協同分工的可能性,將全部工作集中在軟件層,沒有充分利用設備性能進行協同處理.

傳統接口閃存設備使用包括SATA,SAS等在內的現有磁盤接口,事務處理機制中簡單使用傳統接口閃存設備替換磁盤不能充分發揮閃存設備異地更新的特性,因而研究人員對現有閃存設備接口進行了擴展,提出了擴展接口閃存設備用于事務處理.擴展接口閃存設備在內部將閃存異地更新特性與事務處理技術相整合,并以接口的形式對軟件層開放,軟件層可以直接使用由設備提供的事務處理接口進行事務處理,從而利用軟硬件協同的方式提升事務處理系統的整體性能.

接下來的2小節中,首先將介紹相對簡單的基于傳統接口的閃存設備事務處理相關研究,接著重點介紹需要對設備接口進行擴充的基于專用事務接口的事務閃存存儲系統.

2.2 基于傳統接口的閃存設備事務處理

基于傳統接口的閃存設備,包括USB閃存盤以及SATA,SAS固態硬盤相比磁盤具有較好的I?O性能.在傳統事務處理技術中,數據緩沖區(data buffer)在內存中緩存最近被數據庫訪問的塊設備數據,日志緩沖區(log buffer)在內存中緩存事務產生的日志數據.對于這2個緩沖區,都可以使用閃存設備進行數據持久化以加速事務處理.

2.2.1 基于USB閃存盤的FlashLogging[41]

Intel的研究人員提出的FlashLogging技術,使用了大量USB閃存盤并發處理日志I?O請求,提高了同步日志處理的性能,從而提高了系統的事務處理能力.

FlashLogging使用生產者消費者模式進行設計,內存中的日志緩沖作為生產者,不同的USB閃存設備作為消費者.任意時刻內存日志緩沖區需要寫入日志數據時,只要在系統掛載的USB閃存盤中找到空閑的寫入,繼而再將數據寫入到磁盤中.由于多個閃存盤提高了日志寫入的并發性,從而提高了事務吞吐.但是在恢復時,FlashLogging需要掃描所有的USB閃存盤,所以恢復代價也較大.

2.2.2 混合存儲事務處理

雖然閃存設備具有較高性能,但是相比磁盤成本也較高,混合存儲事務處理技術的研究目的在于充分發揮閃存設備的高性能與磁盤設備的大容量,做到高效融合.滑鐵盧大學的研究人員提出了使用磁盤(hard disk drive,HDD)和SSD的混合型存儲系統對MySQL InnoDB存儲引擎事務處理機制進行加速的設計[42],并在此基礎上提出了基于讀寫代價的數據庫緩沖區調整算法,將緩沖區數據根據讀寫代價分別存放于HDD和SSD中,以獲得盡可能多的性能收益.

圖4是混合存儲系統事務處理的結構圖,由于數據庫緩沖區中的數據被寫回到SSD之后再讀取比寫回HDD再讀取的成本要低,但是SSD的空間相對較小,所以將性能收益更高的數據放置在SSD上可以更加有效地提升整體性能.為了衡量緩沖區中的每個頁p存放到SSD上的潛在性能收益B(p),緩沖區調整算法采用了下列公式進行量化:

其中,r(p)和w(p)分別代表頁p曾經被寫和讀的次數,RD和RS分別代表硬盤和SSD的讀該頁需要的時間,而WD和WS分別代表硬盤和SSD寫該頁需要的時間.由于硬盤讀寫時間與工作負載相關,所以采用了平均值代替.

Fig.4 Hybrid storage system for DBMS[42].圖4 混合存儲數據庫系統

上述方法應用于混合存儲系統可以有效地提升數據庫系統的事務處理性能,同時有效利用了磁盤的大容量.但是由于其本質上是將讀寫次數較多的頁緩存于固態硬盤中,從一定程度上將會造成閃存設備的寫磨損加劇.

2.2.3 多用戶環境的固態硬盤事務處理

威斯康辛大學和NEC公司研究人員對多租戶(multi-tenant)環境下使用固態硬盤事務處理的3種不同設計進行了性能測試[43].與磁盤設備不同的是,當使用固態硬盤作為介質時,使用虛擬化技術提供多租戶的用例事務處理性能沒有明顯下降.

由于虛擬化技術提供多租戶的用例環境下,每個虛擬機均有其各自的數據庫管理系統以及操作系統,這時不管日志I?O還是數據I?O均為隨機讀寫,在磁盤環境下,隨機讀寫相比非虛擬化單個數據庫設計以及非虛擬化多個數據庫設計的日志順序I?O均有較大的性能損失;固態硬盤環境下隨機I?O與順序I?O的性能相差沒有磁盤那么大,因此,基于閃存固態硬盤和虛擬化技術的多租戶事務處理設計可以提供良好的性能.這也證明了在云計算環境下,基于隔離虛擬機的多租戶事務存儲系統使用閃存設備處理更具有優勢.

2.3 擴展現有設備接口的事務閃存存儲系統

使用基于傳統接口的閃存設備固然可以提高事務處理的性能,但是仍然沒有充分發揮閃存的優勢.為了將閃存自身的異地更新特性應用于事務處理技術中,現有閃存設備的接口必須得到擴展,從而可以將一部分的工作交給硬件,通過軟硬件協同的方式實現更加高效的事務處理.

這類研究,從接口類型來看,可以分為提供數據庫的ACID事務接口,或提供日志文件系統的一致性接口.從提交協議上來看,可以分為鏈式提交協議、滑動窗口以及依據事務拓撲關系的有向無環式提交協議.雖然具體的實現技術各異,但是所有研究都致力于提供更高效的閃存設備事務處理以及更快速的恢復.

2.3.1 基于閃存設備FTL的事務存儲系統

Park等人[44]提出的AtomicWriteFTL是最早使用閃存設備異地更新特性提供事務支持的研究.AtomicWriteFTL提供了額外的設備接口:Atomic-WriteStart()和AtomicWriteCommit(),分別用于開始一個事務以及提交一個事務,并修改了FAT文件系統使用這2個接口.當FAT文件系統在實現文件系統調用時需要同時對多個數據塊進行修改時,就使用上述設備接口進行處理.AtomicWrite-Start()被調用時,生成一個隨機的事務id,并存放到每個頁的OOB區域中.AtomicWriteCommit()被調用時,一個提交記錄被寫入持久化層中.

AtomicWriteFTL由于研究時間較早,并未考慮大容量閃存設備的恢復以及對數據庫事務的支持等問題.同時該工作直接修改了FAT文件系統,而沒有修改系統塊設備緩存,這使得要使用設備提供的事務接口就必須將文件系統以同步的方式掛載,也造成了性能問題.

在AtomicWriteFTL的基礎上,韓國成均館大學和首爾大學的研究人員提出了一個事務型閃存轉換層X-FTL[27],并以移動設備上大量應用的嵌入式數據庫軟件SQLite作為上層應用進行接口設計.在外部設備接口上,如表1所示,X-FTL修改了SATA接口的讀寫命令,增加了一個代表事務標識的參數;此外還新增加了commit和abort命令.

如圖5所示,與傳統閃存轉換層相比,X-FTL新增了事務頁映射表(transactional page mapping table,X-L2P)用于存放未提交事務中的邏輯頁的映射信息,并在事務提交后將事務頁映射表信息寫入到閃存轉換層地址映射表中.與AtomicWriteFTL相比,X-FTL沒有使用閃存頁OOB區域而是在閃存設備中開辟新的區域存放未提交的事務頁映射信息.

Table 1 X-FTL Extended SATA Interface[27]表1 X-FTL擴展SATA接口

Fig.5 X-FTL architecture:a FTL for transactional atomicity[27].圖5 X-FTL體系結構:一種提供事務原子性的FTL

在X-FTL中,雖然數據頁本身并沒有被寫入2次,但是對于X-L2P表中的映射信息仍然被寫入了2次.AtomicWriteFTL與X-FTL都是在現有閃存轉換層基礎上增加新的模塊,而不需要對現有FTL做任何的變動.

國內中國人民大學的研究人員提出的MixSL[45]同樣也是一種基于現有MLC閃存設備FTL的事務提交模型.與X-FTL類似,MixSL在內存中使用一個Transaction Table用以追蹤事務狀態,同時使用一個Δ-Mapping Table存放事務中新增的映射信息.當故障恢復時,MixSL掃描日志數據頁OOB區域存放的事務信息丟棄掉未完成的數據頁.

2.3.2 基于鏈式提交協議的TxFlash[46]

微軟的研究人員提出了基于鏈表的事務閃存存儲系統TxFlash以及其提交協議簡單環狀提交(simple cyclic commit,SCC)和反向指針環狀提交(back pointer cyclic commit,BPCC)[46].TxFlash利用閃存頁OOB存放事務中下一個頁的物理地址作為單向鏈表指針,事務的最后一頁的OOB區域中存放事務首頁的物理地址,因此一個事務中的數據頁形成了環.異常發生后,恢復時首先掃描所有的頁,如果某些頁根據其OOB中的指針構成環狀結構,那么表示該事務已經提交,否則表示未提交并丟棄該事務所有的頁.由于閃存垃圾回收操作可能會破壞這種環狀結構,為了區分破壞的環狀結構是由垃圾回收還是未提交事務造成的,SCC協議在寫入數據頁時強制擦除該數據頁之前的未提交版本以及其所依賴的頁,但是引入的擦除操作會影響整體寫入性能,因此在SCC協議的基礎上提出了BPCC協議,BPCC中每個頁除了有指向下一頁的指針之外,還包含該邏輯頁上一個已提交版本的地址作為反向指針.這樣如果某個頁既沒有反向指針指入,又處于一個被破壞的環狀鏈表中,則這一個頁屬于某個未提交事務,需要被垃圾回收.

TxFlash的2種提交協議SCC和BPCC對頁面擦除時機存在限制,同時具有較大開銷.為了解決該問題,浸會大學和南洋理工大學的研究人員在TxFlash的基礎上提出了Flag Commit協議[47].Flag Commit協議基于SLC閃存支持指針的原地修改,在擦除已提交事務中的頁面時,原地修改OOB區域內的指針即可與未提交事務相區分,從而避免了SCC和BPCC由于指針依賴說帶來的額外擦除開銷,但Flag Commit協議僅限于SLC閃存,而無法應用于常用的MLC閃存中.

此外,TxFlash的恢復基于全盤掃描,離線時間過長,印度理工學院的研究人員提出了一種基于TxFlash的提交協議QRCC(quick recovery cyclic commit)[48],將每個事務的首頁存放在閃存設備的一個順序結構中.這樣在恢復時,只需要依據這一結構進行事務狀態檢查,從而實現了TxFlash的恢復加速.

2.3.3 對FTL進行修改的事務閃存存儲系統

除了基于已有FTL設計事務閃存存儲系統之外,俄亥俄州立大學以及FusionIO公司的研究人員合作,對FTL層進行了修改,提出了Atomic-Write[49]的設計,直接由FTL層提供事務支持,并在FusionIO公司的產品中被廣泛使用[50].與三星、Intel等公司基于設備的(device-based)固態硬盤(SSD)等不同的是,FusionIO面向企業提供基于主機的(host-based)固態存儲系統(solid state storage,SSS),由軟件層提供閃存轉換層、磨損均衡和垃圾回收等功能.與AtomicWriteFTL和X-FTL相比,Atomic-Write對上層提供的專用事務處理接口相似,但直接修改基于日志FTL以實現這些接口,圖6是其內部結構圖:

Fig.6 Implementing Atomic-Write within a log based FTL[49].圖6 在基于日志FTL中實現Atomic-Write

為了將增加事務處理對系統性能的影響控制在最小范圍,Atomic-Write在閃存轉換層的映射信息中增加了一位,當這一位為“1”時,表示當前頁是一個事務的最后一頁.同時,每個時刻最多有一個正在寫入的原子寫.在系統崩潰等異常情況后,由后向前掃描映射信息日志,在遇到第一個標志位為“1”的映射信息之前,丟棄到所有的標志位為“0”的映射信息,也即丟棄掉最后一個未完成的原子寫.Atomic-Write實現基礎是日志FTL,同時為了支持事務處理僅額外寫入了1b信息,在不涉及到并發性的前提下性能較優.但是同一時刻,Atomic-Write最多只有一個寫入中的事務,限制了底層閃存設備的并發性.FusionIO將這一設計實現在其商業產品Atomic Series的ioMemory中,同時提供MySQL InnoDB存儲引擎擴展以使用這些事務處理接口.

2.3.4 基于滑動窗口的LightTx[51]

在事務處理機制中,事務的隔離性一般由軟件層的鎖機制負責,如果由設備層提供,設備層一般只能提供串行(serializable)一種隔離性,也即一個事務完成后處理下一個事務,但是這限制了底層存儲設備的性能.為了解決這一問題,Lu等人[51]提出了基于滑動窗口的靈活輕量事務閃存LightTx,支持事務的3種不同隔離級別:嚴格隔離(strict isolation)、無頁沖突(no-page-conflict)和串行(serializable),并由軟件層決定具體的隔離級別.在內部結構上,LightTx將閃存設備根據事務所處不同的生命周期劃分為4個滑動窗口,分別為已完成區域(checkpointed zone)、待定窗口(pending window)、更新窗口(updating window)和空閑區域(free zone).任意時刻,正在更新的事務只存在于待定窗口與更新窗口中.LightTx采用頁面技術的方式在恢復時判斷事務是否提交,事務的最后一個頁面的OOB區域為事務中頁總數,否則為0.當系統崩潰恢復時,只需要對待定窗口和更新窗口區域進行掃描和驗證,從而減少了存儲系統離線恢復時間.

圖7是采用LightTx事務恢復協議的事務閃存設備的狀態快照示例,當故障發生后,掃描更新窗口和待定窗口根據頁面OOB中的信息可以判定Tx6,Tx9,Tx10為未提交事務,需要被進行垃圾回收,其余事務的FTL層數據則要被再次寫入.2.3.5 基于有向無環提交協議的M bius[52]

Fig.7 Zone-based transaction state tracking[51].圖7 基于窗口事務狀態跟蹤圖

事務閃存設備除了需要寫入事務數據之外,與一般的閃存設備一樣,也需要保證FTL層的映射數據被持久化.清華大學的研究人員基于開源硬件OpenSSD設計并實現了名叫M bius的事務閃存設備,M bius將FTL映射數據與事務元數據相結合的方式持久化事務元數據.M bius將事務分為靜態事務(static transaction)與動態事務(dynamic transaction),靜態事務主要指事務所有待寫入的頁都已經在內存中,和多個頁的原子寫比較接近,而動態事務指事務開始時待寫入的頁還沒有確定,需要等待計算.通常文件系統緩存處理數據的方式是靜態事務式的,但是關系型數據庫中的多個SQL語句組成的事務是動態事務.對于靜態事務,由于事務所有的寫入頁已經確定,M bius會實現分配物理頁,一個事務所分配的所有頁的映射信息以及事務信息被記錄到一個被稱為Atom的閃存頁中,所有的Atom被維護在一個稱為Atom Log Area的區域,在恢復時使用有向無環圖提交協議快速檢查;而對于動態事務,M bius采用鏈表式的方式進行寫入.

有向無環提交協議的關鍵在于當前事務的提交記錄寫入到后續的事務中,于是在Atom Log Area形成了后續Atom指向之前Atom的拓撲結構.恢復時,對Atom Log Area從后向前進行掃描,如果某Atom被之前Atom所指向,這該Atom代表的事務已提交.否則需要進一步進行檢查,讀取Atom內的映射信息,訪問所有的物理頁,如果物理頁中事務id與Atom中的id均吻合,則表示該事務已完成,否則表示該事務未完成,需要進行垃圾回收.

2.4 小 結

基于閃存的事務存儲系統按照接口技術的不同可以分成2類,一類系統直接使用現有接口閃存設備,包括USB接口或諸如SATA,SAS接口在內的磁盤接口閃存設備.這類系統的設計目標主要圍繞著利用這些閃存設備比傳統磁盤更優的I?O性能加速事務處理.另一類系統則對現有設備接口進行擴展,利用閃存異地更新特性,將寫前日志的功能實現在閃存設備內部,對上層軟件提供不同類型的事務處理接口,避免了重復設計造成的冗余I?O等問題,提升了性能.

閃存設備接口的局限性被越來越多的研究人員所關注,例如北京大學和百度公司的研究人員提出了將閃存設備通道直接暴露給軟件層的設計[53],在這樣的存儲架構之上,直接使用閃存硬件更高效地實現了LSM樹(log-structured merge-tree)型結構.

擴展閃存設備接口進行事務處理的技術與直接利用閃存設備I?O性能進行事務處理加速的技術相比更加復雜,也是目前學術界和工業界研究的主要方向,這類系統也被稱為事務閃存存儲系統.

事務閃存存儲系統分別在系統開銷、離線恢復時間、設備接口和事務隔離性等方面考慮事務處理邏輯的實現.這些設計可以被實現在閃存設備的固件層,也可以實現在系統軟件層或設備驅動層.通過這樣的設計,可以充分發揮閃存異地更新的特性,減少了不必要的數據寫入量.以日志文件系統為例,在日志模式下,系統調用的首先被寫入連續的日志區域,接著被寫入磁盤實際位置,數據寫入量WT為:

其中,WJ為磁盤日志寫入量,WD為磁盤數據寫入量,在嚴格一致性條件下,WJ和WD數據量大致相同,由于WD是有效的數據變化量,所以寫放大率達到1∶1.但是對事務閃存存儲系統,WJ的寫入量可以通過閃存異地更新特性避免,閃存中的舊數據頁在沒有被垃圾回收之前,可以作為日志使用,從而減少了日志部分的寫入.

表2是現有的基于閃存的事務存儲系統與技術比較,其中FlashLogging,Hybrid Buffer,Multitenant直接使用現有接口的閃存設備從不同的角度對事務處理進行優化,其余則均為擴展接口的事務閃存存儲系統.AtomicWriteFTL和X-FTL在閃存設備已有FTL之上進行設計,不需要對FTL進行改動,但是對于故障后恢復,不僅僅需要對事務邏輯進行恢復,而且需要對FTL本身進行恢復.MixSL在設計上與X-FTL較為接近,但是沒有說明其具體使用的設備接口.Atomic-Write?FusionIO的事務閃存設計基于日志FTL做了最小改動,只增加了一位代表事務的最后一頁,但是這也限制了事務處理的并行性,沒有充分利用底層閃存IO能力.TxFlash和Flag Commit基于鏈式提交協議,但恢復時需要進行全盤掃描,離線時間過長.LightTx基于滑動窗口,運行時代價較小,但恢復時同樣需要掃描一定范圍內的閃存并進行驗證.M bius支持2種接口并且恢復時離線時間較短,但是對于大量小事務,由于需要額外寫入Atom頁,處理代價較大.

Table 2 Comparison of Flash-Based Transactional Storage Systems and Technologies表2 基于閃存的事務存儲系統與技術比較

3 基于相變存儲器的事務存儲系統與技術

除了已經被廣泛使用的閃存之外,相變存儲器作為另一種即將投入使用的存儲介質,也漸漸成為了事務存儲系統中研究的熱點.

相變存儲器(PCM)作為一種新型非易失存儲介質,具有高密度、字節尋址、高性能讀寫等特點;此外與閃存相比,沒有高延遲的擦除操作.由于這些優點,PCM在存儲體系結構上通常有2類不同的使用方式:1)與主存同級,如圖8所示,獨立構成主存或和DRAM構成混合型主存;2)與外存同級,構成固態硬盤,使用高性能結構作為可字節尋址的外存設備.在這2種不同的體系結構下,PCM均可以被用于支持高性能的事務處理.

Fig.8 PCM memory architecture alternatives[54].圖8 PCM作為主存的不同存儲體系結構

3.1 相變存儲器構建主存環境下的事務處理技術

相變存儲器在構建主存環境下實現高效事務處理主要依靠于日志與緩存融合技術.緩存是存儲系統高效運行所必須的,而日志則是事務處理技術帶來的額外開銷.當主存非易失時,緩存和日志之間的界限變得模糊,將日志與緩存融合可以利用系統緩存直接作為事務日志,從而更加高效.

浸會大學和南洋理工學院的研究人員提出了基于PCM與DRAM混合主存體系結構下的事務日志處理技術PCMLogging[54].PCMLogging基于PCM與DRAM混合主存體系結構進行設計,其核心思想是利用PCM的非易失特性將數據緩沖區與日志緩沖區合二為一,這樣當數據被寫入到非易失的數據緩沖區后,也可以作為崩潰后的恢復日志使用.

PCMLogging使用了映射表(mapping table,MT)、空閑頁位圖(free page bitmap)和反向指針(inverse mapping)3個結構對PCM進行管理.其中映射表是內存管理單元(memory management unit,MMU)中內存邏輯地址到物理地址映射的一部分,空閑頁位圖用于分配空閑PCM頁,反向指針用于在系統啟動時重建映射表.ActiveTxList中存放當前活動狀態的事務標識XID,在事務將其所有臟頁刷入到PCM中之后,ActiveTxList中的相應XID會被移除.PCM頁元數據區域中XID字段代表最近一次修改該頁的事務標識.當系統以外崩潰后恢復時,首先掃描ActiveTxList,丟棄未完成的事務數據,并將完成的事務數據保存并在適當時候刷新到外存中.

CMLogging在DRAM和PCM中使用額外的數據結構記錄事務的狀態,并在故障恢復時依據這些狀態信息丟棄未提交事務的數據.通過將數據緩存與日志緩存相結合的方法,避免了事務處理中數據的2遍寫入.

與PCMLogging相似,韓國梨花女子大學的研究人員提出了在PCM主存環境將文件系統日志與操作系統頁緩存合二為一的文件系統事務處理方法UBJ(union of buffer cache and journaling)[55].

如圖9所示,通過這樣的整合,首先系統更新頁緩存時即完成了對日志的修改,減少了不必要的I?O;其次,與內存總線相比,不同接口的外存設備均具有較大的延遲和較小的帶寬,UBJ將原先文件系統日志部分的寫入控制在了內存這一層,而不必要和外存進行交互,從而提高了性能.

Fig.9 Commit process comparing[55].圖9 不同內存體系結構下的提交過程對比

Fig.10 Overview of Kiln persistent memory design[56].圖10 非易失內存體系結構Kiln

如圖10所示,匹茲堡大學、HP、IBM、AMD和Google的研究人員合作提出了另外一種基于PCM的內存體系結構Kiln[56],用于支持事務處理.

Kiln在思想上與UBJ較為相似,與UBJ在內存這一層融合了頁緩存和日志不同的是,Kiln在處理器緩存中增加了一層非易失緩存,將處理器高速緩存與日志區域融合.這種在存儲體系結構中縱向的PCM布局有2個好處:1)不需要維護任何事務狀態,直接利用存儲體系結構中數據的縱向冗余提供日志功能,代價很小;2)將原先寫日志部分的I?O控制在處理器內部互聯中,減少了使用內存總線的I?O次數,從而提高了性能.

圖10還對Kiln與傳統塊設備與混合內存體系結構下的事務處理機制進行了對比.可以看出,Kiln使用了縱向結構的日志布局,并將日志融入到存儲體系結構中,將持久化日志放在離處理器更近的位置,避免使用代價較高的內存總線去持久化日志數據,從而提高系統性能.但是Kiln對于事務的大小有一定的限制,必須要能存放于處理器的NV Cache中.

此外,清華大學的Lu等人[57]提出了應用于非易失內存環境下的LOC(loose-ordering consistency)技術對事務處理寫前日志方法的性能進行提升.LOC中主要使用了名為Eager Commit和Speculative Persistence的2種技術,Eager Commit使用事務狀態表(transaction state table,TxST)對事務狀態進行記錄,從而在事務提交后,不需要寫入額外的提交日志,從而提高性能;Speculative Persistence指的是控制軟件對于寫入內存數據的可見性,消除了事物間寫入的強制順序性要求,從而提高性能.

除了應用在單節點事務處理環境下之外,PCM也被設計應用在多核、分布式事務處理環境.與傳統的易失性DRAM主存相比,事務處理技術中的日志方法在非易失內存環境下會被根本改變.相比傳統方法,在非易失內存中,事務不需要強制進行提交前刷新(flush-before-commit).在這樣的背景下,多倫多大學的研究人員提出了在非易失內存環境多核多通道(multicore and multi-socket)硬件中使用分布式日志(distributed logging)技術提升系統事務處理能力[58].多核多通道的非一致性內存訪問(NUMA)體系結構下,分布式日志技術會造成處理器親和度(processor affinity)問題,也即處理器同時訪問本地和遠端的內存數據頁時會產生競爭.為了解決這一問題,分布式日志方法使用了事務級日志空間劃分,對每一個處理器維護一個本地的日志,當事務完成之后,在這些本地的日志之間設置數據檢查點(checkpoint).通過使用事務級日志空間劃分內存,分布式日志技術消除了大部分處理器在進行日志時對內存頁的競爭,性能得到了約3倍的提升.

3.2 相變存儲器構建外存環境下的事務處理技術

目前相變內存芯片的I?O性能稍遜于DRAM,所以也出現了一些使用PCM作為外存、利用其高性能和字節尋址等特性提升事務處理能力的技術,這類技術可以稱為細粒度日志技術.

傳統的外存塊設備記錄日志時,即使只有少量改動,相關塊也將被整個寫入到日志區域.加州大學圣地亞哥分校的研究人員使用PCM作為介質構造了PCIe接口的固態存儲設備Moneta[59],提出了基于Moneta的事務處理技術可編輯原子寫(editable atomic write,EAW)[60].與傳統的事務日志處理技術相比,由于PCM的字節尋址特性,使得EAW可以在硬件層實現對事務日志的提交前修改,這樣在對某個頁進行重復修改時日志中只有一份數據拷貝.EAW從PCM介質特性出發,設計了一種完全不同于傳統塊設備外存的事務日志技術并將其實現在設備中,從而提高了存儲設備的事務處理能力.

3.3 小 結

PCM作為主存使用時,主要利用了PCM的非易失特性,主要有日志與緩存融合技術,使用非易失的緩存實現事務日志的功能,從而減少了日志部分的開銷.

PCM主存進行事務處理具有2點優勢:1)將緩沖區與日志區合并,從而減少不必要的日志I?O;2)內存層恢復,在恢復時直接利用PCM中的信息重建事務狀態表,丟棄未完成的事務信息,而不需要和外存進行交互.

PCM介質構建外存設備時,利用其字節尋址的特性可以減少對相同數據塊進行修改的日志I?O,從而提高了事務處理能力.這類技術被稱為細粒度日志技術,相比塊設備而言,細粒度日志技術可以以字節為單位進行日志寫入和讀取,避免了塊對齊造成的不必要的寫入,從而提升系統性能.

Table 3 Comparison of PCM-Based Transactional Storage Class Memory Systems表3 基于PCM的事務存儲系統比較

表3對現有的基于PCM的事務存儲系統和技術進行了比較,從中可以看出,PCM事務處理主要應用在主存環境,前5種技術均為PCM在主存環境下的事務處理應用.其中Kiln較為特殊,還將PCM應用于L3Cache,從處理器到主存就開始保證事務性持久化.在恢復時間上,LOC由于采用事務狀態表進行查詢,避免了掃描,從而縮短了恢復時間.Distributed Logging技術采用全PCM主存解決了多核環境下持久化層與核之間的親和度問題,降低了內存中的數據頁競爭,提升了效率.

4 研究展望

縱觀存儲工業發展史,從磁帶設備、軟盤到光介質再到磁盤,新的數據存儲介質往往會給I?O棧帶來革命性的影響.事務存儲技術作為存儲領域最為重要的關鍵技術之一,幾乎被應用于所有的數據庫系統與文件系統.隨著閃存等非易失存儲介質的廣泛應用,存儲體系結構正面臨著大的變革,因此在新型存儲體系結構下研究事務存儲技術的需求變得極為迫切.目前基于閃存的事務存儲系統已經開始嶄露頭角,基于PCM的事務存儲系統也已走出實驗階段.展望未來,針對目前非易失存儲器應用于事務處理技術所面臨的問題,以下4個方面仍然需要進一步探索與研究.

4.1 事務存儲接口

閃存的量產使得閃存設備已經被廣泛應用于傳統存儲體系結構的緩存層和持久化層.按照設備所處的不同層級,也擁有不同的設備接口,包括傳統的SATA,SCSI,SAS等磁盤接口,也包括PCIe和NVMe等新型設備接口,甚至還包括內存模塊DIMM接口.PCM設備也根據其處在I?O棧不同位置使用不同的設備接口.基于非易失存儲器的事務存儲系統核心在于利用介質特性提升事務處理能力,因而設備接口必須將這種能力暴露給系統軟件層,但是如此眾多的設備接口使得非易失存儲設備很難提供統一的事務處理接口,從而存在適用性問題.

對于已有的一些事務接口,也存在著許多問題.由于事務應用于不同存儲系統時,對ACID要求并不相同,例如文件系統事務一般要弱于數據庫事務,但是已有的事務接口并不能體現出這種差別;此外,對于事務中隔離性、一致性等特性,也存在著多種不同的級別,現有的事務接口對于這些不同級別也不能進行區分.因此,如何提供高適用性且支持不同特性事務的設備接口是值得研究的問題.

4.2 數據可用性

存儲系統最為關鍵的指標莫過于數據可用性(availability),對于事務處理系統而言則尤為重要.譬如銀行系統內的事務代表著金錢的流動,關系著社會穩定.數據可用性在事務處理中具體而言,可以細化為2類問題:1)系統正常工作時的數據可用性;2)系統遇到故障后的快速恢復.

在大數據時代,數據量成為了事務存儲系統快速故障恢復(failover)的主要障礙,全盤掃描式的恢復會導致較長數據離線時間,如何高效迅速的故障恢復將會成為研究的重點.

4.3 系統可擴展性

隨著數據量規模的不斷增長,基于非易失存儲器的事務存儲系統的可擴展性問題也日益突出.在宏觀上,可擴展性體現在事務處理技術高效應用于分布式環境下;在微觀上,則是保證多核環境下事務處理能力可擴展.

分布式環境下如何利用非易失存儲器特性提供高效的事務處理是研究的關鍵,目前的分布式事務處理技術主要使用2PC(two phase commitment protocol)2階段提交協議[61],在該提交協議里,事務提交被分為請求階段與提交階段,但是分階段提交的開銷較大,如果利用非易失存儲器異地更新的特性,2PC之類的分布式事務提交協議是否可以優化可能成為研究的熱點,例如在閃存設備環境中首先寫入各節點,而后判斷,避免等待協調所耗費的時間,同時由于閃存異地更新特性,可以方便地進行回滾.此外,多核背景下的分布式處理技術中存在處理器親和度等問題,需要探索分配日志工作的方法.4.4 數據可靠性

各類新興的非易失存儲器由于工藝和技術上的限制,存在著壽命有限、錯誤率高等問題,如何保證新介質對數據的可靠持久化,必然會成為研究的熱點.這類問題的研究方向一般圍繞著糾刪碼和軟件層的數據冗余備份展開.

事務存儲系統是提供高可靠性的保證,因此其本身的可靠性問題必將成為研究的熱點.閃存以及PCM等非易失存儲器相比磁盤,呈現出極為不同的可靠性特征.例如閃存中存在FTL層,而FTL中的映射數據本身的可靠性也需要保證,與磁盤設備相比,這大大增加了整體可靠性問題.目前的非易失事務存儲系統的設計大多基于底層設備是可靠的這一假設,并沒有考慮設備本身出現可靠性問題的情況.通過進一步分析新型非易失存儲介質的可靠性特征,并依據這些特征對事務存儲系統進行改造,才能為上層軟件提供更高的可靠性保證.

5 總 結

隨著閃存的廣泛應用以及PCM,MRAM,RRAM等非易失存儲器的涌現,存儲體系結構正面臨著巨大的變化.這些非易失存儲器各有特點,例如閃存設備具有異地更新特性、PCM設備具有字節尋址特性,如何利用這些特性對I?O棧進行重新設計已經成為存儲系統研究的重點.

事務這一概念由圖靈獎得主James Gray提出,目前已被廣泛應用于各種存儲系統中以提供原子性、一致性、隔離性和持久性.目前,各種存儲系統中已有的事務處理技術大多基于傳統磁盤設備,沒有充分利用閃存和PCM等非易失存儲設備的特點,造成了性能損失等問題.

本文從事務處理技術應用于新型存儲體系結構的角度出發,對操作系統、數據庫以及體系結構領域出現的新的事務存儲系統和相關技術進行了研究和分析.這些工作分別處于存儲體系結構不同層,使用的介質也主要分為已經量產的閃存和即將量產的PCM.在事務閃存存儲系統中,大多數工作利用閃存設備原生的異地更新特性避免了軟件層不必要的工作,快速恢復和可擴展性問題是目前的研究熱點.在PCM事務存儲系統中,主要利用了PCM在體系結構中的位置,將日志與系統緩存相結合,避免了重復I?O,此外也有工作利用PCM的直接尋址,提供細粒度的日志,從而提高性能.

綜合現有的研究情況,目前基于閃存的事務存儲系統處于起步階段,已經出現了FusionIO公司的ioDrive等系列產品為上層提供原子寫原語,但是各類事務閃存存儲系統的接口較為復雜且不統一,此外隨著閃存設備容量的增長,離線恢復時間和其他可擴展性問題亟需解決.而基于PCM的事務存儲系統則還處于實驗階段,并且需要從體系結構、系統軟件以及應用程序等多方面共同考慮和設計.此外,例如MRAM和RRAM等非易失存儲器也即將走出實驗室,如何在事務存儲系統中利用這些介質自身的特點也將成為研究的熱點.

[1]Gray J.Notes on Data Base Operating Systems[M].London:Springer,1978:393 481

[2]Gray J.The transaction concept:Virtues and limitations[C]??Proc of the 7th Int Conf on Very Large Data Bases(VLDB).San Francisco,CA:Morgan Kaufmann,1981:144 154

[3]Gray J,Reuter A.Transaction Processing:Concepts and Techniques[M].San Francisco,CA:Morgan Kaufmann,1992:1070

[4]Mohan C,Haderle D,Lindsay B,et al.ARIES:A transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging[J].ACM Trans on Database System,1992,17(1):94 162

[5]Sweeney A,Doucette D,Hu W,et al.Scalability in the XFS file system[C]??Proc of the 2nd USENIX Annual Technical Conf(USENIX ATC).Berkeley,CA:USENIX Association,1996:167 181

[6]Tweedie S C.Journaling the Linux ext2fs filesystem[C]?? Proc of the 4th Annual Linux Expo.Berkeley,CA:Linux Expo,1998

[7]Hitz D,Lau J,Malcolm M A.File system design for an NFS file server appliance[C]??Proc of the USENIX Winter 1994 Technical Conf(WTEC).Berkeley,CA:USENIX Association,1994:19 19

[8]Ganger G R,Patt Y N.Metadata update performance in file systems[C]??Proc of the 1st USENIX Conf on Operating Systems Design and Implementation(OSDI).Berkeley,CA:USENIX Association,1994:5 14

[9]Peng Lin,Xie Lunguo,Zhang Xiaoqiang.Transactional memory system[J].Journal of Computer Research and Development,2009,46(8):1386 1398(in Chinese)(彭林,謝倫國,張小強.事務存儲系統[J].計算機研究與發展,2009,46(8):1386 1398)

[10]Herlihy M,Eliot J,Moss B.Transactional memory:Architectural support for lock-free data structures[C]??Proc of the 20th Annual Int Symp on Computer Architecture(ISCA).New York:ACM,1993:289 300

[11]Xia Fei,Jiang Dejun,Xiong Jin,et al.A survey of phase change memory systems[J].Journal of Computer Science and Technology,2015,30(1):121 144

[12]Zhang Hongbin,Fan Jie,Shu Jiwu,et al.Summary of storage system and technology based on phase change memory[J].Journal of Computer Research and Development,2014,51(8):1647 1662(in Chinese)(張鴻斌,范捷,舒繼武,等.基于相變存儲器的存儲系統與技術綜述[J].計算機研究與發展,2014,51(8):1647 1662)

[13]Qureshi M,Gurumurthi S,Rajendran B.Phase Change Memory:From Devices to Systems[M].New York:Morgan Claypool Publishers,2011

[14]Qureshi M,Srinivasan V,Rivers J.Scalable high performance main memory system using phase-change memory technology[C]??Proc of the 36th Annual Int Symp on Computer Architecture(ISCA).New York:ACM,2009:24 33

[15]Wu Zhangling,Jin Peiquan,Yue Lihua,et al.A survey on PCM-based big data storage and management[J].Journal of Computer Research and Development,2015,52(2):343 361(in Chinese)(吳章玲,金培權,岳麗華,等.基于PCM的大數據存儲與管理研究綜述[J].計算機研究與發展,2015,52(2):343 361)

[16]Zangeneh M,Joshi A.Design and optimization of nonvolatile multibit 1T1Rresistive RAM[J].IEEE Trans on Very Large Scale Integration(VLSI)Systems,2014,22(8):1815 1828

[17]Sheu S S,Cheng K H,Chang M F,et al.Fast-write resistive RAM(RRAM)for embedded applications[J].IEEE Design &Test of Computers,2011,28(1):64 71

[18]Tsunoda K,Kinoshita K,Noshiro H,et al.Low power and high speed switching of Ti-doped NiO ReRAM under the unipolar voltage source of less than 3V[C]??Proc of IEEE Int Electron Devices Meeting(IEDM).Piscataway,NJ:IEEE,2007:767 770

[19]Andre T,Nahas J,Subramanian C,et al.A 4-Mb 0.18μm 1T1MTJ toggle MRAM with balanced three input sensing scheme and locally mirrored unidirectional write drivers[J].IEEE Journal of Solid-State Circuits,2005,40(1):301 309

[20]Senni S,Torres L,Sassatelli G,et al.Exploration of magnetic RAM based memory hierarchy for multicore architecture[C]??Proc of 2014IEEE Computer Society Annual Symp on VLSI(ISVLSI).Piscataway,NJ:IEEE,2014:248 251

[21]Gartner Inc.Hype cycle for semiconductors and electronics technologies[EB?OL].[2015-04-21].https:??www.gartner.com?doc?2795317?hype-cycle-semiconductors-electronics-tech nologies

[22]Franklin M.Concurrency control and recovery[M]??The Computer Science and Engineering Handbook.Boca Raton,FL:CRC Press,1997:1058 1077

[23]Hall C,Bonnet P.Getting priorities straight:Improving Linux support for database I?O[C]??Proc of the 31st Int Conf on Very Large Data Bases(VLDB).New York:ACM,2005:1116 1127

[24]Herzog R.PostgreSQL—The Linux of databases[J].Linux Journal,1998,(46):1 9

[25]Lomet D,Barga R,Mokbel M,et al.Immortal DB:Transaction time support for SQL server[C]??Proc of the 24th ACM SIGMOD Int Conf on Management of Data.New York:ACM,2005:939 941

[26]Lahiri T,Ganesh A,Weiss R,et al.Fast-Start:Quick fault recovery in oracle[C]??Proc of the 20th ACM SIGMOD Int Conf on Management of Data.New York:ACM,2001:593 598

[27]Kang W,Lee S,Moon B,et al.X-FTL:Transactional FTL for SQLite databases[C]??Proc of the 32nd ACM SIGMOD Int Conf on Management of Data.New York:ACM,2013:97 108

[28]Prabhakaran V,Arpaci-Dusseau A C,Arpaci-Dusseau R H.Analysis and evolution of journaling file systems[C]??Proc of the 11th USENIX Annual Technical Conf(USENIX ATC).Berkeley,CA:USENIX Association,2005:105 120

[29]Powell H.ZFS and Btrfs:A quick introduction to modern filesystems[J].Linux Journal,2012,(95):218 223

[30]Rodeh O,Bacik J,Mason C.BTRFS:The Linux B-Tree filesystem[J].ACM Trans on Storage,2013,9(3):1 9

[31]Ganger G R,Mckusick M K,Soules C A N,et al.Soft updates:A solution to the metadata update problem in file systems[J].ACM Trans on Computer System,2000,18(2):127 153

[32]Stein C A,Howard J H,Seltzer M I.Unifying file system protection[C]??Proc of the 7th USENIX Annual Technical Conf(USENIX ATC).Berkeley,CA:USENIX Association,2001:79 90

[33]Spillane R,Gaikwad S,Chinni M,et al.Enabling transactional file access via lightweight kernel extensions[C]??Proc of the 7th USENIX Conf on File and Storage Technologies(FAST).Berkeley,CA:USENIX Association,2009:29 42

[34]Chidambaram V,Sharma T,Arpaci-Dusseau A C,et al.Consistency without ordering[C]??Proc of the 10th USENIX Conf on File and Storage Technologies(FAST).Berkeley,CA:USENIX Association,2012:9 21

[35]Ma A,Dragga C,Arpaci-Dusseau A,et al.Ffsck:The fast file-system checker[J].ACM Trans on Storage(TOS),2014,10(1):2 14

[36]Detlev R.Flash Memories,Economic Principles of Performance,Cost and Reliability Optimization[M].Berlin:Springer,2014

[37]Lu Youyou,Shu Jiwu.Survey on flash-based storage systems[J].Journal of Computer Research and Development,2013,50(1):49 59(in Chinese)(陸游游,舒繼武.閃存存儲系統綜述[J].計算機研究與發展,2013,50(1):49 59)

[38]Agrawal N,Prabhakaran V,Wobber T,et al.Design tradeoffs for SSD performance[C]??Proc of the 14th USENIX Annual Technical Conf(USENIX ATC).Berkeley,CA:USENIX Association,2008:57 70

[39]Boboila S,Desnoyers P.Write endurance in flash drives:Measurements and analysis[C]??Proc of the 8th USENIX Conf on File and Storage Technologies(FAST).Berkeley,CA:USENIX Association,2010:9 21

[40]Grupp L M,Caulfield A M,Coburn J,et al.Characterizing flash memory:Anomalies,observations,and applications[C]??Proc of the 42nd Annual IEEE?ACM Int Symp on Microarchitecture Conf(MICRO).Piscataway,NJ:IEEE,2009:24 33

[41]Chen S.FlashLogging:Exploiting flash devices for synchronous logging performance[C]??Proc of the 28th ACM SIGMOD Int Conf on Management of Data.New York:ACM,2009:73 86

[42]Liu X,Salem K.Hybrid storage management for database systems[C]??Proc of the 32nd ACM SIGMOD Int Conf on Management of Data.New York:ACM,2013:541 552

[43]Zhang N,Tatemura J,Patel J,et al.Re-evaluating designs for multi-tenant OLTP workloads on SSD-basedI?O subsystems[C]??Proc of the 33rd ACM SIGMOD Int Conf on Management of Data.New York:ACM,2014:1383 1394

[44]Park S,Ji H Y,Seong Y O.Atomic write FTL for robust flash file system[C]??Proc of the 9th Int Symp on Consumer Electronics(ISCE).Piscataway,NJ:IEEE,2005:155 160

[45]Fan Y,Meng X.MixSL:An efficient transaction recovery model in flash-based DBMS[G]??LNCS 7923:Proc of the 14th Int Conf on Web-Age Information Management.Berlin:Springer,2013:393 404

[46]Prabhakaran V,Rodeheffer T L,Zhou L.Transactional flash[C]??Proc of the 8th USENIX Conf on Operating Systems Design and Implementation(OSDI).Berkeley,CA:USENIX Association,2008:147 160

[47]On S T,Xu J,Choi B,et al.Flag commit:Supporting efficient transaction recovery in flash-based DBMSs[J].IEEE Trans on Knowledge and Data Engineering,2012,24(9):1624 1639

[48]Kulkarni N,Gopinath K.Quick recovery in transactional flash[C]??Proc of 2013IEEE Int Conf on Electronics,Computing and Communication Technologies(CONECCT).Piscataway,NJ:IEEE,2013:1 6

[49]Xiangyong O,Nellans D,Wipfel R,et al.Beyond block I?O:Rethinking traditional storage primitives[C]??Proc of the 17th IEEE Int Symp on High Performance Computer Architecture(HPCA).Piscataway,NJ:IEEE,2011:301 311

[50]FusionIO Inc.In a battle of hardware,software innovation comes out on top[EB?OL].FusionIO Research Center Blog,[2014-04-26].http:??www.fusionio.com?blog?in-a-battle-ofhardware-software-innovation-comes-out-on-top

[51]Lu Youyou,Shu Jiwu,Guo Jia,et al.LightTx:A lightweight transactional design in flash-based SSDs to support flexible transactions[C]??Proc of the 31st IEEE Int Conf on Computer Design(ICCD).Piscataway,NJ:IEEE,2013:115 122

[52]Shi Wei,Wang Dongsheng,Wang Zhanye,et al.M bius:A high performance transactional SSD with rich primitives[C]??Proc of the 30th Symp on Mass Storage Systems and Technologies(MSST).Piscataway,NJ:IEEE,2014:1 11

[53]Wang Peng,Sun Guangyu,Jiang Song,et al.An efficient design and implementation of LSM-tree based key-value store on open-channel SSD[C]??Proc of the 9th European Conf on Computer Systems(EuroSys).New York:ACM,2014:1 14

[54]Gao S,Xu J,He B,et al.PCMLogging:Reducing transaction logging overhead with PCM[C]??Proc of the 20th ACM Int Conf on Information and Knowledge Management(CIKM).New York:ACM,2011:2401 2404

[55]Lee E,Bahn H,Noh S H.Unioning of the buffer cache and journaling layers with non-volatile memory[C]??Proc of the 11th USENIX Conf on File and Storage Technologies(FAST).Berkeley,CA:USENIX Association,2013:73 80

[56]Zhao J,Li S,Yoon D H,et al.Kiln:Closing the performance gap between systems with and without persistence support[C]??Proc of the 46th Annual IEEE? ACM Int Symp on Microarchitecture(MICRO).Piscataway,NJ:IEEE,2013:421 432

[57]Lu Youyou,Shu Jiwu,Sun Long,et al.Loose-ordering consistency for persistent memory[C]??Proc of the 32nd IEEE Int Conf on Computer Design(ICCD).Piscataway,NJ:IEEE,2014:216 223

[58]Wang T,Johnson R.Scalable logging through emerging nonvolatile memory[C]??Proc of the 40th Int Conf on Very Large Data Bases(VLDB).New York:ACM,2014:865 876

[59]Caulfield A M,De A,Coburn J,et al.Moneta:A highperformance storage array architecture for next-generation,non-volatile memories[C]??Proc of the 43rd Annual IEEE? ACM Int Symp on Microarchitecture(MICRO).Piscataway,NJ:IEEE,2010:385 395

[60]Coburn J,Bunker T,Schwarz M,et al.From ARIES to MARS:Transaction support for next-generation,solid-state drives[C]??Proc of the 24th ACM Symp on Operating Systems Principles(SOSP).New York:ACM,2013:197 212

[61]Mohan C,Lindsay B.Efficient commit protocols for the tree of processes model of distributed transactions[J].SIGOPS Operating System Review,1985,19(2):40 52

Shi Wei,born in 1988.PhD.Member of China Computer Federation.His research interests include flash-based storage and file systems.

Wang Dongsheng,born in 1966.PhD,professor and PhD supervisor.Senior member of China Computer Federation,member of IEEE.His research interests include computer architecture,high performance computing,storage and file systems,and network security(wds@tsinghua.edu.cn).

Survey on Transactional Storage Systems Based on Non-Volatile Memory

Shi Wei1and Wang Dongsheng1,21(Department of Computer Science and Technology,Tsinghua University,Beijing100084)2(Tsinghua National Laboratory for Information Science and Technology(TNLIST),Beijing100084)

With the emergence and further widespread use of non-volatile memory,the storage architecture is undergoing fundamental change.Transaction processing technologies in traditional database systems and file systems are mostly designed for rotating disks while they cannot take full advantage of new features of non-volatile memory.To take full advantage of the non-volatile memory characteristics and narrow the gap between system I?O performance and CPU processing performance,transactional storage systems and technologies designed based on non-volatile memory have gained focus and great popularity.In this paper,current status of the software layer transaction processing technologies,which are used in traditional database systems and file systems,are addressed in brief firstly.Then based on the division of non-volatile memory which includes flash and phase-change memory,the existing transactional storage systems based on non-volatile memory are discussed.Finally,the research works are summarized and the possible research directions are pointed out.Among the discussion,for the research of transactional flash-based storage systems,analysis of the optimization of transaction processing technologies using traditional host interface flash storage devices is given first,followed by analysis and comparison of the characteristics of the transaction flash storage systems using dedicated transactional interfaces.For the research of transactional PCM-based transactional storage systems,using PCM in both main memory and external storage environment for transaction processing is analyzed and compared,and the key technologies including the combination of log and cache and fine-grained logging are discussed.

non-volatile memory;flash memory;phase change memory(PCM);transaction processing;transactional storage system;I?O stack

TP302.1

2014-12-10;

2015-05-18

國家自然科學基金項目(61373025,61303002);國家“八六三”高技術研究發展計劃基金項目(2012AA010905)This work was supported by the National Natural Science Foundation of China(61373025,61303002)and the National High Technology Research and Development Program of China(863Program)(2012AA010905).

猜你喜歡
數據庫設備
諧響應分析在設備減振中的應用
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何在設備采購中節省成本
主站蜘蛛池模板: 欧美中文一区| 日韩精品无码免费一区二区三区| 99精品免费在线| 久久午夜夜伦鲁鲁片不卡| 欧美午夜在线观看| 日本黄色不卡视频| 情侣午夜国产在线一区无码| 成人日韩欧美| 视频在线观看一区二区| 中文天堂在线视频| 激情综合五月网| 欧美亚洲中文精品三区| 国产精品不卡永久免费| 日本手机在线视频| 国产门事件在线| 国产www网站| 国产一区成人| 久久综合色天堂av| 亚洲人成网18禁| 久久特级毛片| 国产不卡网| 国产一二三区视频| 天天综合网亚洲网站| 国产精品手机在线观看你懂的| 91网在线| 性网站在线观看| 伊人成人在线视频| 午夜不卡视频| 黄色网站在线观看无码| 91精品国产无线乱码在线| 精品国产91爱| 99re视频在线| 免费一级无码在线网站| 国产极品美女在线播放| 国产99久久亚洲综合精品西瓜tv| 欧美va亚洲va香蕉在线| 成人国产免费| 日韩精品亚洲精品第一页| 国产超碰一区二区三区| 超碰91免费人妻| 亚洲成人高清在线观看| 国产黄网站在线观看| 色综合五月| 亚洲成A人V欧美综合天堂| av一区二区无码在线| 成人一区专区在线观看| 亚洲精品国产成人7777| 高清色本在线www| 欧美日韩一区二区在线免费观看 | 毛片久久久| 国产区人妖精品人妖精品视频| 日韩毛片基地| 亚洲午夜国产精品无卡| 国产精品免费p区| 国产啪在线91| 久久香蕉国产线| 久久久久久久97| 九九久久精品免费观看| 婷婷伊人五月| 国产99在线观看| 国产精品亚洲一区二区三区z| 国产91无码福利在线| 国产一区二区人大臿蕉香蕉| 亚洲国语自产一区第二页| 亚洲VA中文字幕| 人人看人人鲁狠狠高清| 日韩精品一区二区三区中文无码| 免费jjzz在在线播放国产| 亚洲熟妇AV日韩熟妇在线| 国产区在线观看视频| 国产精品妖精视频| 国产在线观看91精品亚瑟| 不卡色老大久久综合网| 亚洲精品高清视频| 免费三A级毛片视频| 国产精品白浆无码流出在线看| 国产在线视频二区| 日韩精品专区免费无码aⅴ| 国产区免费| 亚洲精品高清视频| 在线观看国产网址你懂的| 亚洲精品国产自在现线最新|