新四季網

面向嵌入式資料庫系統的無日誌事務處理方法

2023-10-08 13:40:14

專利名稱:面向嵌入式資料庫系統的無日誌事務處理方法
技術領域:
本發明涉及一種資料庫系統事務處理方法,尤其涉及面向嵌入式資料庫系統的無日誌事務處理方法,屬於資料庫管理技術領域。
背景技術:
隨著技術的發展,嵌入式設備和行動裝置在各行業得到了廣泛的應用,例如手持 PDA、工控機、智慧型手機等。而幾乎所有的嵌入式設備和行動裝置都會涉及到數據管理。在嵌入式設備和行動裝置上又不可能運行大型的通用資料庫,因此如何實現穩定、高效的數據管理就成為擺在嵌入式應用程式開發者面前的難題。嵌入式資料庫憑藉其易使用、體積小、數據管理能力強等特點,在嵌入式設備中得到了廣泛的應用。但是,目前的大多數嵌入式資料庫都是全部沿用或部分沿用了通用資料庫的設計思路,只是做了一些簡化,捨去了一些高級功能,可以說是輕量級的通用資料庫。 由於嵌入式設備與通用設備的差別,導致採用通用資料庫技術實現的嵌入式資料庫在嵌入式設備上出現水土不服的問題,例如資料庫的事務處理方式。事務處理是保證資料庫數據正確性的重要手段,是所有資料庫都必須支持的基本功能。好的事務處理機制可以在保證資料庫數據正確性的同時提高資料庫的運行效率。因此,對事務處理的支持能力是評價一個資料庫好壞的重要且基本的標準。擁有功能強大、佔用資源少的事務處理機制的嵌入式資料庫在嵌入式設備領域必然更受歡迎,得到更廣泛的應用。另一方面,資料庫系統普遍使用日誌作為事務回滾或資料庫恢復的依據。在資料庫運行期間會記錄多種日誌,如=REDO日誌、UNDO日誌等。某個事務開始時,資料庫會將操作以日誌形式記錄。如果當前的事務由於某種原因需要取消,即需要回滾時,資料庫按照記錄的UNDO日誌取消當前事務對資料庫的所有操作。如果需要對資料庫進行恢復,則將REDO 日誌重新執行一遍。在使用日誌進行事務管理的情況下,僅僅考慮在資料庫運行期間記錄日誌的動作就會增加大量的磁碟I/O操作。在事務執行期間對磁碟的訪問必然會影響資料庫的性能,而且在磁碟上保存日誌文件也增加了資料庫在嵌入式設備上的存儲開銷。這種存儲開銷在PC機或者伺服器上基本可以忽略,但是在處理器速度較慢且磁碟資源比較緊張的嵌入式設備上,運行需要記錄日誌的資料庫系統所增加的磁碟開銷往往是難以承受的。尤其在以對性能要求較高的嵌入式應用中,需要記錄日誌的嵌入式資料庫就更不適用了。

發明內容
本發明所要解決的技術問題在於提供一種面向嵌入式資料庫(或內存資料庫)系統的無日誌事務處理方法。通過該方法可以實現功能強大、高效、佔用資源少的事務處理機制。為實現上述的發明目的,本發明採用下述的技術方案—種面向嵌入式資料庫系統的無日誌事務處理方法,其特徵在於
嵌入式資料庫中具有兩個工作區,用於維護資料庫中的數據,記錄用戶對資料庫的操作,所述兩個工作區管理同一份數據對象,在所述兩個工作區中包含同樣多的對象元素數量,每個工作區中的元素通過索引進行定位,在事務開始時的初始狀態下,同一索引值在兩個工作區中所對應的對象元素指向的是同一數據對象,在提交或回滾事務時,比較兩個工作區中的各對象元素是否一致,如果不一致就證明該數據對象已經被修改,則決定使更改生效或者取消更改,依次類推直到工作區中所有的對象元素均被處理。利用本發明所提供的無日誌事務處理方法,可以實現如下的有益效果1.資料庫在事務運行過程中,沒有維護事務所需的磁碟I/O操作。如果將該機制使用在內存資料庫上,則整個過程中均沒有磁碟操作。事務處理將會非常高效,經測試即使在ARM處理器上,資料庫的事務處理性能也可輕鬆達到微秒級。2.事務提交與回滾操作簡單提交和回滾事務只是對比兩個工作區中的不同,並釋放無效數據。如果是磁碟資料庫只需要將一小部分發生改變的內容寫回到磁碟上,降低了磁碟I/O操作的數量。


