江澤源, 劉輝林, 吳 剛, 王國仁
(東北大學(xué) 信息科學(xué)與工程學(xué)院,沈陽110004)
內(nèi)存數(shù)據(jù)庫(Memory-Resident Database或 Main Memory Database,MMDB)將工作用的數(shù)據(jù)集放置于物理內(nèi)存中,由于存儲(chǔ)介質(zhì)的特性不同,相對(duì)于常規(guī)的磁盤數(shù)據(jù)庫(Disk-Resident Database,DRDB),內(nèi)存數(shù)據(jù)庫具有更高的訪問速度和更低的系統(tǒng)延遲,并且不受磁盤I/O瓶頸限制.在內(nèi)存價(jià)格不斷降低、容量迅速擴(kuò)大的今天,富有競(jìng)爭(zhēng)力的內(nèi)存數(shù)據(jù)庫產(chǎn)品已經(jīng)應(yīng)用于網(wǎng)絡(luò)、通信、實(shí)時(shí)處理等多種行業(yè)領(lǐng)域.
根據(jù)用戶需求的不同,內(nèi)存數(shù)據(jù)庫產(chǎn)品在追求高性能的同時(shí),也需提供相應(yīng)的可用性保證.內(nèi)存是一種易失性的存儲(chǔ)介質(zhì),斷電后數(shù)據(jù)丟失,且處理復(fù)雜任務(wù)時(shí)易崩潰.保證系統(tǒng)實(shí)現(xiàn)不間斷的服務(wù),盡量縮短停機(jī)(Downtime)時(shí)間,減少用戶和服務(wù)提供者的損失,是內(nèi)存數(shù)據(jù)庫面臨的重大挑戰(zhàn).
本文主要關(guān)注內(nèi)存數(shù)據(jù)庫的可用性問題,首先通過歸納相關(guān)文獻(xiàn)中關(guān)于系統(tǒng)的可用性定義,給出了內(nèi)存數(shù)據(jù)庫可用性的解釋,包括可用性的描述、度量、表現(xiàn)方面;接著從內(nèi)存數(shù)據(jù)易失的特性入手,探究了內(nèi)存數(shù)據(jù)庫提高可用性的方法,著重關(guān)注了包括檢查點(diǎn)、日志、恢復(fù)協(xié)議的快速恢復(fù)策略,和以熱備份、集群內(nèi)復(fù)制為代表的容錯(cuò)機(jī)制;最后進(jìn)行概括總結(jié),并做出了展望.
內(nèi)存數(shù)據(jù)庫將工作數(shù)據(jù)集存放在內(nèi)存中,相對(duì)于常規(guī)磁盤數(shù)據(jù)庫,其存取速率有了極大的提高.磁盤中存儲(chǔ)日志文件和相關(guān)映像備份,數(shù)據(jù)的存取工作盡量不再涉及磁盤的I/O操作,以達(dá)到更高的效率,此時(shí)系統(tǒng)的主要矛盾將不再是磁盤的I/O操作時(shí)間.
由于存儲(chǔ)介質(zhì)不同,內(nèi)存數(shù)據(jù)庫在索引結(jié)構(gòu)、存儲(chǔ)管理、并發(fā)控制等方面有許多技術(shù)上的改進(jìn)[1].
高存取速率帶來的高吞吐量,以及特殊應(yīng)用的實(shí)時(shí)性響應(yīng)需求,導(dǎo)致內(nèi)存數(shù)據(jù)庫系統(tǒng)的負(fù)載往往過高;易失性存儲(chǔ)器帶來數(shù)據(jù)丟失風(fēng)險(xiǎn),意外事故導(dǎo)致的數(shù)據(jù)破壞,可能直接導(dǎo)致財(cái)產(chǎn)的嚴(yán)重?fù)p失,這也是系統(tǒng)所面臨的挑戰(zhàn).從內(nèi)存數(shù)據(jù)易失的角度來看,提升有關(guān)可用性水平的技術(shù)是內(nèi)存數(shù)據(jù)庫研究的重要方向之一.
數(shù)據(jù)庫的可用性(Availability)概念經(jīng)常出現(xiàn)在文獻(xiàn)中,但是至今尚未有標(biāo)準(zhǔn)的、統(tǒng)一的定義.從傳統(tǒng)數(shù)據(jù)庫系統(tǒng)的角度來說,可用性指系統(tǒng)提供的特定的服務(wù)等級(jí),當(dāng)用戶或某個(gè)進(jìn)程訪問數(shù)據(jù)庫時(shí),它是可用的[2].或者描述為在給定的時(shí)間內(nèi),數(shù)據(jù)庫可用的時(shí)間比例,即數(shù)據(jù)庫按照要求能夠正常運(yùn)行的概率.可用性的概念常常和可靠性(Reliability)一起出現(xiàn),可靠性多指一個(gè)數(shù)據(jù)庫在一個(gè)給定的時(shí)間間隔內(nèi)不產(chǎn)生失敗的概率[3].同時(shí),可恢復(fù)性、可持續(xù)使用等概念也是構(gòu)成可用性的相關(guān)概念.
系統(tǒng)應(yīng)當(dāng)具有即時(shí)響應(yīng)的能力,但當(dāng)斷電(Outage)情況出現(xiàn),系統(tǒng)服務(wù)失效,數(shù)據(jù)庫變得不可用,經(jīng)常使用停機(jī)一詞來描述系統(tǒng)不可用時(shí)的那段狀態(tài).停機(jī)可被分為兩大類,即系統(tǒng)遇到意外停機(jī)(Unexpected Downtime),如應(yīng)用程序運(yùn)行錯(cuò)誤、硬件故障、斷電,和計(jì)劃內(nèi)的停機(jī)(Scheduled Downtime),如系統(tǒng)硬件更換、軟件升級(jí).設(shè)計(jì)者需要在一定的成本約束下,在用戶的容忍范圍下,將系統(tǒng)盡可能地保持可用[4].
相對(duì)于不同應(yīng)用的系統(tǒng),可用性要求也不盡相同.學(xué)校的成績(jī)管理系統(tǒng)可能只需要一個(gè)較低的可用性等級(jí)就可以滿足學(xué)生查詢分?jǐn)?shù)的要求,而銀行的管理系統(tǒng)則需要很高的可用性等級(jí),保證各項(xiàng)業(yè)務(wù)的周轉(zhuǎn)正常,否則可能導(dǎo)致嚴(yán)重的損失.
通常用平均故障間隔時(shí)間(MTBF)和平均修復(fù)時(shí)間(MTTR)來度量一個(gè)計(jì)算機(jī)系統(tǒng)的可用性,數(shù)據(jù)庫系統(tǒng)也參照這些概念,它們的定義見表1.
可用公式(MTBF/(MTBF+MTTR))對(duì)系統(tǒng)的可用性水平進(jìn)行計(jì)算,計(jì)算結(jié)果可近似作為可用性等級(jí)的標(biāo)準(zhǔn).在文獻(xiàn)[5]中,作者根據(jù)當(dāng)時(shí)的系統(tǒng)情況描述了一些典型的系統(tǒng)可用性等級(jí)[5],見表2.
表1 MTBF和MTTR概念圖Tab.1 The concept of MTBF and MTTR
通常用“N個(gè)9”來描述表2中可用性一列,“5個(gè)9”,即99.999%的高可用性(High A-vailability,HA)[6],意味著系統(tǒng)每年約有5分鐘的停機(jī)時(shí)間,這是數(shù)據(jù)庫系統(tǒng)中常使用的概念,這一特性也被許多內(nèi)存數(shù)據(jù)庫產(chǎn)品寫入其技術(shù)文檔中.
近年來持續(xù)增長(zhǎng)的海量數(shù)據(jù),催生了NoSQL非關(guān)系型數(shù)據(jù)庫的迅速發(fā)展,其中也有Redis這樣的內(nèi)存型NoSQL數(shù)據(jù)庫.Eric Brewer在2000年提出的CAP理論[7],其定義是:一致性(Consistency)、可用性(Availability)、分區(qū)容忍性(Partition tolerance)這個(gè)三個(gè)屬性,只能同時(shí)滿足其中兩個(gè)屬性.CAP理論數(shù)年后被證明[8],并成為NoSQL數(shù)據(jù)庫設(shè)計(jì)和實(shí)現(xiàn)的重要理論之一.其中,“可用性”的定義與上述有微妙差別.這里的可用性指,如果客戶可以同集群中的某個(gè)節(jié)點(diǎn)通信,那么該節(jié)點(diǎn)必然能夠處理讀取及寫入操作.
內(nèi)存數(shù)據(jù)庫中,特別是集群環(huán)境中,內(nèi)存數(shù)據(jù)易失,復(fù)雜處理易崩潰,這與傳統(tǒng)的磁盤數(shù)據(jù)庫在可用性和可靠性方面有一定差別.
顯然,內(nèi)存數(shù)據(jù)庫提升可用性的措施涉及到多個(gè)方面:使用更可靠的硬件,如使用更穩(wěn)定的內(nèi)存;在系統(tǒng)運(yùn)行時(shí)通過監(jiān)督等機(jī)制預(yù)防或及時(shí)發(fā)覺可能出錯(cuò)的地方,如在應(yīng)用程序中加入異常狀況的處理;當(dāng)意外停機(jī)發(fā)生時(shí),尋找更快速的恢復(fù)策略;或使用備份的方式,在當(dāng)前節(jié)點(diǎn)中斷服務(wù)后備份節(jié)點(diǎn)立即替代.
本文主要闡述在單機(jī)或集群環(huán)境中,內(nèi)存數(shù)據(jù)的可恢復(fù)性及任務(wù)執(zhí)行的可用性,主要關(guān)注數(shù)據(jù)快速恢復(fù)、系統(tǒng)容錯(cuò),涉及檢查點(diǎn)技術(shù)、日志技術(shù)、復(fù)制技術(shù).
在內(nèi)存數(shù)據(jù)庫中,磁盤中不再存儲(chǔ)工作數(shù)據(jù)集,而是主要用于持久化操作(多指日志和映像備份)與其他附加信息的存儲(chǔ).由IBM提出的ARIES[9](Algorithm for Recovery and Isolation Exploiting Semantics)算法是以日志記錄、事務(wù)表、臟頁表為主要信息進(jìn)行分析、撤銷、重做的算法,是經(jīng)典的數(shù)據(jù)庫恢復(fù)策略.很多內(nèi)存數(shù)據(jù)庫產(chǎn)品使用這一原則并加以改進(jìn),以追求準(zhǔn)確的恢復(fù)結(jié)果和更高的恢復(fù)速度.
檢查點(diǎn)是避免消耗大量時(shí)間檢查日志的策略,檢查點(diǎn)配合相關(guān)日志可以進(jìn)行數(shù)據(jù)庫的恢復(fù).優(yōu)秀的檢查點(diǎn)技術(shù)和日志恢復(fù)策略可以減少檢查點(diǎn)對(duì)正常事務(wù)的影響,減輕系統(tǒng)恢復(fù)的開銷,也可以減少日志文件的大小,是提升恢復(fù)速度的關(guān)鍵.
檢查點(diǎn)作為事務(wù)回滾的起點(diǎn),在內(nèi)存數(shù)據(jù)庫中通常作為內(nèi)存映像保存起來.
模糊檢查點(diǎn)(Fuzzy Checkpointing)[10]是一類支持檢查點(diǎn)和事務(wù)同時(shí)進(jìn)行的技術(shù),在檢查點(diǎn)開始的同時(shí)記錄一個(gè)活動(dòng)中事務(wù)的列表,與此同時(shí)進(jìn)行檢查點(diǎn)的生成.由于列表事務(wù)可能對(duì)某些數(shù)據(jù)元素進(jìn)行了更改,故需要事務(wù)日志來記錄上述活動(dòng)部分,以表明將來是撤銷還是回滾,并結(jié)合檢查點(diǎn)用于恢復(fù).由于這種檢查點(diǎn)生成的映像是不明確的,故稱為模糊檢查點(diǎn).“靜態(tài)的”檢查點(diǎn)技術(shù)不支持檢查點(diǎn)和事務(wù)的同時(shí)進(jìn)行,顯然,模糊檢查點(diǎn)記錄避免了可用性損失,但也增加了管理上的復(fù)雜性.
乒乓(Ping-Pong)模糊檢查點(diǎn)也是實(shí)現(xiàn)模糊檢查點(diǎn)的一種措施,該算法[11]將模糊檢查點(diǎn)算法和乒乓算法結(jié)合,利用兩個(gè)映像文件,每次僅更新其中的一個(gè),如此交替進(jìn)行備份.其目的是避免制作檢查點(diǎn)時(shí)發(fā)生故障,導(dǎo)致該檢查點(diǎn)既無法完成,又無法回到上個(gè)狀態(tài).雖然消耗了更多的存儲(chǔ)空間,但兵乓模糊檢查點(diǎn)是一種更加可靠的、適用內(nèi)存數(shù)據(jù)庫的檢查點(diǎn)策略.
文獻(xiàn)[12]提出了一種改進(jìn)的分區(qū)模糊檢查點(diǎn)策略(Partition Fuzzy Checkpointing),該策略考慮了事務(wù)和數(shù)據(jù)“定時(shí)約束”,有以下幾條原則:(1)較短有效期的數(shù)據(jù)需盡早寫入到磁盤,減少數(shù)據(jù)損失;(2)短時(shí)限時(shí)序的數(shù)據(jù)無需寫入至磁盤,減少不必要開銷;(3)高頻的數(shù)據(jù)應(yīng)該優(yōu)先寫入至磁盤,減少日志處理時(shí)間;(4)關(guān)鍵的數(shù)據(jù)應(yīng)該優(yōu)先寫入到磁盤,保證重要數(shù)據(jù)不會(huì)丟失;(5)優(yōu)先級(jí)高的數(shù)據(jù)應(yīng)該優(yōu)先寫入到磁盤,保證重要任務(wù)在時(shí)限內(nèi)完成.此外,基于分區(qū)模糊檢查點(diǎn)策略的數(shù)據(jù)庫,對(duì)數(shù)據(jù)段檢查點(diǎn)的優(yōu)先級(jí)進(jìn)行邏輯分區(qū),依照較高優(yōu)先級(jí)的分區(qū)安排較高檢查點(diǎn)頻率的原則,在實(shí)驗(yàn)中表現(xiàn)出較好的性能.
模糊檢查點(diǎn)技術(shù)及其改進(jìn)技術(shù)廣泛應(yīng)用于TimesTen、Altibase等常見的內(nèi)存數(shù)據(jù)庫產(chǎn)品中,有效降低了檢查點(diǎn)工作時(shí)系統(tǒng)的負(fù)載,增強(qiáng)了系統(tǒng)的并發(fā)訪問能力.
常見的數(shù)據(jù)庫恢復(fù)“寫前日志”協(xié)議,要求被更改的數(shù)據(jù)元素要先寫入日志,以利用日志的內(nèi)容進(jìn)行恢復(fù).而一些內(nèi)存數(shù)據(jù)庫使用了LAW(Logging After Writing)日志協(xié)議[13],即“寫后日志”協(xié)議,該協(xié)議通常需要一個(gè)非易失的存儲(chǔ)器來記錄更改的數(shù)據(jù)元素.
在使用模糊檢查點(diǎn)“寫前日志”協(xié)議中,利用redo日志來進(jìn)行已提交事務(wù)的重做時(shí),最近的檢查點(diǎn)加上redo日志可能無法正確恢復(fù),此時(shí)需要向前掃描日志,找到上一個(gè)檢查點(diǎn).一個(gè)典型的例子[14]見圖1.A的舊值為5,redo日志(A,7)表示A的值將被更新為7.檢查點(diǎn)發(fā)生在此日志之后,由于采用了模糊檢查點(diǎn)算法,在檢查點(diǎn)記錄的過程中A的值可以更改,而恰巧這一更改未被檢查點(diǎn)記錄到.故障發(fā)生在事務(wù)T已經(jīng)結(jié)束后,故T需要重做.這樣一來,真正記錄下A真實(shí)值的日志出現(xiàn)在了比這個(gè)檢查點(diǎn)更早的時(shí)候,如果從檢查點(diǎn)向前至日志(A,7)這段范圍過長(zhǎng)的話,系統(tǒng)需要付出更多的掃描代價(jià).
圖1 一個(gè)典型的檢查點(diǎn)例子Fig.1 A typical instance of checkpoint
采用LAW日志協(xié)議后,最近的檢查點(diǎn)一定可以作為重做的起點(diǎn),redo日志的起點(diǎn)一定在該檢查點(diǎn)之后,這樣就避免了過多的向前查找日志,提高了數(shù)據(jù)庫系統(tǒng)恢復(fù)速率.
文獻(xiàn)[15]提出了一種不同于ARIES思想的command logging技術(shù),并將算法部署在VoltDB中.該主要特點(diǎn)是在日志中只記錄事務(wù)命令,而不是主要記錄數(shù)據(jù)元素的改變.當(dāng)需要恢復(fù)時(shí),從檢查點(diǎn)向后執(zhí)行事務(wù)命令,實(shí)現(xiàn)重新執(zhí)行事務(wù)的效果,其目的是降低恢復(fù)時(shí)的系統(tǒng)負(fù)載,但實(shí)驗(yàn)測(cè)試中相對(duì)于ARIES并沒有縮短系統(tǒng)恢復(fù)的時(shí)間.
冗余(Redundancy)是容錯(cuò)系統(tǒng)設(shè)計(jì)中的基本原則,其思想就是通過冗余數(shù)據(jù)實(shí)現(xiàn)更高的可用性.內(nèi)存數(shù)據(jù)庫系統(tǒng)可以采取主從備份的方式,主節(jié)點(diǎn)(工作節(jié)點(diǎn))在停機(jī)后,備節(jié)點(diǎn)及時(shí)接上,保證服務(wù)離線時(shí)間最短化.此外,在集群環(huán)境下,復(fù)制技術(shù)將主機(jī)數(shù)據(jù)備份到多個(gè)節(jié)點(diǎn)上,不僅能滿足可用性,實(shí)現(xiàn)快速恢復(fù),也防止了單個(gè)節(jié)點(diǎn)性能瓶頸的問題,實(shí)現(xiàn)負(fù)載平衡.
主從備份是常見的冗余策略,下面以O(shè)racle公司的TimesTen內(nèi)存數(shù)據(jù)庫的備份方案作為示例,見圖2.
圖2 TimesTen的Active-Standby方案Fig.2 Active Standby pair of TimesTen
TimesTen[16]是Oracle的優(yōu)化內(nèi)存的關(guān)系數(shù)據(jù)庫,在其備份方案中,主節(jié)點(diǎn)執(zhí)行更新操作,并將操作同步到備用節(jié)點(diǎn)上.備用節(jié)點(diǎn)同時(shí)將更改傳播至只讀的接收者(一般是遠(yuǎn)程的災(zāi)難備份).主節(jié)點(diǎn)失效后,備用節(jié)點(diǎn)升級(jí)為主節(jié)點(diǎn),接受應(yīng)用程序的直接操作.若是備份節(jié)點(diǎn)失效,那么主節(jié)點(diǎn)直接將更改發(fā)送至只讀接收者,待備用節(jié)點(diǎn)恢復(fù)之后,備用節(jié)點(diǎn)通知主節(jié)點(diǎn)將剛才缺失的更新再發(fā)送過來.TimesTen還利用了產(chǎn)品中的IMDB Cache技術(shù),提供了跨層次(Cross-Tier)的可用性方案,包括只讀緩存組和異步寫入緩存組,提供了Oracle和TimesTen的高效連接.
同步復(fù)制指每次復(fù)制必須等到所有拷貝結(jié)束后才算完成,使得復(fù)制數(shù)據(jù)在任何時(shí)間,任何復(fù)制節(jié)點(diǎn)均保持一致.而異步數(shù)據(jù)復(fù)制允許所有節(jié)點(diǎn)在某個(gè)時(shí)刻內(nèi)的數(shù)據(jù)不是同步的,它們之間存在延遲.異步復(fù)制技術(shù)使得應(yīng)用的響應(yīng)時(shí)間加快,適用于需要高性能、低延遲的場(chǎng)景.
在TimesTen的Replication版本中,實(shí)現(xiàn)了高可用性和負(fù)載平衡.TimesTen提供了靈活的復(fù)制配置,用戶有多粒度級(jí)別的復(fù)制選擇,包括表級(jí)別復(fù)制和整個(gè)數(shù)據(jù)庫復(fù)制;多重形式的復(fù)制方式,多種包括單向復(fù)制,雙向復(fù)制,表分片復(fù)制,N路復(fù)制.
Altibase是一個(gè)高性能、高通用性的內(nèi)存數(shù)據(jù)庫,適用于電信、交通等實(shí)時(shí)應(yīng)用和嵌入式系統(tǒng)領(lǐng)域.Altibase的復(fù)制功能是通過事務(wù)日志實(shí)現(xiàn)的[17],在主節(jié)點(diǎn)通過一個(gè)發(fā)送者(sender)線程,將所有新產(chǎn)生的事務(wù)日志發(fā)送至備份節(jié)點(diǎn),備份節(jié)點(diǎn)的接收者(receiver)線程接收并反映到數(shù)據(jù)庫上,同時(shí)記錄已經(jīng)發(fā)送成功的日志位置.相比于發(fā)送查詢語句或是執(zhí)行計(jì)劃的復(fù)制方式,復(fù)制日志的方式僅需要將日志在本地轉(zhuǎn)化為執(zhí)行計(jì)劃,使節(jié)點(diǎn)的負(fù)荷達(dá)到最小.
本文從快速恢復(fù)策略和冗余容錯(cuò)兩個(gè)方面介紹了內(nèi)存數(shù)據(jù)庫提升可用性的一些方案.這些方案中,有的將常規(guī)磁盤數(shù)據(jù)庫的方法直接運(yùn)用到內(nèi)存數(shù)據(jù)庫中,有的利用內(nèi)存存儲(chǔ)的優(yōu)勢(shì),結(jié)合實(shí)際情況,提出了改進(jìn)優(yōu)化算法,取得了良好的效果.內(nèi)存數(shù)據(jù)庫產(chǎn)品所適用的范圍越來越廣,其性能和可用性的要求也會(huì)越來越高,更有效的可靠性保障和更快的恢復(fù)速度,一直都是提升可用性的重點(diǎn)方案.
隨著硬件成本的不斷降低,TB級(jí)別內(nèi)存的服務(wù)器已經(jīng)出現(xiàn);64位系統(tǒng)的成熟,計(jì)算機(jī)尋址范圍擴(kuò)大,內(nèi)存數(shù)據(jù)庫有了更好的應(yīng)用環(huán)境,基本擺脫了上世紀(jì)80年代有理論而缺少實(shí)際產(chǎn)品的狀況.商業(yè)用的產(chǎn)品不斷出現(xiàn)和壯大,為更多行業(yè)提供了更快速的數(shù)據(jù)管理方案.同時(shí),有關(guān)可用性的研究工作也在不斷進(jìn)行.下面關(guān)注了一些當(dāng)今及將來可能的研究熱點(diǎn).
首先,越來越多的研究在針對(duì)特定的應(yīng)用環(huán)境提出一類新的算法.文獻(xiàn)[18-19]等提出了一些適用于內(nèi)存數(shù)據(jù)庫的具有頻繁一致(Frequently Consistent,F(xiàn)C)特點(diǎn)的應(yīng)用程序恢復(fù)算法,F(xiàn)C指在分布式數(shù)據(jù)庫系統(tǒng)中每個(gè)節(jié)點(diǎn)頻繁地更新數(shù)據(jù),不僅數(shù)據(jù)更新到位,且要求所有節(jié)點(diǎn)達(dá)到數(shù)據(jù)一致的情形,大規(guī)模多用戶的在線游戲(Massively Multiplayer Online Games,MMOs)就是FC的一個(gè)實(shí)例,降低系統(tǒng)延遲和減少系統(tǒng)開銷是提出新算法的目的,利用更多的內(nèi)存容量配合邏輯檢查點(diǎn)為手段,實(shí)現(xiàn)更快速的恢復(fù)速率.
其次,減少持久化數(shù)據(jù)的大小,防止日志成為性能瓶頸,采取更有效的數(shù)據(jù)持久化方式,追蹤可恢復(fù)數(shù)據(jù)的來源,是實(shí)現(xiàn)高速恢復(fù)的可行性措施.
再次,SSD一類的快速非易失性存儲(chǔ)器成本的不斷下降,很多家用級(jí)PC產(chǎn)品已經(jīng)使用了SSD硬盤作為主要存儲(chǔ)選擇.其訪問速度快,而且數(shù)據(jù)斷電不丟失,即擁有遠(yuǎn)超磁盤的速度和非易失的良好特性,雖然容量不足以和磁盤相比,但這使得今后的內(nèi)存數(shù)據(jù)庫實(shí)現(xiàn)方案有了更廣泛的選擇,例如將需要持久化到磁盤的高頻數(shù)據(jù)暫時(shí)放置在SSD中.
最后,更高性能、更高可用性的服務(wù)器的使用,將數(shù)據(jù)庫以縱向拓展,可以有效減少集群中備份的數(shù)目,降低系統(tǒng)設(shè)計(jì)的復(fù)雜性,實(shí)現(xiàn)快速無縫的切換恢復(fù),保證任務(wù)的高效執(zhí)行.此外,將復(fù)雜任務(wù)進(jìn)行分解,每個(gè)部分承擔(dān)事務(wù)的一部分,如何處理子事務(wù)崩潰時(shí)與總事務(wù)的關(guān)系,也是研究的方向之一.
[1] DEWITT D J,KATZ R H,OLKEN F,et al.Implementation techniques for main memory database systems[R].Berkeley:University of California 1984.
[2] BOTTOMLEY J.Clusters and high availability[EB/OL].Presentation,January,2002.
[3] 邵佩英.分布式數(shù)據(jù)庫系統(tǒng)及其應(yīng)用[M].北京:科學(xué)出版社,2000.
[4] RAGHAVAN A,RENGARAJAN T K.Database availability for transaction processing[J].Digital Technical Journal,1991,3(1).
[5] GRAY J,SIEWIOREK D P.High-availability computer systems[J].Computer,1991,24(9):39-48.
[6] AHLUWALIA K S,JAIN A.High availability design patterns[C]//Proceedings of the 2006 conference on pattern languages of programs.ACM,2006:19.
[7] BREWER E A.Towards robust distributed systems[C]//PODC,2000:7.
[8] GILBERT S,LYNCH N.Brewer’s conjecture and the feasibility of consistent,available,partition-tolerant web services[J].ACM SIGACT News,2002,33(2):51-59.
[9] 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 Transactions on Database Systems(TODS),1992,17(1):94-162.
[10] HAGMANN R B.A crash recovery scheme for a memory-resident database system[J].Computers,IEEE Transactions on,1986,100(9):839-843.
[11] SALEMK,GARCIA-MOLINA H.Checkpointing Memory-Resident Databases[C]//Proceedings of the Fifth International Conference on Data Engineering.IEEE Computer Society,1989:452-462.
[12] 廖國瓊,劉云生,肖迎元.實(shí)時(shí)內(nèi)存數(shù)據(jù)庫分區(qū)模糊檢驗(yàn)點(diǎn)策略[J].計(jì)算機(jī)研究與發(fā)展,2006,43(7):1291-1296.
[13] LI X,EICH M H.A new logging protocol:LAW[M].Department of Computer Science and Engineering,Southern Methodist University,1992.
[14] 陳安龍.內(nèi)存數(shù)據(jù)庫中數(shù)據(jù)恢復(fù)技術(shù)的研究與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2006.
[15] MALVIYA N.Recovery algorithms for in-memory OLTP databases[D].Massachusetts Institute of Technology,2012.
[16] LAHIRI T,NEIMAT M A,F(xiàn)OLKMAN S.Oracle TimesTen:an in-memory database for enterprise applications[J].IEEE Data Eng.Bull.,2013,36(2):6-13.
[17] JUNG K C,LEE K W,BAE H Y.Design and implementation of replication management in main memory DBMS ALTIBASE TM[M]//Parallel and Distributed Computing:Applications and Technologies.Springer Berlin Heidelberg,2005:62-67.
[18] LOMET D,TZOUMAS K,ZWILLING M.Implementing performance competitive logical recovery[J].Proceedings of the VLDB Endowment,2011,4(7):430-439.
[19] CAO T,VAZ SALLES M,SOWELL B,et al.Fast checkpoint recovery algorithms for frequently consistent applications[C]//Proceedings of the 2011 ACM SIGMOD International Conference on Management of Data.ACM,2011:265-276.
華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2014年5期