欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

事務(wù)的回滾方法和裝置,以及關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的制作方法

文檔序號(hào):8287873閱讀:286來(lái)源:國(guó)知局
事務(wù)的回滾方法和裝置,以及關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù),尤其涉及事務(wù)的回滾方法和裝置,以及關(guān)系數(shù)據(jù)庫(kù)管理 系統(tǒng)。
【背景技術(shù)】
[0002] 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(relational database management systems, RDBMS)中, "事務(wù)"指的是工作站和程序之間、兩個(gè)工作站或兩個(gè)程序之間的交換。這些工作站或程序 完成了特定動(dòng)作或結(jié)果。交換開(kāi)始時(shí),事務(wù)開(kāi)啟;提交特定動(dòng)作或結(jié)果時(shí),事務(wù)結(jié)束。
[0003] -些傳統(tǒng)的RDBMS通過(guò)使用保存點(diǎn)(saTOpoint)來(lái)支持子事務(wù)。保存點(diǎn)在事務(wù)開(kāi) 始和提交之間創(chuàng)建。保存點(diǎn)允許撤銷某個(gè)保存點(diǎn)之后的數(shù)據(jù)修改。本文中稱為"回滾到保 存點(diǎn)"。大多數(shù)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)使用撤銷記錄或撤銷記錄的某一變體進(jìn)行多版本控制以保 存讀事務(wù)待使用的同一記錄的不同版本。
[0004] 為了保證事務(wù)發(fā)生時(shí)具有完整性,必須防止兩個(gè)事務(wù)同時(shí)更新同一數(shù)據(jù)。通常使 用正在更新的數(shù)據(jù)上的鎖。當(dāng)事務(wù)對(duì)對(duì)象進(jìn)行加鎖時(shí),事務(wù)使用數(shù)據(jù)結(jié)構(gòu)對(duì)該對(duì)象進(jìn)行標(biāo) 記以通知其它事務(wù)有關(guān)該鎖和對(duì)該對(duì)象進(jìn)行的操作類型的信息。該標(biāo)記為控制塊結(jié)構(gòu),有 時(shí)也稱為鎖控制塊(Lock Control Block,LCB) 〇
[0005] 當(dāng)回滾到某個(gè)保存點(diǎn)時(shí),必須考慮該保存點(diǎn)之后獲取的鎖??舍尫胚@些用于使得 修改(現(xiàn)已回滾)不為其它事務(wù)所見(jiàn)的鎖。因此,當(dāng)回滾到保存點(diǎn)并喚醒其它事務(wù)等待對(duì) 鎖定行進(jìn)行操作時(shí)存在對(duì)用于選擇性地釋放鎖的方法的需求。
[0006] 然而,發(fā)明人發(fā)現(xiàn)在現(xiàn)有技術(shù)中,當(dāng)回滾到某個(gè)保存點(diǎn)后,等待中的事務(wù)未被喚 醒;或者,即使在回滾到保存點(diǎn)后,鎖被釋放并且等待中的事務(wù)被喚醒,也需要掃描整個(gè)鎖 列表來(lái)匹配對(duì)應(yīng)的資源。

【發(fā)明內(nèi)容】

