專利名稱:一種針對數(shù)據(jù)庫重做日志的處理方法及系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及數(shù)據(jù)庫技術(shù)領域,具體涉及一種針對數(shù)據(jù)庫重做日志的處理方法及系統(tǒng)。
背景技術(shù):
當前數(shù)據(jù)庫技術(shù)中,重做(REDO)日志提供了一個對未寫入數(shù)據(jù)庫磁盤的數(shù)據(jù)的進行重做的基礎。當數(shù)據(jù)庫更新提交的時候,數(shù)據(jù)并不會即時寫入到磁盤的數(shù)據(jù)文件中,而是保存在內(nèi)存當中,這就需要通過REDO日志來對該次數(shù)據(jù)庫更新提供一種持久化的支持,避免在故障的情況下,由于內(nèi)存數(shù)據(jù)的丟失而導致數(shù)據(jù)丟失?,F(xiàn)有技術(shù)中,通常通過將數(shù)據(jù)庫更新的動作記錄在REDO日志中來避免要求每次的數(shù)據(jù)庫更新寫入數(shù)據(jù)文件,從而提高數(shù)據(jù)庫更新的性能;同時在REDO日志的寫入上又通 過設置REDO日志的緩沖,來減少REDO日志寫入磁盤的頻率;而在操作系統(tǒng)這個層面,會對磁盤的讀寫操作進行排序來優(yōu)化磁盤的讀寫操作;最后在磁盤中,還有磁盤緩存的存在,來最大限度的利用批量寫入磁盤的優(yōu)勢。可以發(fā)現(xiàn),從REDO日志的產(chǎn)生到磁盤磁化的過程當中,依賴各類的緩沖跟延時來提聞數(shù)據(jù)庫性能的措施,一方面能獲取性能提升,另一方面也存在著緩沖因為掉電等極端情況下造成數(shù)據(jù)丟失的危險。此外在高并發(fā)性、高吞吐量的數(shù)據(jù)庫操作中,目前比較多的是采用基于磁盤陣列的方式來提供容錯能力,但是基于容錯的前提下,磁盤陣列又無法做到更快的提高磁盤IO的性能。同時磁盤陣列也局限于磁盤緩存的總?cè)萘扛疟P陣列擴展的代價不能提供線性的擴展能力。面對超負荷的REDO日志的,磁盤陣列解決方案的性能下降是無可避免的。因此,現(xiàn)有技術(shù)存在以下主要缺陷RED0日志的緩存可能因為機器掉電而丟失,磁盤緩存存在著類似問題,因此現(xiàn)有處理方法使得安全性降低。
發(fā)明內(nèi)容
本發(fā)明提供一種針對數(shù)據(jù)庫重做日志的處理方法及系統(tǒng),能夠提高數(shù)據(jù)處理的安全性。一種針對數(shù)據(jù)庫重做日志的處理方法,包括構(gòu)建數(shù)據(jù)庫Cassandra的內(nèi)存集群;將重做REDO日志通過冗余復制保存在Cassandra集群的內(nèi)存中;對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作。所述構(gòu)建Cassandra的內(nèi)存集群包括采用點對點P2P分布式技術(shù)構(gòu)建Cassandra的內(nèi)存集群,結(jié)合一致性哈希算法將所述內(nèi)存集群形成一個環(huán)狀,所述內(nèi)存集群中的每一個節(jié)點負責部分鍵值范圍的查詢?nèi)蝿?。所述將REDO日志通過冗余復制保存在Cassandra集群的內(nèi)存中包括
調(diào)整Cassandra集群的內(nèi)存配置,將每份REDO日志在Cassandra集群的內(nèi)存中的N個節(jié)點形成冗余,所述N大于I。所述N個節(jié)點具體為3個節(jié)點。所述對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作包括對存儲在Cassandra集群的內(nèi)存中的REDO日志進行至少以下一項操作查詢、插入、刪除、恢復。所述刪除包括修改Cassandra在內(nèi)存中的數(shù)據(jù)刪除策略,在Cassandra的TombMark的刪除基礎上增加內(nèi)存記錄物理刪除功能;所述恢復包括將數(shù)據(jù)庫恢復時多個REDO日志的串行操作轉(zhuǎn)換為并行操作; 所述對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作還包括改造Cassandra集群的歸并操作,使得錯開Cassandra集群的歸并操作同REDO日志的讀寫操作。一種數(shù)據(jù)庫系統(tǒng)包括至少一個以上內(nèi)存集群服務器節(jié)點;所述至少一個以上內(nèi)存集群服務器節(jié)點構(gòu)建成Cassandra的內(nèi)存集群;所述內(nèi)存集群服務器節(jié)點按照冗余復制方式保存重做REDO日志,并對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作。所述內(nèi)存集群服務器節(jié)點包括請求協(xié)調(diào)器、集群協(xié)調(diào)器、日志RID模塊;請求協(xié)調(diào)器,用于接收對REDO日志的操作請求;集群協(xié)調(diào)器,采用P2P分布式技術(shù)構(gòu)建Cassandra的內(nèi)存集群,結(jié)合一致性哈希算法將所述內(nèi)存集群形成一個環(huán)狀,所述內(nèi)存集群中的每一個節(jié)點負責部分鍵值范圍的查詢?nèi)蝿?;日志RID模塊,根據(jù)請求協(xié)調(diào)器的請求,對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作,包括對存儲在Cassandra集群的內(nèi)存中的REDO日志進行至少以下一項操作查詢、插入、刪除、恢復。所述內(nèi)存集群服務器節(jié)點還包括受控歸并模塊,用于改造Cassandra集群的歸并操作,使得錯開Cassandra集群的歸并操作同REDO日志的讀寫操作。上述技術(shù)方案可以看出,本發(fā)明技術(shù)方案采用改造后的Cassandra集群存儲REDO日志,將REDO日志盡量通過冗余復制保存在Cassandra集群的內(nèi)存當中,將RDBMS的REDO日志極端情況下丟失數(shù)據(jù)的風險通過Cassandra的冗余復制策略加以控制,從而加強數(shù)據(jù)持久化的安全性,并且將通常的REDO日志的磁盤讀寫轉(zhuǎn)換為對Cassandra集群內(nèi)存的讀與,從而提聞REDO日志的讀與性能,在此基礎上提升數(shù)據(jù)庫的整體性能。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖I是為本發(fā)明的處理方法流程示意圖;圖2是本發(fā)明組成的環(huán)狀集群示意圖3是本發(fā)明添加查詢服務器節(jié)點后的環(huán)狀集群示意圖;圖4是本發(fā)明的內(nèi)存集群服務器的結(jié)構(gòu)示意圖;圖5是本發(fā)明的內(nèi)存集群服務器的應用示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下 所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。本發(fā)明提供一種針對數(shù)據(jù)庫重做日志的處理方法,可以針對現(xiàn)有技術(shù)缺陷提高數(shù)據(jù)處理安全性。另外,現(xiàn)有技術(shù)方法主要通過REDO日志的緩存以及磁盤緩存來延遲REDO日志的磁盤磁化,其存在的缺陷除了 REDO日志的緩存可能因為機器掉電而丟失外,還包括REDO日志的緩存可能因為REDO日志的內(nèi)容過大而失效;另外磁盤緩存的大小是固化的,不可以靈活調(diào)整;關(guān)閉磁盤回寫緩存會造成磁盤IO性能的急劇下降等。本發(fā)明提供的技術(shù)方案可以進一步解決上述缺陷。本發(fā)明技術(shù)方案,采用P2P (Peer-to-Peer,點對點)技術(shù)、一致性哈希算法(Consistent Hashing Algorithm)把REDO日志緩存存儲到Cassandra分布式數(shù)據(jù)庫(Cassandra是一個混合型的非關(guān)系的數(shù)據(jù)庫),通過對Cassandra分布式數(shù)據(jù)庫進行改造以適應REDO日志的存在特點RED0日志的持久化只存在于事務已經(jīng)提交,但是更新數(shù)據(jù)尚未寫入磁盤文件這個時間點之間。在數(shù)據(jù)庫數(shù)據(jù)寫入磁盤之后,相應的REDO日志是可刪除的,Cassandra分布式數(shù)據(jù)庫的集群具有高可伸縮性,提供了實時增加節(jié)點的功能,并且可以在負載較重的節(jié)點之前插入節(jié)點,減輕相應節(jié)點的負載,而在集群負載不足的情況下,可以實時減少部分節(jié)點,從而使得集群具備高度可伸縮性;因此本發(fā)明技術(shù)方案通過改造Cassandra使其適應REDO日志的存在特點,減少甚至消除REDO日志持久化到磁盤的必要性。以下詳細介紹本發(fā)明技術(shù)方案。本發(fā)明技術(shù)方案的主要思路是把分布式的數(shù)據(jù)庫應用于REDO日志的存儲,相關(guān)的分布式技術(shù)包括Cassandra、Gossip的P2P、一致性哈希。以下對涉及的相關(guān)技術(shù)進行簡單介紹。Cassandra是一個基于Gossip、一致性哈希等技術(shù)實現(xiàn)的分布式數(shù)據(jù)庫,具備高并發(fā)性、高可用性、最終一致性、無單點故障等優(yōu)點,特別適合非關(guān)系型的日志文件的存儲和讀取。Gossip是一個p2p協(xié)議的實現(xiàn),該協(xié)議的原理是向周圍的節(jié)點傳遞信息,直到所有節(jié)點都有同樣的信息,通過這種方式,可以達到多點同步,并且可以不用關(guān)心具體節(jié)點量實現(xiàn)無限水平擴展的功能。一致性哈希算法中,每個節(jié)點(對應P2P系統(tǒng)中的點Peer)都有隨機分配的標識ID。在將內(nèi)容映射到節(jié)點時,使用內(nèi)容的關(guān)鍵字和節(jié)點的ID進行一致性哈希運算并獲得鍵值。一致性哈希要求鍵值和節(jié)點ID處于同一值域。最簡單的鍵值和ID可以是一維的,比如從OOOO到9999的整數(shù)集合。為了構(gòu)建查詢所需的路由,一致性哈希要求每個節(jié)點存儲其上行節(jié)點(ID值大于自身的節(jié)點中最小的)和下行節(jié)點(ID值小于自身的節(jié)點中最大的)的位置信息(IP地址)。當節(jié)點需要查找內(nèi)容時,就可以根據(jù)內(nèi)容的鍵值決定向上行或下行節(jié)點發(fā)起查詢請求。收到查詢請求的節(jié)點如果發(fā)現(xiàn)自己擁有被請求的目標,可以直接向發(fā)起查詢請求的節(jié)點返回確認;如果發(fā)現(xiàn)不屬于自身的范圍,可以轉(zhuǎn)發(fā)請求到自己的上行/下行節(jié)點。如圖I所示,為本發(fā)明的處理方法流程示意圖。該方法主要包括步驟步驟101、構(gòu)建Cassandra的內(nèi)存集群;該步驟的Cassandra的內(nèi)存集群采用P2P分布式技術(shù)來構(gòu)建實現(xiàn),結(jié)合采用一致性哈希算法形成一個環(huán)狀,讓集群中的每一個節(jié)點負責部分鍵值范圍的查詢?nèi)蝿?,并且通過一致性哈希算法最大限度地抑制了鍵的重新分布。
基于Cassandra的內(nèi)存集群具有如下幾個特點采用一致性哈希算法提高集群的平衡性,使得集群中的各個節(jié)點能夠均衡提供服務;采用可插入式哈希算法,同時提供了缺省的高效均衡的哈希算法,實現(xiàn)系統(tǒng)高可擴展性,可以實現(xiàn)靈活的路由策略。具體的,采用P2P分布式技術(shù)組成Cassandra的內(nèi)存集群,使得集群中的每個節(jié)點實時保存了集群所有節(jié)點的處理范圍的信息,根據(jù)該信息每個節(jié)點能夠快速的定位到相應的節(jié)點去操作REDO日志數(shù)據(jù),有效形成了負載均衡的能力。負載均衡的能力在于各個節(jié)點都可以響應客戶端請求跟路由客戶端請求,因為每個節(jié)點都可以根據(jù)一致性哈希計算出客戶請求對應的處理節(jié)點。采用P2P分布式技術(shù)使得系統(tǒng)具備高可伸縮性,在負載不足的情況下,可以在不影響系統(tǒng)正常運行的情況下在線增加新的服務節(jié)點;結(jié)合一致性哈希算法對于臨時性網(wǎng)絡故障而暫時離開的節(jié)點,由其他的節(jié)點暫時提供服務,在該節(jié)點恢復后重新接管相應的查詢服務。本發(fā)明技術(shù)方案通過一致性哈希算法組成環(huán)狀集群的過程如下如圖2所示,是本發(fā)明組成的環(huán)狀集群示意圖。首先求出服務器集群中每個節(jié)點的哈希值(也可以在配置文件中指定哈希值),并將其配置到(T2127的圓上。這個數(shù)值范圍也是由一致性哈希算法來確定的,簡單的說例如可以是由哈希函數(shù)可能產(chǎn)生的最大值。然后對于需要查詢的鍵值采用相同的哈希算法求出哈希值,并映射到圓上,然后從數(shù)據(jù)映射到的位置開始順時針查找,找到第一個服務器后,由該服務器向數(shù)據(jù)源發(fā)起查詢請求,并保存查詢結(jié)果到緩存中。從圖2的狀態(tài)中添加一個查詢服務器節(jié)點,采用一致性哈希算法只會影響該節(jié)點添加位置的節(jié)點的查詢鍵值范圍,而不會影響其他的節(jié)點,從而在增加節(jié)點的時候仍然能夠利用大部分節(jié)點的緩存信息,從而不影響添加時刻的查詢效率,如圖3所示,是本發(fā)明添加查詢服務器節(jié)點后的環(huán)狀集群示意圖。另外,同樣刪除一個節(jié)點或者節(jié)點故障,也只影響刪除節(jié)點的下一個位置的節(jié)點的鍵值查詢范圍。在分布式環(huán)境中,節(jié)點可能會出現(xiàn)臨時性的網(wǎng)絡故障而導致臨時失效,一個失效的節(jié)點通常不會造成永久的故障。由于這個原因,需要采用一種外部機制來增加和刪除節(jié)點,在查詢服務器集群中,系統(tǒng)管理員采用外部命令連接到已有環(huán)中的任何一個節(jié)點來執(zhí)行集群環(huán)中節(jié)點的增加和刪除,該節(jié)點負責把成員信息的變化情況傳播到集群中的其他的節(jié)點上,讓每個節(jié)點維護完整的成員視圖,該傳播協(xié)議就是基于Gossip的P2P協(xié)議。當節(jié)點增加到集群中,第一次啟動的時候,它會選擇一個哈希值(這個哈希值可以在配置文件中指定),并且把節(jié)點映射到環(huán)中,映射信息(包括哈希值)將會持久化到磁盤中,在加入到集群中后,會首先連接種子節(jié)點,獲取環(huán)中其他節(jié)點的信息,最終確定該節(jié)點能夠處理的關(guān)鍵字的哈希值范圍,種子節(jié)點把最新的環(huán)成員信息,以及每個處理的鍵值范圍通過P2P協(xié)議的傳播出去,最終讓環(huán)中的所有節(jié)點保存環(huán)的全局視圖信息。步驟102、將REDO日志通過冗余復制保存在Cassandra集群的內(nèi)存中;該步驟調(diào)整Cassandra的內(nèi)存配置,將REDO日志盡可能緩存于集群的內(nèi)存中。通過使用Cassandra的冗余復制策略,每份REDO日志會在集群N(默認為3)個節(jié)點上形成冗余,有效避免以往的的REDO日志的單點故障的危險,從而真正做到數(shù)據(jù)庫數(shù)據(jù)持久化的高安全性。所述N大于I。通過調(diào)整Cassandra的內(nèi)存使用策略,可以將REDO日志盡量保存在集群中節(jié)點的內(nèi)存當中,從而減少甚至消除REDO日志寫磁盤的要求,大大提高REDO日志的讀寫性能。此外通過將REDO日志保存在節(jié)點的內(nèi)存當中,在單磁盤或者磁盤陣列當中釋放了寶貴的磁盤緩存,進而進一步提高數(shù)據(jù)庫寫數(shù)據(jù)到數(shù)據(jù)文件的性能,進一步提升數(shù)據(jù)庫的性能。步驟103、對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作。將REDO日志通過冗余復制保存在Cassandra集群的內(nèi)存當中后,則是將通常的REDO日志的磁盤讀寫轉(zhuǎn)換為對Cassandra集群的內(nèi)存的讀寫,即該步驟將RDBMS的REDO日志的磁盤讀寫轉(zhuǎn)換成高效的Cassandra內(nèi)存集群的讀寫。該步驟中對REDO日志進行處理操作包括RED0日志的查詢、插入、修改、刪除、恢復等。該步驟中,在Cassandra的Tomb Mark的刪除基礎上增加內(nèi)存記錄物理刪除功能。通過分析利用REDO日志生命周期較短的特性,修改Cassandra在內(nèi)存中數(shù)據(jù)的刪除策略,提高Cassandra的內(nèi)存使用效率,從而大大提高Cassandra內(nèi)存存儲REDO日志的可能性,可以達到消除磁盤讀寫的目的。該步驟中,將數(shù)據(jù)庫恢復時多個REDO日志的串行操作轉(zhuǎn)換為并行操作,從而提高數(shù)據(jù)庫恢復的速度。另外,該步驟還包括通過改造Cassandra的歸并操作,使其成為受控行為,使得有效錯開Cassandra的歸并同REDO日志的讀寫。上述內(nèi)容介紹了內(nèi)存集群的構(gòu)成方案,以下詳細介紹每個內(nèi)存集群服務器節(jié)點的實現(xiàn)方法。如圖4所示,是本發(fā)明的內(nèi)存集群服務器的結(jié)構(gòu)示意圖。每個內(nèi)存集群服務器節(jié)點主要包括四個主要的軟件組件模塊請求協(xié)調(diào)器、集群協(xié)調(diào)器、日志RID模塊、受控歸并模塊。如圖5所示,是本發(fā)明的內(nèi)存集群服務器的應用示意圖。請求協(xié)調(diào)器,建立在事件驅(qū)動消息服務架構(gòu)之上,所有的通訊采用異步IO通道技術(shù),請求協(xié)調(diào)器獲取客戶端的請求后,根據(jù)關(guān)鍵字的哈希值和一致性哈希技術(shù),在環(huán)狀全局視圖中確定服務查詢節(jié)點并查詢數(shù)據(jù)返回后,請求協(xié)調(diào)器把查詢結(jié)果返回到客戶端。請求協(xié)調(diào)器可以接收對REDO日志的操作請求。集群協(xié)調(diào)器,利用基于Gossip的P2P分布式技術(shù)與集群中其他節(jié)點通訊,維護集、群的環(huán)成員信息,每個節(jié)點從環(huán)中隨機選取一些節(jié)點,把自己所存儲的集群環(huán)信息與對方交互,使得雙方保持一致,通過這種協(xié)議使得所有節(jié)點最終形成一致的環(huán)全局試圖,而且集群協(xié)調(diào)器把該信息持久化到磁盤上,用來在節(jié)點重啟的時候,立即獲得全局視圖信息,而無需重復前面的交互過程。集群協(xié)調(diào)器,采用P2P分布式技術(shù)構(gòu)建Cassandra的內(nèi)存集群,結(jié)合一致性哈希算法將所述內(nèi)存集群形成一個環(huán)狀,所述內(nèi)存集群中的每一個節(jié)點負責部分鍵值范圍的查詢?nèi)蝿?。日志RID模塊,用來接受關(guān)系型數(shù)據(jù)庫管理系統(tǒng)RDBMS發(fā)起的REDO日志的查詢、插入、刪除、恢復等,其中刪除操作在Cassandra本身的Tomb Mark的基礎增加內(nèi)存記錄的刪除,以有效釋放內(nèi)存從而應對REDO日志生命周期較短的情景;恢復操作是將數(shù)據(jù)庫恢復時多個REDO日志的串行操作轉(zhuǎn)換為并行操作。受控歸并模塊,允許通過參數(shù)設置跟手工調(diào)度的方式來靈活管理Cassandra的歸并操作,有效錯開Cassandra的歸并同REDO日志的讀寫,例如在RDMBS繁忙的期間即REDO 日志的RID操作高峰期,禁止Cassandra自身的歸并操作,在RDBMS空閑期間即REDO日志的RID低谷期發(fā)起Cassandra的歸并操作,從而有效提高Cassandra集群的性能。綜上所述可以發(fā)現(xiàn),本發(fā)明技術(shù)方案采用改造后的Cassandra集群存儲REDO日志,將REDO日志盡量通過冗余復制保存在Cassandra集群的內(nèi)存當中,將RDBMS的REDO日志極端情況下丟失數(shù)據(jù)的風險通過Cassandra的冗余復制策略加以控制,從而加強數(shù)據(jù)持久化的安全性,并且將通常的REDO日志的磁盤讀寫轉(zhuǎn)換為對Cassandra集群內(nèi)存的讀寫,從而提高REDO日志的讀寫性能,在此基礎上提升數(shù)據(jù)庫的整體性能。本領域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括只讀存儲器(ROM,Read Only Memory)、隨機存取存儲器(RAM,RandomAccessMemory )、磁盤或光盤等。以上對本發(fā)明實施例所提供的技術(shù)方案,進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權(quán)利要求
1.一種針對數(shù)據(jù)庫重做日志的處理方法,其特征在于,包括 構(gòu)建數(shù)據(jù)庫Cassandra的內(nèi)存集群; 將重做REDO日志通過冗余復制保存在Cassandra集群的內(nèi)存中; 對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于 所述構(gòu)建Cassandra的內(nèi)存集群包括 采用點對點P2P分布式技術(shù)構(gòu)建Cassandra的內(nèi)存集群,結(jié)合一致性哈希算法將所述內(nèi)存集群形成一個環(huán)狀,所述內(nèi)存集群中的每一個節(jié)點負責部分鍵值范圍的查詢?nèi)蝿铡?br>
3.根據(jù)權(quán)利要求I所述的方法,其特征在于 所述將REDO日志通過冗余復制保存在Cassandra集群的內(nèi)存中包括 調(diào)整Cassandra集群的內(nèi)存配置,將每份REDO日志在Cassandra集群的內(nèi)存中的N個節(jié)點形成冗余,所述N大于I。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于 所述N個節(jié)點具體為3個節(jié)點。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于 所述對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作包括 對存儲在Cassandra集群的內(nèi)存中的REDO日志進行至少以下一項操作查詢、插入、刪除、恢復。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于 所述刪除包括修改Cassandra在內(nèi)存中的數(shù)據(jù)刪除策略,在Cassandra增加內(nèi)存記錄物理刪除功能; 所述恢復包括將數(shù)據(jù)庫恢復時多個REDO日志的串行操作轉(zhuǎn)換為并行操作。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于 所述對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作還包括改造Cassandra集群的歸并操作,使得錯開Cassandra集群的歸并操作同REDO日志的讀寫操作。
8.一種數(shù)據(jù)庫系統(tǒng),其特征在于 包括至少一個以上內(nèi)存集群服務器節(jié)點; 所述至少一個以上內(nèi)存集群服務器節(jié)點構(gòu)建成Cassandra的內(nèi)存集群; 所述內(nèi)存集群服務器節(jié)點按照冗余復制方式保存重做REDO日志,并對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于 所述內(nèi)存集群服務器節(jié)點包括請求協(xié)調(diào)器、集群協(xié)調(diào)器、日志RID模塊; 請求協(xié)調(diào)器,用于接收對REDO日志的操作請求; 集群協(xié)調(diào)器,采用P2P分布式技術(shù)構(gòu)建Cassandra的內(nèi)存集群,結(jié)合一致性哈希算法將所述內(nèi)存集群形成一個環(huán)狀,所述內(nèi)存集群中的每一個節(jié)點負責部分鍵值范圍的查詢?nèi)蝿? 日志RID模塊,根據(jù)請求協(xié)調(diào)器的請求,對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作,包括對存儲在Cassandra集群的內(nèi)存中的REDO日志進行至少以下一項操作查詢、插入、刪除、恢復。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于 所述內(nèi)存集群服務器節(jié)點還包括受控歸并模塊,用于改造Cassandra集群的歸并操作,使得錯開Cassandra集群的歸并操作同REDO日志的讀寫操作。
全文摘要
本發(fā)明公開了一種針對數(shù)據(jù)庫重做日志的處理方法及系統(tǒng)。該處理方法包括構(gòu)建Cassandra的內(nèi)存集群;將重做REDO日志通過冗余復制保存在Cassandra集群的內(nèi)存中;對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作。本發(fā)明相應提供一種數(shù)據(jù)庫系統(tǒng)包括至少一個以上內(nèi)存集群服務器節(jié)點;所述至少一個以上內(nèi)存集群服務器節(jié)點構(gòu)建成Cassandra的內(nèi)存集群;所述內(nèi)存集群服務器節(jié)點按照冗余復制方式保存重做REDO日志,并對存儲在Cassandra集群的內(nèi)存中的REDO日志進行處理操作。本發(fā)明提供的技術(shù)方案能夠提高數(shù)據(jù)處理的安全性。
文檔編號G06F17/30GK102737131SQ20121020913
公開日2012年10月17日 申請日期2012年6月21日 優(yōu)先權(quán)日2012年6月21日
發(fā)明者武良軍, 袁曉鵬 申請人:廣州從興電子開發(fā)有限公司