下面結合附圖和具體實施方式
對本發明作進一步的詳細說明。圖1為本發明所提供的無日誌事務處理方法的原理示意圖;圖2為本無日誌事務處理方法中,記錄發生改變時的處理過程示意圖;圖3為本無日誌事務處理方法中,事務提交過程的示意圖。
具體實施例方式本發明所提供的無日誌事務處理方法提出了一種全新概念的事務處理機制。該事務處理機制的特點在於使用兩個工作區維護資料庫中的數據,記錄用戶對資料庫的操作。 兩個工作區分別命名為「當前區」和「影子區」。在事務運行過程中,影子區作為當前區的備份。隨著事務的運行過程,會造成兩個工作區內容的不一致,該不一致的內容即為資料庫運行過程中數據的改變。提交事務時,以當前區的內容為準,使資料庫內容的改變生效。回滾事務時,以影子區的內容為準,取消對資料庫內容的改變。上述事務處理機制無需記錄日誌,沒有額外的磁碟開銷,簡單高效。在本發明的一個實施例中,該事務處理機制在嵌入式資料庫中得到應用。如圖1 所示,嵌入式資料庫中的「雙工作區」管理同一份數據對象(record Urecord 2,……, record η)。在兩個工作區中包含同樣多的對象(記錄)元素數量,工作區中的元素通過索引進行定位。在事務開始時的初始狀態下,同一索引值在兩個工作區中所對應的元素指向的是同一對象。在提交或回滾事務時,通過比較兩個工作區中的各元素是否一致,如果不一致就證明該對象已經被修改,則可以根據當前的操作(提交事務/回滾事務)決定是使更改生效還是取消更改,依次類推直到工作區中所有的元素均被處理。下面從工作區元素的分配、工作區內容的變更和內容不一致情況的處理三個方面對本發明所提供的事務處理機制展開詳細的說明。在資料庫中工作區元素的分配方面,每分配一個數據就會在工作區中分配一個元素指向該數據。這種分配只會在當前區中進行。當事務提交時,為影子區分配同樣的元素; 而事務回滾時,將為當前區分配的元素回收。在資料庫運行期間,會對記錄進行增加、更新、刪除等操作,從而造成工作區內容的變更。由於當前區和影子區中都指向的是同一份記錄。如果記錄的更改在記錄原位置上進行,則會導致事務無法回滾,即對記錄的修改立即生效,因此需要在修改前保存記錄的備份。如圖2所示,所有對記錄的操作都在當前區指向的記錄中進行。影子區指向的元素作為當前區的備份,可以用於在事務回滾時的數據恢復。具體地說,影子區中的元素指向備份數據,當前區的元素指向當前數據,這樣導致當前區的元素與影子區的元素所指向的數據的位置不一致,正好可以作為判斷記錄是否發生改變的依據,在事務提交或者回滾時做相應的操作。在內容不一致情況的處理方面,前已述及影子區的作用可以理解為對當前區的備份,所以當資料庫運行一段時間後會造成兩個工作區內容的不一致。為此如圖3所示,在事務提交或回滾時需要遍歷兩個工作區找出所有不一致的地方,並且做相應的處理。例如提交事務時如果發現有不一樣的內容,由於提交事務是使改動生效,即要使影子區所指向的備份數據失效,所以應該釋放影子區相應元素所指向的數據,同時使影子區的內容指向當前區元素。反之,如果執行的是回滾操作,則需要使用影子區恢復當前區,因此要釋放當前區的數據,然後使當前區相應的元素指向影子區元素指向的數據。在本發明的另一個實施例中,上述事務處理機制在內存資料庫中得到應用。具體的應用方式與嵌入式資料庫中的應用方式基本相同,在此就不贅述了。本發明中由於使用工作區管理資料庫中的數據,並且數據在應用過程中會不斷增加,工作區所能容納的元素個數又是有限的,所以最終數據個數將會超出工作區管理的範圍。為此,必須提供工作區在運行狀態下的動態擴展機制,使其能夠在資料庫運行狀態下增加元素個數。在本發明的一個實施例中,使用數組實現工作區的動態擴展機制。具體說明如下在初始狀態下資料庫擁有兩個一模一樣的數組,分別作為影子區和工作區。在資料庫運行期間,當資料庫中的數據個數大於數組最大元素個數時,在內存中重新分配兩個更大的數組(新數組的大小可以根據實際情況決定,可以採用2倍的方式擴展),然後將原數組的內容拷貝到新分配的數組中,最後釋放原來的數組。由此實現工作區的動態擴展機制。另一方面,在資料庫使用過程中刪除記錄會造成工作區中的元素的失效,即指向的記錄已經被刪除。該元素稱為「垃圾元素」。隨著資料庫的使用,工作區中的垃圾元素會越來越多。如果沒有對垃圾元素的回收機制(也稱工作區垃圾回收機制),工作區中的元素個數只會增加,而且其中可能包含大量的垃圾元素。工作區垃圾回收機制會在適當的條件下被出發,也可以有用戶調用。該機制遍歷工作區,將所有垃圾元素回收,並且使相應位置的內容可以分配給新的數據。工作區垃圾回收機制可以將垃圾元素回收,使工作區中全部為有效元素,提升工作區的使用率。本發明通過使用雙工作區的方式記錄用戶對資料庫的操作,兩個工作區分別命名為「當前區」和「影子區」,在事務運行過程中影子區作為當前區的備份。提交事務時根據比較兩個工作區的差別將操作生效,並使用當前區覆蓋影子區;回滾事務時同樣通過比較兩個工作區的差別將操作取消,然後使用影子區恢復當前區。這樣的事務處理機制在事務運行期間不會記錄日誌,即不會產生除資料庫文件以外的日誌文件或其他文件。而且,事務的提交和回滾基本都是在內存中進行的,沒有產生額外的磁碟1/0,不會佔用額外的磁碟資源。因此,本發明所提供的事務處理機制具備高性能、低資源消耗的特點,更加適合嵌入式領域的應用。 以上對本發明所提供的面向嵌入式資料庫系統的無日誌事務處理方法進行了詳細的說明。對本領域的技術人員而言,在不背離本發明實質精神的前提下對它所做的任何顯而易見的改動,都將構成對本發明專利權的侵犯,將承擔相應的法律責任。
權利要求
1.一種面向嵌入式資料庫系統的無日誌事務處理方法,其特徵在於嵌入式資料庫中具有兩個工作區,用於維護資料庫中的數據,記錄用戶對資料庫的操作,所述兩個工作區管理同一份數據對象,在所述兩個工作區中包含同樣多的對象元素數量,每個工作區中的元素通過索引進行定位,在事務開始時的初始狀態下,同一索引值在兩個工作區中所對應的對象元素指向的是同一數據對象,在提交或回滾事務時,比較兩個工作區中的各對象元素是否一致,如果不一致就證明該數據對象已經被修改,則決定使更改生效或者取消更改,依次類推直到工作區中所有的對象元素均被處理。
2.如權利要求1所述的面向嵌入式資料庫系統的無日誌事務處理方法,其特徵在於 決定使更改生效或者取消更改時,如果執行的是回滾操作,則取消更改;如果執行的是提交事務,則使更改生效。
3.如權利要求1的所述的面向嵌入式資料庫系統的無日誌事務處理方法,其特徵在於決定使更改生效或者取消更改時,如果執行的是回滾操作,則需要使用影子區恢復當前區,釋放當前區的數據,然後使當前區相應的元素指向影子區元素指向的數據;如果執行的是提交事務操作,則使影子區所指向的備份數據失效,釋放影子區相應元素所指向的數據,同時使影子區的內容指向當前區元素。
4.如權利要求1的所述的面向嵌入式資料庫系統的無日誌事務處理方法,其特徵在於在初始狀態下,兩個工作區是一樣的數組;在資料庫運行期間,當資料庫中的數據個數大於數組最大元素個數時,在內存中重新分配兩個更大的數組,然後將原數組的內容拷貝到新分配的數組中,最後釋放原來的數組。
5.如權利要求1的所述的面向嵌入式資料庫系統的無日誌事務處理方法,其特徵在於還包括工作區垃圾回收機制,所述工作區垃圾回收機制是遍歷工作區,將所有垃圾元素回收,並且使相應位置的內容可以分配給新的數據,其中,垃圾元素是指在資料庫使用過程中刪除記錄會造成的工作區中的失效元素。
全文摘要
本發明提供一種面向嵌入式資料庫系統的無日誌事務處理方法,嵌入式資料庫中具有兩個工作區,用於維護資料庫中的數據,記錄用戶對資料庫的操作,兩個工作區管理同一份數據對象,在兩個工作區中包含同樣多的對象元素數量,每個工作區中的元素通過索引進行定位,在事務開始時的初始狀態下,同一索引值在兩個工作區中所對應的對象元素指向的是同一數據對象,在提交或回滾事務時,比較兩個工作區中的各對象元素是否一致,如果不一致就證明該數據對象已經被修改,則決定使更改生效或者取消更改,依次類推直到工作區中所有的對象元素均被處理。功能強大、高效、佔用資源少的事務處理機制。
文檔編號G06F17/30GK102402623SQ20111044816
公開日2012年4月4日 申請日期2011年12月28日 優先權日2011年12月28日
發明者劉建立, 寇立濤, 李恆, 楊經正, 陳東 申請人:北京人大金倉信息技術股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