簡體   English   中英

內存數據庫如何持久化數據

[英]How in-memory databases persist data

我一直在研究內存數據庫的概念。 關於那條的文章說,

內存數據庫系統是一種將數據完全存儲在主內存中的數據庫管理系統。

他們討論了此概念的優缺點。

我的問題是,如果這些數據庫管理系統完全將數據存儲在主存儲器中,

停電后所有數據都消失了嗎???

或有什么方法可以保護數據???

大多數內存數據庫系統都提供持久性,至少作為一種選擇。 這是通過事務記錄實現的。 正常關閉時,將保存內存數據庫映像。 當下一次重新打開時,將加載先前保存的圖像,此后,提交給內存數據庫的每個事務也將附加到事務日志文件中。 如果系統異常終止,則可以通過重新加載原始數據庫映像並從事務日志文件中重放事務來恢復數據庫。

該數據庫仍然全部在內存中,因此必須有足夠的可用系統內存來存儲整個數據庫,這使其與持久性數據庫有所不同,持久性數據庫僅將一部分緩存在內存中。 因此,消除了高速緩存命中或高速緩存未命中的不可預測性。

將事務追加到日志文件通常可以同步或異步完成,這將具有非常不同的性能特征。 如果未從文件系統緩沖區中刷新已提交的事務,並且系統意外關閉(即內核崩潰),則異步事務日志記錄仍可能會丟失已提交的事務。

保證內存中數據庫事務日志記錄僅會發生一個文件I / O,以將事務附加到日志文件。 事務的大小無關緊要,它仍然只是寫入持久性介質。 此外,寫入始終是順序的(始終附加到日志文件中),因此即使在旋轉媒體上,性能影響也要盡可能小。

不同的介質將對性能產生或多或少的影響。 HDD的影響最大,其次是SSD,其次是內存層閃存(例如FusionIO PCIExpress卡),而對NVDIMM內存的影響最小。

NVDIMM內存可用於存儲內存數據庫,或存儲事務日志以進行恢復。 NVDIMM的最大內存大小小於常規內存大小(並且更昂貴),但是如果內存數據庫的大小為數GB,則此選項可以保留內存數據庫100%的性能,同時還提供相同的持久性作為持久性媒體上的常規數據庫。

本白皮書對內存數據庫的性能進行了比較,並將事務記錄到HDD,SSD和FusionIO: http ://www.automation.com/pdf_articles/mcobject/McObject_Fast_Durable_Data_Management.pdf

以及本文中的NVDIMM: http ://www.odbms.org/wp-content/uploads/2014/06/IMDS-NVDIMM-paper.pdf

這些論文是由我們(McObject)撰寫的,但與供應商無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM