[發明專利]一種數據庫中的多版本并發控制方法及數據庫系統有效
| 申請號: | 201310750940.8 | 申請日: | 2013-12-31 |
| 公開(公告)號: | CN103744936A | 公開(公告)日: | 2014-04-23 |
| 發明(設計)人: | 文繼軍;聶愿愿;李健 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) 44285 | 代理人: | 王仲凱 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 中的 版本 并發 控制 方法 系統 | ||
技術領域
本發明涉及數據庫技術領域,具體涉及一種數據庫中的多版本并發控制方法及數據庫系統。
背景技術
多版本并發控制(MVCC,Multi?Version?Concurrency?Control),是一種在數據庫系統中廣泛使用的加鎖機制,目前主流的商業數據庫系統包括Oracle(甲骨文公司開發的一種數據庫)、結構化查詢語言服務器(SQL?Server,Structured?Query?Language?Server)和PostgreSQL等數據庫都使用了這樣一種機制。
一般的,多版本并發控制方案的實現包括有兩種,一種為頁級多版本,另一種為行級多版本。其中,頁級多版本,指的是在頁面上記錄修改時間戳,對頁面的訪問需要根據該時間戳進行,如果時間戳不滿足要求,則需要構造一個合適的頁面版本,這樣,在數據庫內部對于同一個頁面,就可能會有多個不同的版本。而行級多版本,指的是每當對記錄進行更新時會產生一個新版本,這樣對于同一記錄的讀操作和寫操作可以訪問記錄的不同版本,達到讀寫不阻塞的效果。
在對現有技術的研究和實踐過程中,本發明的發明人發現,在對某一個版本的頁面進行讀取時,需要根據一個頁面上的所有事務的信息進行讀取,如果一個頁面上的事務較多,會使得對于數據頁面的讀取效率不高,不是很方便。
發明內容
本發明實施例提供一種數據庫中的多版本并發控制方法及數據庫系統,方便對數據庫中各個版本頁面數據的查詢。
本發明實施例第一方面提供一種數據庫中的多版本并發控制方法,包括:
接收讀取事務產生的數據讀取請求,所述數據讀取請求用于請求讀取所述數據庫中的頁面,所述數據讀取請求中包括所述讀取事務的時間戳;
如果所述數據讀取請求所請求讀取的頁面的當前版本頁面的時間戳小于或等于所述讀取事務的時間戳,讀取所述數據讀取請求所請求讀取的頁面的當前版本頁面;
如果所述當前版本頁面的時間戳大于所述讀取事務的時間戳,通過所述請求讀取的頁面的數據頁鏈中所述當前版本頁面的頁面指針進行頁級回滾,以將所述當前版本頁面回滾到時間戳小于或等于所述讀取事務的時間戳的版本頁面;
其中,所述數據頁鏈包括所述請求讀取的頁面的各個版本頁面的頁面指針,其中每一個版本頁面的頁面指針用于指向該版本頁面的前一版本頁面。
本發明實施例第一方面的第一種可能實現方式中,所述方法還包括:
如果在所述進行頁級回滾后的版本頁面的時間戳所指示的時刻,所述進行頁級回滾后的版本頁面中的一條或多條記錄處于操作狀態,則根據所述請求讀取的頁面的記錄鏈中包含的所述一條或多條記錄的記錄指針進行行級回滾,將所述處于操作狀態的記錄回滾到操作前的記錄;
其中,所述記錄鏈中包括所述請求讀取的頁面的各個版本頁面所包含的記錄的記錄指針,其中一個版本頁面中一個記錄的記錄指針用于指向該記錄的前一版本記錄。
結合本發明實施例第一方面,或第一方面的第一種可能實現方式,在本發明實施例第一方面的第二種可能實現方式中,所述方法還包括:
接收寫操作事務產生的數據寫操作請求,所述數據寫操作請求用于請求對所述數據庫中的頁面進行寫操作,所述數據寫操作請求中包括所述寫操作事務的時間戳;
讀取所述數據寫操作請求所請求的頁面的第一版本頁面,根據所述數據寫操作請求對所述第一版本頁面進行寫操作以得到第二版本頁面;所述第一版本頁面是在執行所述寫操作之前,所述數據庫中儲存的所述數據寫操作請求所請求的頁面的最新版本頁面;
根據所述寫操作事務的時間戳設置所述第二版本頁面的時間戳;
更新所述數據庫的事務鏈,以使其包括所述寫操作事務的操作事務指針,所述事務鏈包括所述數據庫的頁面中記錄的多個操作事務指針,其中每一個操作事務指針用于指向對所述數據庫的頁面中記錄的前一次操作事務;
設置所述第二版本頁面的回滾信息,所述回滾信息包括頁面指針和記錄指針。
結合本發明實施例第一方面的第二種可能實現方式,在本發明實施例第一方面的第三種可能實現方式中,所述根據所述數據寫操作請求對所述第一版本頁面進行寫操作以得到第二版本頁面,具體包括:當所述數據寫操作請求為請求插入記錄的數據寫操作請求時,在所述第一版本頁面中插入所述數據寫操作請求所請求插入的記錄以得到第二版本頁面,儲存所述第一版本頁面和第二版本頁面;
所述設置所述第二版本頁面的回滾信息,具體包括:設置所述第二版本頁面的頁面指針,以使得所述第二版本頁面的頁面指針用于指向所述第一版本頁面;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310750940.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:罌粟收獲機及其工作方法
- 下一篇:大蒜聯合收獲機





