In-Memory Database

簡介

In-memory database(IMDB),即記憶體資料庫,是一種依賴於主存作為數據存儲介質的一種資料庫管理系統。相比傳統的基於磁碟的資料庫管理系統,IMDB速度快得多。這取決於CPU能夠直接訪問IMDB,在I/O路徑與延遲方面有了質的飛躍。另外,CPU本身提供的原子操作,記憶體柵障以及高速快取沖刷指令可以為IMDB提供簡單高效的原子性,一致性服務。

功能

  • 永久數據的管理,包括資料庫的定義、存儲、維護等
  • 完成各種數據操作,如查詢處理、存取、完整性檢查
  • 事務管理,包括調度與並發控制等
  • 對存取的控制和安全性檢驗
  • 具有資料庫的可靠性恢復機制

對比

我們將對傳統硬碟資料庫同IMDB的功能和特性做一個簡單的對比。

產品

Oracle TimesTen

Oracle 的記憶體資料庫 TimesTen 從某種角度上來看,也是一種 Cache 機制,是磁碟資料庫的 'Cache',通過物理記憶體中的數據存儲區的直接操作,減少了到磁碟間的 I/O 互動。TimesTen 中的這個 Ten 據說就是指速度能達到基於磁碟的 RDBMS 10倍,從2013開始在國內市場也有很多活動,逐漸吸引了很多技術人員的注意。實際上,這個產品也是有一定潛在市場的。
TimesTen與磁碟資料庫的比較

eXtremeDB

eXtremeDB實時資料庫是一款特別為實時與嵌入式系統數據管理而設計的資料庫,只有50K到130K的開銷,速度達到微秒一級。接口語言包括C、C++、嵌入式SQL、JNI等,通過定製資料庫根據套用動態生成。使用時通過接口編程,編譯連結時將eXtremeDB核心嵌入到應用程式中。eXtremeDB完全駐留在主記憶體中,不使用檔案系統(包括記憶體盤在內)。eXtremeDB通過交易機制保證數據一致性來支持本地多進程或多執行緒,通過RPC或RSQL實現網路化訪問。eXtremeDB通過eXtremeLog實現磁碟鏡像、通過eXtremeHA實現記憶體鏡像進行自動線上備份以保證數據安全。eXtremeDB支持各種平台,包括Solaris、HPUX、Windows、Linux、VxWorks、eCos等各種OS,運行在x86、ARM、PowerPC、MIPS等各種處理器上。體驗eXtremeDB會有一種耳目一新的感覺。

SQL Server

新一代微軟SQL Server 2014中增加了IMDB的最新技術。SQL Server 2014的記憶體最佳化表對索引的處理方式與傳統表相比差別很大。所有的數據結構設計都是為了記憶體而做的最佳化,沒有鎖、沒有Launch,這都是前所未有的。在資料庫日誌方面,SQL Server採用的日誌和一般的事務日誌相比較而言,更加精簡、小巧,極大的減少了I/O數量;對於有I/O瓶頸的企業,如果使用In-Memory技術,在性能上會有極大的提高。SQL Sever 2014的正式版本已發布。相信這一突破性技術,在改善和提升企業處理日常事務的效率上帶來顯著效果。

套用及未來

在一些對回響時間要求極其嚴格的場合,比如電信運營,工業控制,航空醫療等等,IMDB是最佳選擇。隨著記憶體價格越來越偏移,IMDB在新千年初期開始被大量使用,尤其在數據分析領域。
幾年來,非易失性記憶體得到高速發展,更是使得IMDB可以實現本地持久化,逐漸脫離了緩慢的磁碟。NVDIMM作為非易失性記憶體中異軍突起的一員,相比其他一些方案的非易失性記憶體,速度快,容量高,成本低,實為IMDB的最佳存儲介質。引入NVDIMM技術後,IMDB將會以最大馬力馳騁於眾伺服器中,並且能夠在系統掉電時維持數據。美國mcobject公司宣布已成功將eXtremeDB移植於Agiga公司的NVDIMM產品,並公布了其基準測試結果。該測試包括“終止執行”,證實了AGIGA的NVDIMM產品在系統故障時持久存儲數據的能力,並促進數據恢復。下圖所示為插入,更新與刪除操作的測試結果。

相關詞條

熱門詞條

聯絡我們