[發明專利]一種數據庫記錄重做日志的方法和裝置有效
| 申請號: | 201210447189.X | 申請日: | 2012-11-09 |
| 公開(公告)號: | CN102945278A | 公開(公告)日: | 2013-02-27 |
| 發明(設計)人: | 陳志標;彭勇飛;吳程宏 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 黃厚剛 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 記錄 重做 日志 方法 裝置 | ||
技術領域
本發明涉及計算機技術領域,特別涉及一種數據庫記錄重做日志的方法和裝置。
背景技術
數據持久化的同時是軟件領域一項非常廣泛且常用的技術,特別是在數據庫領域。對數據庫的操作是以事務的處理形式來進行的,數據庫的事務,是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非處理該事務的邏輯工作單元內的所有操作都成功完成,否則不會永久更新數據庫中的數據。通過將一組相關操作組合為一個要么全部成功要么全部失敗的事務,可以簡化錯誤恢復流程,并提高應用程序的可靠性。
為了保證數據庫的可恢復性,對數據庫的所有的修改都會在重做緩存中記錄redo(重做)日志,并將重做日志持久化到磁盤的日志文件中。在進行數據恢復時,只需要反向執行重做日志所記錄的操作即可。
現有技術在重做緩存中記錄重做日志的過程,采用互斥鎖,每次只允許對一個操作記錄重做日志,在一個日志記錄完成后,再對下一個操作開始記錄日志。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
在數據庫應用的過程中,經常會出現多個事務并行執行的情況,這時可能會有多個線程(或進程)同時請求記錄日志,或者也可能在一個日志在重做緩存中記錄的過程中接收到其它的日志記錄請求,對于這些情況,在現有的采用互斥鎖的處理機制下,在同一時間只允許對一個操作在重做緩存中記錄日志,后續的日志必須等待前面的日志記錄完畢后才可以開始記錄,這將造成系統瓶頸,影響數據庫系統的處理速度。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種數據庫記錄重做日志的方法和裝置,以提升數據庫系統的處理速度。所述技術方案如下:
一方面,提供了一種數據庫記錄重做日志的方法,所述方法包括:
接收日志記錄請求,所述日志記錄請求中攜帶有事務標識和日志信息;
判斷所述日志記錄請求是否為所述事務標識對應的第一次日志記錄請求;如果是,則在重做緩存中選取部分緩存空間,建立與所述事務標識對應的事務緩存塊,并將所述日志信息與對應的全局順序信息記錄到該事務緩存塊中;否則,確定所述事務標識對應的已建立的事務緩存塊中當前使用的事務緩存塊,并將所述日志信息與對應的全局順序信息記錄到該事務緩存塊中;所述全局順序信息記錄所述日志信息在所有日志信息中的時序;
當預設的觸發事件發生時,將所述重做緩存中的日志信息進行持久化。
優選的,還包括:預先將所述重做緩存劃分為多個緩存塊;
所述在重做緩存中選取部分緩存空間,建立與所述事務標識對應的事務緩存塊,具體為:在所述重做緩存中選取一個預先劃分出的緩存塊,建立與所述事務標識對應的事務緩存塊。
優選的,所述日志記錄請求中還攜帶有事務緩存塊的容量信息;
所述在重做緩存中選取部分緩存空間,建立與所述事務標識對應的事務緩存塊,具體為:根據所述容量信息,在所述重做緩存中選取相應容量的緩存空間,建立與所述事務標識對應的事務緩存塊。
優選的,所述確定所述事務標識對應的已建立的事務緩存塊中當前使用的事務緩存塊之后,還包括:
如果所述當前使用的事務緩存塊的已使用空間加記錄所述日志信息所需的空間超過預設的第一閾值,則在所述重做緩存中選取部分緩存空間,建立與所述事務標識對應的新的事務緩存塊,并將所述日志信息與對應的全局順序信息記錄到該事務緩存塊中;
如果所述當前使用的事務緩存塊的已使用空間加記錄所述日志信息所需的空間未超過預設的第一閾值,則將所述日志信息與對應的全局順序信息記錄到該事務緩存塊中。
優選的,所述預設的觸發事件,具體為:
事務的最后一次日志在所述重做緩存中記錄完畢;或者,
到達預設的時間周期;或者,
所述重做緩存的已使用空間超過預設的第二閾值。
優選的,所述將所述重做緩存中的日志信息進行持久化,具體為:
獲取所述重做緩存中未進行過持久化的日志信息;
根據獲取到的日志信息對應的全局順序信息,將所述獲取到的日志信息按時序記錄到磁盤上;
對所述重做緩存中已記錄完最后一次日志的事務對應的事務緩存塊進行釋放。
優選的,還包括:
當一次觸發事件觸發的持久化過程執行完畢時,如果后續的被觸發的持久化過程在等待中,則根據等待中的所有日志信息對應的全局順序信息,將所述等待中的所有日志信息按時序記錄到磁盤上。
另一方面,提供了一種數據庫記錄重做日志的方法,所述方法包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210447189.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種條形非線性永磁體等效磁路模型的建模方法
- 下一篇:環氧塑封料成品裝箱機





