馮文堂 王紀梅

[摘要]隨著計算機信息技術的飛速發展,數據存儲及控制的效率得到了全面的提升,,在此背景下,內存數據庫技術逐漸成為了現階段數據庫研究的熱點課題之一。與傳統的磁盤數據庫相比,內存數據庫的讀寫速度實現的大大的提升,同時極大地提高了數據應用的性能,因此內存數據庫的數據處理速度比傳統數據庫的處理速度快十倍以上。基于上述原因,本文對內存數據庫的基本概念進行了闡述,并對其中的關鍵技術進行了深入淺出的研究和總結。
[關鍵詞]內存數據庫;并發控制;恢復技術
[中圖分類號]G250.74 [文獻標識碼]A [文章編號]1672-5158(2013)06-0050-01
1 內存數據庫概論
1.1 內存數據庫的概念
內存數據庫指的是:一種將數據存儲在內存中,并可以實現直接操作的數據庫。內存數據庫在計算機信息系統中有著嚴謹的定義:設定DBS為一個數據庫系統,DB為該數據庫系統中的數據庫,DBM(t)代表t時刻中出現在DB中的數據集合,AT(t)代表t時期時處于活動狀態的事物集合,Dt(T)則是事物集在t時刻進行操作的數據集。在上述條件滿足的情況下,如任意t時刻時,滿足T隸屬于AT(t)且Dt(T)隸屬于DBM(t),則將DBS成為一個內存數據庫系統,一般用MMDBS簡稱;同時稱DB為一個內存數據庫,并簡稱為MMDB。
1.2 內存數據庫的特點
內存數據庫技術具有以下幾方面特性:
第一,以較為復雜的模型代表數據框架,具有良好的數據擴展性,能夠使數據得到充分利用。
第二,具有方便的用戶接口,數據和程序的獨立性也十分高。
第三,具有并發控制、故障恢復、完整性及安全性四個方面的數據控制性能。在數據庫的支配管理下,各個程序中的數據由系統進行統一管理和集中控制。
第四,大大提升了系統的靈活性和數據的讀寫速率。
2 內存數據庫中的關鍵技術
2.1 并發控制技術
并發控制是內存數據庫中較為典型的關鍵技術之一。由于內存數據庫存在于系統內存中,因此在并發控制上有著其獨特的設計思路,具體體現在以下幾方面:
第一,基于并發控制技術的背景下,事務鎖的時間通常較短,因此由于鎖造成的競爭也較短。這主要是因為內存數據庫的數據訪問速度通常較快,數據與數據之間的交換銜接時間也較短。
第二,很多內存數據庫系統都需要采用事務并發執行的方式完成數據采集和交換,為了保證這一過程實施的安全性和可靠性,通常采用粗粒度鎖作為輔助,以此降低鎖的開銷。對于一些較為復雜的內存數據庫系統,采用傳統、單一的加鎖方式很難滿足實際需求,則在進行內存數據設計的時候通常考慮應用多粒度鎖體系,例如表鎖、數據庫鎖或記錄鎖。
此外,由于內存數據庫技術對系統系能的要求較高,在實際設計過程中需要充分借用內存的優勢并結合內存數據庫的特性,盡量減少并發控制對性能的不良影響。當然,上述設計需要建立在保證事物ACID的基礎上。
2.2 故障恢復技術
由于內存數據庫中,內存是數據存儲的主要單元,而內存本身的不穩定性較高,導致內存數據庫發生系統故障的頻率也比較高。因此,構建有效的故障恢復機制對于內存數據庫就顯得意義非凡。目前,應用于內存數據庫的主流故障恢復技術包含日志、檢驗點和內存數據庫重裝三類。
第一,日志。日志中的系統運行記錄將內存數據庫系統運行時的信息詳盡地保存了下來,在事務恢復執行之前,由日志記錄下的數據鏡像便被很好地裝入內存之中。換句話說,日志為內存數據庫的故障恢復提供了相應的技術依據。
第二,檢驗點。檢驗點操作時,內存數據庫一般能夠處于靜止狀態,此時能夠對系統數據的整體或部分進行有效記錄,并以此作為故障發生后的恢復數據鏡像。目前,Fuzzy checkpoint是應用于內存數據庫系統中最為廣泛的檢驗點技術,該技術能夠實現任意時間點的數據檢驗,且不受事物或動作狀態的限制,具有很好的應用效應。
第三,內存數據庫重裝。重裝技術是一種將數據庫外存版SDB恢復到內存版MDB的技術過程,主要分為完整重裝和部分重裝兩部分。當系統出現掉電故障或初裝狀態時,一般應用完整重裝對內存數據庫系統進行故障恢復;而當內存介質發生故障或內存不能存儲于數據庫整體時,則應用部分重裝操作實現對內存數據庫系統的故障恢復,換人數據的選取是應用部分重裝操作的關鍵環節。
2.3 索引技術
傳統的磁盤數據庫采用B/B+樹的索引技術,此技術能夠有效減少方位磁盤數據的I/O次數,然而,該項技術并適合內存數據庫系統。目前,主流的內存數據庫一般選用T樹索引技術,這是一項根據AVL樹和B樹發展而來的技術。
喇索引技術融合了AVL樹技術和B樹技術的優點,既具有AVL樹的二分查找性能,又具備B樹良好的更新及數據存儲性能。在進行并發控制時,由于T樹比B樹高,因此需要更多的鎖才能完成并發控制流程,所以應用喇進行索引時,加鎖和解鎖的代價比應用B樹時要高很多。以下為喇的節點結構示意圖:
由于采用了喇結構,內存數據庫中只需存放指向相應記錄對應字段的指針,因此使索引中變長字段的存儲問題得到了很好地解決。此外,在T樹索引技術背景下,指針的長度一般也比其指向字段的長度小,因此節省了大量的內存空間,使系統的運行也變得更為流暢。
結論
本文對內存數據庫中的幾個重要關鍵技術進行了簡要介紹和分析,通過對比發現,內存數據庫技術相比于傳統的磁盤數據庫技術有著其明顯的優勢之處。隨著計算機數據庫技術應用的領域逐漸深入,有關內存數據庫技術新的研究成果也將不斷涌現,例如在電信、軍事、工業控制等領域,內存數據庫技術的引入和應用已成為大勢所趨。因此,我們有理由相信未來對內存數據庫技術的研究也將得到進一步拓展。
參考文獻
[1]曹猗宣,王晶,內存數據庫在彩鈴業務中的應用[J]計算機系統應用,2011,20(5)
[2]楊武軍,張繼榮,屈軍鎖,內存數據庫技術綜述l JIl西安郵電學院學報,2005,10(3)
[5l袁培森,皮德常,用于內存數據庫的Hash索引的設計與實現[J],計算機工程,2007,33(18)