国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于多版本并發(fā)提交狀態(tài)的事務(wù)控制塊的制作方法

      文檔序號:9865587閱讀:427來源:國知局
      用于多版本并發(fā)提交狀態(tài)的事務(wù)控制塊的制作方法
      【技術(shù)領(lǐng)域】
      [0001 ]本公開涉及數(shù)據(jù)庫管理系統(tǒng)。
      【背景技術(shù)】
      [0002]數(shù)據(jù)庫管理系統(tǒng)可以使用多版本并發(fā)控制(MVCC)作為用于向多個(gè)讀取者或者寫入者提供對數(shù)據(jù)庫的并發(fā)訪問的機(jī)制。通常,并發(fā)控制方法可以被用于防止讀取者訪問由于讀取與寫入操作并發(fā)執(zhí)行所導(dǎo)致的寫入一半的或不一致的數(shù)據(jù)。MVCC通過向用戶提供對在時(shí)間上的特定瞬間的數(shù)據(jù)庫的快照的訪問來實(shí)現(xiàn)這一目的,所述瞬間通常是用戶發(fā)起讀取操作的時(shí)刻。由寫入者所做的任何改變對于其他人不可見,直到寫事務(wù)完成或者“提交”為止。
      [0003]為了提供這些快照,MVCC數(shù)據(jù)庫可以存儲(chǔ)它的數(shù)據(jù)的多個(gè)版本。例如,當(dāng)數(shù)據(jù)庫更新數(shù)據(jù)項(xiàng),而不是用新的數(shù)據(jù)蓋寫(overwrite)舊的數(shù)據(jù)時(shí),數(shù)據(jù)庫將舊的數(shù)據(jù)標(biāo)記為陳舊的并且增加新的數(shù)據(jù),將新的數(shù)據(jù)標(biāo)記為更加新的版本。使用多個(gè)存儲(chǔ)的版本,當(dāng)讀取者發(fā)起讀取操作時(shí),即使數(shù)據(jù)被并發(fā)寫入者蓋寫,數(shù)據(jù)庫允許讀取者訪問過去有效的數(shù)據(jù)。在寫入事務(wù)被提交之后,數(shù)據(jù)庫向讀取者提供新的值。
      [0004]提交事務(wù)通常涉及更新該事務(wù)中涉及的所有數(shù)據(jù)庫值的版本信息。這可能招致很長的等待時(shí)間,以致影響數(shù)據(jù)庫性能。

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

      [0005]根據(jù)本公開的一方面,提供了一種用于讀取數(shù)據(jù)庫中的版本化數(shù)據(jù)的計(jì)算機(jī)實(shí)施的方法,包括:由至少一個(gè)處理器接收行讀取請求;由所述至少一個(gè)處理器確定所述行被版本化;由所述至少一個(gè)處理器確定在事務(wù)控制塊中存在用于與所述行相關(guān)聯(lián)的行銷毀事務(wù)的第一時(shí)間戳信息;以及由所述至少一個(gè)處理器從事務(wù)控制塊檢索第一時(shí)間戳信息。
      [0006]根據(jù)本公開的另一方面,提供了一種系統(tǒng),包括:存儲(chǔ)器;以及至少一個(gè)處理器,其被耦合到存儲(chǔ)器并且被配置為:接收行讀取請求;確定所述行被版本化;確定在事務(wù)控制塊中存在用于與所述行相關(guān)聯(lián)的行銷毀事務(wù)的第一時(shí)間戳信息;以及從事務(wù)控制塊檢索第一時(shí)間戳信息。
      [0007]根據(jù)本公開的又一方面,提供了一種存儲(chǔ)有指令的有形的計(jì)算機(jī)可讀設(shè)備,當(dāng)所述指令被至少一個(gè)計(jì)算設(shè)備運(yùn)行時(shí),使得所述至少一個(gè)計(jì)算設(shè)備執(zhí)行操作,所述操作包括:接收行讀取請求;確定所述行被版本化;確定在事務(wù)控制塊中存在用于與所述行相關(guān)聯(lián)的行銷毀事務(wù)的第一時(shí)間戳信息;以及從事務(wù)控制塊檢索第一時(shí)間戳信息。
      【附圖說明】
      [0008]附圖被并入本文,并且形成說明書的一部分。
      [0009]圖1是示出根據(jù)示例性實(shí)施例的數(shù)據(jù)庫系統(tǒng)環(huán)境的框圖。
      [0010]圖2A至圖21示出了根據(jù)示例性實(shí)施例的由事務(wù)管理器維護(hù)的用于提供多版本并發(fā)控制的多版本并發(fā)控制(MVCC)結(jié)構(gòu)和當(dāng)一系列數(shù)據(jù)庫事務(wù)發(fā)生時(shí)該MVCC結(jié)構(gòu)的內(nèi)容。
      [0011]圖3是示出根據(jù)示例性實(shí)施例的事務(wù)控制塊(TCB)可以轉(zhuǎn)換通過的潛在狀態(tài)的狀態(tài)圖。
      [0012]圖4A至圖4E示出根據(jù)示例性實(shí)施例的由事務(wù)管理器在多版本并發(fā)控制數(shù)據(jù)庫中使用事務(wù)控制塊執(zhí)行讀取事務(wù)的方法的流程圖。
      [0013]圖5是用于實(shí)施各種實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)。
      [0014]在附圖中,相同的參考標(biāo)記一般表示相同或相似的元件。此外,通常,參考標(biāo)記的最左邊的(多個(gè))參考數(shù)字標(biāo)識參考標(biāo)記首次出現(xiàn)的圖。
      【具體實(shí)施方式】
      [0015]本文提供了利用用于向讀取者-寫入者提供對事務(wù)提交狀態(tài)的訪問的事務(wù)控制塊的系統(tǒng)、方法和/或計(jì)算機(jī)程序產(chǎn)品實(shí)施例、和/或它們的組合以及子組合。
      [0016]雖然在數(shù)據(jù)庫管理系統(tǒng)的上下文中舉例示出本文描述的實(shí)施例,但是它們通常也適用于使用多版本并發(fā)控制(例如,實(shí)現(xiàn)事務(wù)存儲(chǔ)器等的編程語言)的任何系統(tǒng)。
      [0017]圖1是示出根據(jù)示例性實(shí)施例的數(shù)據(jù)庫系統(tǒng)環(huán)境100的框圖。數(shù)據(jù)庫系統(tǒng)環(huán)境100包括一個(gè)或多個(gè)客戶端110和數(shù)據(jù)庫管理系統(tǒng)(DBMS) WOt3DBMSWO包括多版本并發(fā)控制事務(wù)管理器122和數(shù)據(jù)庫124。客戶端I 1a-1lOb可以通過網(wǎng)絡(luò)150與DBMS 120通信。網(wǎng)絡(luò)150可以是用于以電子方式發(fā)送數(shù)據(jù)的任何通信網(wǎng)絡(luò),包括有線網(wǎng)絡(luò)或無線網(wǎng)絡(luò),諸如例如,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、因特網(wǎng)等。
      [0018]客戶端110可以是被配置為訪問數(shù)據(jù)庫124的任何計(jì)算設(shè)備,諸如例如,計(jì)算機(jī)、膝上型計(jì)算機(jī)、移動(dòng)設(shè)備、服務(wù)器等。
      [0019]數(shù)據(jù)庫124可以是被配置為存儲(chǔ)數(shù)據(jù)、處理數(shù)據(jù)事務(wù)、并且響應(yīng)于查詢來檢索數(shù)據(jù)的任何數(shù)據(jù)庫系統(tǒng)。
      [0020]事務(wù)管理器122可以被實(shí)現(xiàn)為數(shù)據(jù)庫管理系統(tǒng)的一部分,其被配置為管理數(shù)據(jù)庫124的數(shù)據(jù)的結(jié)構(gòu)、存儲(chǔ)、和檢索。事務(wù)管理器122在客戶端對數(shù)據(jù)庫的并發(fā)訪問期間管理數(shù)據(jù)庫事務(wù),諸如讀取、寫入和更新命令,并且處理提交操作以便提供數(shù)據(jù)庫的一致視圖。
      [0021]圖2A示出了根據(jù)示例性實(shí)施例的由事務(wù)管理器122維護(hù)的用于提供多版本并發(fā)控制的MVCC結(jié)構(gòu)200 JVCC結(jié)構(gòu)200包括表空間段210、版本空間段220、以及一個(gè)或多個(gè)事務(wù)控制塊(TCB)230。
      [0022 ]表空間段210存儲(chǔ)數(shù)據(jù)庫124的內(nèi)容,也就是說,包括一系列行和列的表。在一個(gè)實(shí)施例中,表空間段210中的表的行包含以下列:RowID(行ID) 21 UVisible (可見)212、Vers1necK版本化)213和數(shù)據(jù)列。在本文所示的例子中,表空間段210包含具有數(shù)據(jù)列Person-1d(人的 Id)214 和 Person-Name(人的名字)215 的 PERSON(人)表。
      [0023]版本空間段220包含的行與表空間段210上的相同的行相對應(yīng),其存儲(chǔ)用于數(shù)據(jù)庫124的數(shù)據(jù)的版本信息。版本空間段220的行包含以下列:創(chuàng)建時(shí)間戳提交標(biāo)識符(CreateT i me s tamp Comm it Identifier,CTS_CID)221、創(chuàng)建到TCB的時(shí)間戮指針(CreateTimestamp Po inter to TCB,CTS-PtrTCB) 222、銷毀時(shí)間戮提交標(biāo)識符(DestroyTimestamp Commit Identifier , DTS-CID) 223、和銷毀到 TCB 的曰寸間戮指針(DestroyTimestamp Pointer to TCB,DTS-PtrTCB)224。
      [0024]每個(gè)TCB230對應(yīng)于原子數(shù)據(jù)庫事務(wù)。原子數(shù)據(jù)庫事務(wù)可以是被一起提交的、諸如讀取和寫入操作的一個(gè)或多個(gè)操作的組。TCB 231維護(hù)事務(wù)的提交信息,其可以被讀取者進(jìn)程使用以確定響應(yīng)于讀取操作什么數(shù)據(jù)版本應(yīng)該被返回。每個(gè)TCB包含索引值231、狀態(tài)值232、先前時(shí)間戳(PreTS)233、時(shí)間戳234和事務(wù)ID(TID)235。
      [0025]圖2A至圖21示出了根據(jù)示例性實(shí)施例的當(dāng)一系列數(shù)據(jù)庫事務(wù)發(fā)生時(shí)的MVCC結(jié)構(gòu)200的內(nèi)容。
      [0026]圖2A示出了根據(jù)實(shí)施例的表空間210和版本空間220的示例性初始內(nèi)容。在表空間210中,PERSON表包含分別與具有Person-1D 01、02和03的三個(gè)人Tom、Jim和Bill相關(guān)聯(lián)的數(shù)據(jù)的三行數(shù)據(jù)。最初,這三行具有可見標(biāo)志設(shè)置,這表明該行是可見的,并且可以被返回而無需檢查版本。在版本空間220上,對于所有的三行,CTS-CID 221具有CID時(shí)間戳值500,這表明這三行在時(shí)刻500被提交。
      [0027]圖2B示出了根據(jù)實(shí)施例的在發(fā)起更新person-1D 001的Person-Name值的事務(wù)之后的數(shù)據(jù)庫124的內(nèi)容。在這個(gè)例子中,事務(wù)301可以與數(shù)據(jù)庫查詢類似地運(yùn)行,所述數(shù)據(jù)庫查詢諸如:UPDATE “PERSON” SET “NAME” = ‘ John,WHERE “ID” = ‘ 01’。
      [0028]圖2B還示出了撤消(undo)日志240,其包含按運(yùn)行的順序的數(shù)據(jù)庫操作的列表。撤消日志240可以存儲(chǔ)用于事務(wù)回滾以及在版本空間220中清除TCB指針的信息,如在下面詳細(xì)解釋的。在示出的例子中,數(shù)據(jù)庫一一在運(yùn)行UPDATE
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1