[0007] 本發(fā)明的各項(xiàng)實(shí)施例涉及事務(wù)的回滾方法和裝置,以及關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。
[0008] 根據(jù)本發(fā)明的實(shí)施例的第一方面,提供一種在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中應(yīng)用的事務(wù) 的回滾方法,所述方法包括:
[0009] 當(dāng)回滾到保存點(diǎn)時(shí),從事務(wù)塊中獲取撤銷記錄;
[0010] 判斷所述撤銷記錄是否為數(shù)據(jù)的第一撤銷記錄;
[0011] 如果所述撤銷記錄為所述第一撤銷記錄,則在所述數(shù)據(jù)對(duì)應(yīng)的鎖控制塊LCB上標(biāo) 記釋放信息,使得在應(yīng)用所述撤銷操作后釋放一個(gè)或多個(gè)等待所述LCB的事務(wù)。
[0012] 根據(jù)本發(fā)明的實(shí)施例的第二方面,提供一種在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中應(yīng)用的事務(wù) 的回滾裝置,所述裝置包括:
[0013] 第一獲取單元,用于當(dāng)回滾到保存點(diǎn)時(shí),從事務(wù)塊中獲取撤銷記錄;
[0014] 第一判斷單元,用于判斷所述撤銷記錄是否為數(shù)據(jù)的第一撤銷記錄;
[0015] 標(biāo)記單元,用于如果所述撤銷記錄為所述第一撤銷記錄,在所述數(shù)據(jù)對(duì)應(yīng)的LCB 上標(biāo)記釋放信息。
[0016] 根據(jù)本發(fā)明的實(shí)施例的第三方面,提供一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),其中所述關(guān)系 數(shù)據(jù)庫(kù)管理系統(tǒng)包括如上所述的事務(wù)的回滾裝置。
[0017] 本發(fā)明的優(yōu)點(diǎn)在于:由于鎖釋放算法僅需要遍歷鎖列表一次,所以該算法更為高 效;并且即使一些事務(wù)正在等待同一元組,也可以釋放鎖。此外,在回滾到保存點(diǎn)期間不存 在單獨(dú)的資源釋放鎖。
[0018] 參考以下描述和附圖,本發(fā)明的這些和其它方面以及特征將顯而易見(jiàn)。在描述和 附圖中,詳細(xì)揭示了本發(fā)明的特定實(shí)施例,以指示出本發(fā)明的原理可以采用的一些方式,但 應(yīng)理解,本發(fā)明并不限于對(duì)應(yīng)的范圍。相反,本發(fā)明包括所附權(quán)利要求書(shū)的精神和項(xiàng)內(nèi)的所 有變化、修改以及等效物。
[0019] 參考一項(xiàng)實(shí)施例描述和/或說(shuō)明的特征可以采用相同方式或類似方式用于一項(xiàng) 或多項(xiàng)其它實(shí)施例,和/或與其它實(shí)施例的特征結(jié)合使用或替代這些特征。
[0020] 應(yīng)強(qiáng)調(diào)的是,本說(shuō)明書(shū)中所用的術(shù)語(yǔ)"包括"用于說(shuō)明存在所述特征、整體、步驟或 部件,但并不排除存在或添加一個(gè)或多個(gè)其它特征、整體、步驟、部件或上述項(xiàng)的組合。
[0021] 參考以下附圖可以更好地理解本發(fā)明的許多方面。附圖中的部件不必按比例繪 制,而是將重點(diǎn)放在清晰地說(shuō)明本發(fā)明的原理上。為了有助于說(shuō)明并描述本發(fā)明的一些部 分,可以將附圖中對(duì)應(yīng)部分的尺寸放大,例如,相對(duì)于其它部分而言,使其比根據(jù)本發(fā)明實(shí) 際制作的示例性裝置大。本發(fā)明的一個(gè)附圖或?qū)嵤├忻枥L的元件和特征可以與一個(gè)或多 個(gè)額外附圖或?qū)嵤├忻枥L的元件和特征相結(jié)合。此外,在附圖中,相同參考編號(hào)指代若干 視圖中的對(duì)應(yīng)部分,并且可以用來(lái)指代一項(xiàng)以上實(shí)施例中的相同或類似部分。
【附圖說(shuō)明】
[0022] 附圖被包括在內(nèi)以提供對(duì)本發(fā)明的進(jìn)一步理解,附圖構(gòu)成本說(shuō)明書(shū)的一部分,說(shuō) 明本發(fā)明的優(yōu)選實(shí)施例,并且與描述內(nèi)容一起用于闡明本發(fā)明的原理。附圖中相同的參考 編號(hào)始終表示相同的元件。
[0023] 在附圖中:
[0024] 圖1是本發(fā)明的實(shí)施例的方法的流程圖;
[0025] 圖2所示為本發(fā)明中標(biāo)記了 LCB的示例。
[0026] 圖3是本發(fā)明的實(shí)施例的方法的另一流程圖;
[0027] 圖4是本發(fā)明的實(shí)施例的回滾裝置的示意圖;
[0028] 圖5是本發(fā)明的實(shí)施例的回滾裝置的另一示意圖。
【具體實(shí)施方式】
[0029] 各實(shí)施例的許多特征和優(yōu)點(diǎn)在詳細(xì)說(shuō)明書(shū)中顯而易見(jiàn),因此,所附權(quán)利要求書(shū)意 圖涵蓋屬于其真實(shí)精神和范圍內(nèi)的實(shí)施例的所有此類特征和優(yōu)點(diǎn)。此外,由于所屬領(lǐng)域的 技術(shù)人員將容易想到多種修改和變化,因而并不希望將發(fā)明性實(shí)施例限于所說(shuō)明并描述的 確切構(gòu)造和操作,因此,可以采取的所有適當(dāng)修改和等效物均屬于相應(yīng)范圍內(nèi)。
[0030] 下文參考附圖來(lái)描述本發(fā)明的優(yōu)選實(shí)施例。
[0031] 如今,許多商用DBMS(例如,Oracle)支持回滾到保存點(diǎn)。但是這些數(shù)據(jù)庫(kù)在回滾 到保存點(diǎn)時(shí)不會(huì)喚醒等待的事務(wù)。在回滾到保存點(diǎn)后,如果沒(méi)有其它會(huì)話等待對(duì)行進(jìn)行操 作,那么允許用戶(例如新會(huì)話或其它會(huì)話)對(duì)行進(jìn)行操作。
[0032] 此外,存在一些用于通過(guò)使用嵌套事務(wù)實(shí)施保存點(diǎn)的方法。在該方法中,每創(chuàng)建一 個(gè)保存點(diǎn),開(kāi)啟一個(gè)事務(wù)并回滾該事務(wù)以支持回滾到保存點(diǎn)。但是,該方法的問(wèn)題在于需要 更多資源。
[0033] 例如,在PostgreSQL技術(shù)中,在每個(gè)保存點(diǎn)后分配新的事務(wù)id (子事務(wù))及對(duì)應(yīng) 的資源所有者。對(duì)每個(gè)子事務(wù)上鎖(關(guān)系、事務(wù)等)后,PostgreSQL將當(dāng)前子事務(wù)的資源 所有者與該鎖關(guān)聯(lián)。所以在每個(gè)保存點(diǎn)后,任意新鎖會(huì)擁有不同的資源所有者。
[0034] 當(dāng)回滾到保存點(diǎn)時(shí),對(duì)于每個(gè)保存點(diǎn)均需掃描整個(gè)鎖列表來(lái)匹配對(duì)應(yīng)的資源所有 者。如果匹配,則PostgreSQL釋放鎖。如果事務(wù)中存在多個(gè)保存點(diǎn)并且已回滾到第一保存 點(diǎn),那么PostgreSQL需要遍歷整個(gè)鎖列表的次數(shù)等于保存點(diǎn)數(shù)目的一半。
[0035] 例如,存在事務(wù)段。在上述情況下,PostgreSQL將遍歷鎖列表4次來(lái)回滾到保存 點(diǎn)。
[0036] 表 1
[0037]
【主權(quán)項(xiàng)】
1. 一種在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中應(yīng)用的事務(wù)的回滾方法,其特征在于,所述方法包 括: 當(dāng)回滾到保存點(diǎn)時(shí),從事務(wù)塊中獲取撤銷記錄; 判斷所述撤銷記錄是否為數(shù)據(jù)的第一撤銷記錄; 如果所述撤銷記錄為所述第一撤銷記錄,則在所述數(shù)據(jù)對(duì)應(yīng)的鎖控制塊LCB上標(biāo)記釋 放信息,使得在應(yīng)用所述撤銷操作后釋放一個(gè)或多個(gè)等待所述LCB的事務(wù)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 判斷所述撤銷記錄的標(biāo)識(shí)符是否匹配所述保存點(diǎn)的標(biāo)識(shí)符;以及 如果所述撤銷記錄的標(biāo)識(shí)符不匹配所述保存點(diǎn)的標(biāo)識(shí)符,從所述事務(wù)塊中獲取另一撤 銷記錄。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 如果所述撤銷記錄的標(biāo)識(shí)符匹配所述保存點(diǎn)的標(biāo)識(shí)符,則從所述事務(wù)塊中獲取LCB ; 判斷所述LCB是否標(biāo)記為釋放; 如果所述LCB標(biāo)記為釋放,則釋放等待所述LCB的所述事務(wù)和所述LCB。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 如果所述LCB標(biāo)記為釋放,則將所述標(biāo)記的釋放信息從所述LCB移除。
5. 根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述方法還包括: 判斷是否達(dá)到所述事務(wù)的所述LCB列表的末尾;以及 如果未達(dá)到所述事務(wù)的所述LCB列表的末尾,則從所述事務(wù)塊中獲取另一 LCB。
6. -種在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中應(yīng)用的事務(wù)的回滾裝置法,其特征在于,所述裝置包 括: 第一獲取單元,用于當(dāng)回滾到保存點(diǎn)時(shí),從事務(wù)塊中獲取撤銷記錄; 第一判斷單元,用于判斷所述撤銷記錄是否為數(shù)據(jù)的第一撤銷記錄; 標(biāo)記單元,用于如果所述撤銷記錄為所述第一撤銷記錄,在所述數(shù)據(jù)對(duì)應(yīng)的LCB上標(biāo) 記釋放信息。
7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 第二判斷單元,用于判斷所述撤銷記錄的標(biāo)識(shí)符是否匹配所述保存點(diǎn)的標(biāo)識(shí)符;以及 第一獲取單元,還用于如果所述撤銷記錄的標(biāo)識(shí)符不匹配所述保存點(diǎn)的標(biāo)識(shí)符,從所 述事務(wù)塊中獲取另一撤銷記錄。
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 第二獲取單元,用于如果所述撤銷記錄的標(biāo)識(shí)符匹配所述保存點(diǎn)的標(biāo)識(shí)符,從所述事 務(wù)塊中獲取LCB ; 第三判斷單元,用于判斷所述LCB是否標(biāo)記為釋放; 釋放單元,用于如果所述LCB標(biāo)記為釋放,釋放等待所述LCB的所述事務(wù)和所述LCB。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 移除單元,用于如果所述LCB標(biāo)記為釋放,將所述標(biāo)記的釋放信息從所述LCB移除。
10. 根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述裝置還包括: 第四判斷單元,用于判斷是否達(dá)到所述事務(wù)的所述LCB列表的末尾;以及 第二獲取單元,還用于如果未達(dá)到所述事務(wù)的所述LCB列表的末尾,從所述事務(wù)塊中 獲取另一 LCB。
11. 一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),其特征在于,所述關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)包括如權(quán)利要求 6至10中任一權(quán)利要求所述的事務(wù)的回滾裝置。
【專利摘要】本發(fā)明的各項(xiàng)實(shí)施例提供事務(wù)的回滾方法和裝置,以及關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。所述方法包括:當(dāng)回滾到保存點(diǎn)時(shí),從事務(wù)塊中獲取撤銷記錄;判斷所述撤銷記錄是否為數(shù)據(jù)的第一撤銷記錄;如果所述撤銷記錄為所述第一撤銷記錄,在所述數(shù)據(jù)對(duì)應(yīng)的LCB上標(biāo)記釋放信息,使得在應(yīng)用所述撤銷操作后釋放一個(gè)或多個(gè)等待所述LCB的事務(wù)。在本發(fā)明中,即使一些事務(wù)正在等待同一元組,也可以釋放鎖。此外,在回滾到保存點(diǎn)期間不存在單獨(dú)的資源釋放鎖。
【IPC分類】G06F17-30
【公開(kāi)號(hào)】CN104603775
【申請(qǐng)?zhí)枴緾N201380027716
【發(fā)明人】馬赫什·庫(kù)馬爾·巴赫熱, 阿米特·卡皮拉, 阿努拉格·古普塔
【申請(qǐng)人】華為技術(shù)有限公司
【公開(kāi)日】2015年5月6日
【申請(qǐng)日】2013年8月14日
【公告號(hào)】WO2014026611A1
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
胶州市| 武川县| 正定县| 敖汉旗| 青岛市| 广丰县| 浦东新区| 交口县| 吉隆县| 改则县| 双城市| 靖安县| 宁德市| 南宫市| 枣阳市| 杭州市| 南投县| 万州区| 南澳县| 舒兰市| 黄大仙区| 炎陵县| 香港 | 仁化县| 芒康县| 饶平县| 永福县| 收藏| 辽阳县| 大邑县| 邛崃市| 登封市| 云浮市| 阿合奇县| 阳城县| 昌吉市| 龙南县| 伊吾县| 舟山市| 中西区| 五河县|