大規(guī)模并行處理數(shù)據(jù)庫(kù)中執(zhí)行事務(wù)的系統(tǒng)和方法
【專利說(shuō)明】大規(guī)模并行處理數(shù)據(jù)庫(kù)中執(zhí)行事務(wù)的系統(tǒng)和方法
[0001]本發(fā)明要求2013年3月13日遞交的發(fā)明名稱為“大規(guī)模并行處理數(shù)據(jù)庫(kù)中執(zhí)行事務(wù)的系統(tǒng)和方法(System and Method for Performing a Transact1n in a MassivelyParallel Processing Database) ”的美國(guó)非臨時(shí)專利申請(qǐng)案序列號(hào)13/798,344的在先申請(qǐng)優(yōu)先權(quán),該在先申請(qǐng)的內(nèi)容以引入的方式并入本文本中。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及一種用于數(shù)據(jù)庫(kù)的系統(tǒng)和方法,尤其涉及一種通過(guò)利用基于快照隔離的一致性模型在大規(guī)模并行處理數(shù)據(jù)庫(kù)中執(zhí)行事務(wù)的系統(tǒng)和方法。
【背景技術(shù)】
[0003]大規(guī)模并行處理(MPP)數(shù)據(jù)庫(kù)是指利用大量處理器并行執(zhí)行一組計(jì)算的數(shù)據(jù)庫(kù)。在MPP系統(tǒng)中,以協(xié)同方式通過(guò)多個(gè)處理器處理程序,其中每個(gè)處理器工作于程序的不同部分和/或不同數(shù)據(jù)。
[0004]MPP數(shù)據(jù)庫(kù)系統(tǒng)基于無(wú)共享架構(gòu),其中數(shù)據(jù)庫(kù)的表被分割成多個(gè)分區(qū)并且分布到不同處理節(jié)點(diǎn)。當(dāng)數(shù)據(jù)庫(kù)查詢到達(dá)時(shí),根據(jù)數(shù)據(jù)分布以及優(yōu)化執(zhí)行計(jì)劃來(lái)劃分每個(gè)查詢?nèi)蝿?wù)并且將其分配給處理節(jié)點(diǎn)。每個(gè)處理節(jié)點(diǎn)中的處理實(shí)體僅管理其數(shù)據(jù)部分。然而,在執(zhí)行查詢?nèi)蝿?wù)期間,處理實(shí)體之間可以彼此通信以交換所需信息??梢詫⒉樵儎澐殖啥鄠€(gè)子查詢,并且可以在部分或所有處理節(jié)點(diǎn)中并行地或以某一最優(yōu)次序執(zhí)行子查詢。子查詢的結(jié)果可以被聚合并進(jìn)一步處理。隨后,可以基于所述結(jié)果執(zhí)行更多的子查詢。
【發(fā)明內(nèi)容】
[0005]本發(fā)明一實(shí)施例提供的用于在大規(guī)模并行處理(MPP)數(shù)據(jù)庫(kù)中執(zhí)行事務(wù)的方法包括:通過(guò)事務(wù)管理器從第一資源管理器接收第一資源管理器的第一快照,以及通過(guò)事務(wù)管理器從第二資源管理器接收第二資源管理器的第二快照。此外,所述方法包括調(diào)和第一資源管理器的第一快照以及第二資源管理器的第二快照以產(chǎn)生調(diào)和快照,以及通過(guò)事務(wù)管理器將調(diào)和快照傳送到第一資源管理器以及第二資源管理器。另外,所述方法包括使用調(diào)和快照?qǐng)?zhí)行事務(wù)。
[0006]本發(fā)明另一實(shí)施例提供的在MPP數(shù)據(jù)庫(kù)中執(zhí)行第一事務(wù)的方法包括:通過(guò)第一資源管理器將第一資源管理器的第一快照傳送到事務(wù)管理器,以及通過(guò)資源管理器從事務(wù)管理器接收根據(jù)第一資源管理器的第一快照以及第二資源管理器的第二快照的調(diào)和后得到的調(diào)和快照。此外,所述方法包括使用調(diào)和快照?qǐng)?zhí)行第一事務(wù)。
[0007]本發(fā)明另一實(shí)施例提供的MPP數(shù)據(jù)庫(kù)的第一節(jié)點(diǎn)包括:處理器以及存儲(chǔ)有可被該處理器執(zhí)行的程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。該程序包括用以進(jìn)行以下操作的指令:通過(guò)事務(wù)管理器從第一資源管理器接收第一資源管理器的第一快照,以及通過(guò)事務(wù)管理器從第二資源管理器接收第二資源管理器的第二快照。此外,程序包括用以進(jìn)行以下操作的指令:調(diào)和第一資源管理器的第一快照以及第二資源管理器的第二快照,以及通過(guò)事務(wù)管理器將調(diào)和快照傳送到第一資源管理器以及第二資源管理器。另外,程序包括使用調(diào)和快照?qǐng)?zhí)行事務(wù)的指令。
[0008]本發(fā)明另一實(shí)施例提供的MPP數(shù)據(jù)庫(kù)的第一節(jié)點(diǎn)包括處理器以及存儲(chǔ)有可被該處理器執(zhí)行的程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。該程序包括用以進(jìn)行以下操作的指令:通過(guò)第一資源管理器將第一資源管理器的第一快照傳送到事務(wù)管理器,以及通過(guò)第一資源管理器接收調(diào)和快照以及第二資源管理器的第二快照。此外,該程序包括使用調(diào)和快照?qǐng)?zhí)行事務(wù)的指令。
[0009]以上內(nèi)容概述了本發(fā)明的實(shí)施例的特征,以便可以更好地理解以下本發(fā)明的【具體實(shí)施方式】。下文將描述本發(fā)明的實(shí)施例的附加特征和有益效果,這些特征和有益效果形成本發(fā)明的權(quán)利要求書的主題。所屬領(lǐng)域的技術(shù)人員應(yīng)了解,本發(fā)明所公開的概念和特定實(shí)施例可以輕易地用被修改或設(shè)計(jì)用于實(shí)現(xiàn)本發(fā)明的相同目的。所屬領(lǐng)域的技術(shù)人員還應(yīng)意識(shí)到,此類等效構(gòu)造不脫離如所附權(quán)利要求書中所闡述的本發(fā)明的精神和范圍。
【附圖說(shuō)明】
[0010]為了更完整地理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)在參考以下結(jié)合附圖進(jìn)行的描述,其中:
[0011]圖1圖示了本發(fā)明實(shí)施例的大規(guī)模并行處理(MPP)數(shù)據(jù)庫(kù)系統(tǒng);
[0012]圖2圖示了本發(fā)明實(shí)施例在MPP數(shù)據(jù)庫(kù)系統(tǒng)中執(zhí)行事務(wù)的方法;
[0013]圖3圖示了本發(fā)明實(shí)施例在MPP數(shù)據(jù)庫(kù)系統(tǒng)中調(diào)和快照的方法;
[0014]圖4圖示了本發(fā)明實(shí)施例兩階段協(xié)議;
[0015]圖5圖示了本發(fā)明實(shí)施例的全局事務(wù)ID的產(chǎn)生過(guò)程;
[0016]圖6圖示了在單一節(jié)點(diǎn)中執(zhí)行的查詢;
[0017]圖7圖示了不一致事務(wù)狀態(tài);
[0018]圖8圖示了使用快照調(diào)和在多個(gè)節(jié)點(diǎn)上執(zhí)行的語(yǔ)句;以及
[0019]圖9圖示了圖示本發(fā)明一個(gè)實(shí)施例的計(jì)算平臺(tái)的框圖,所述計(jì)算平臺(tái)可以用于實(shí)施如本文中所描述的裝置以及方法。
[0020]除非另有指示,否則不同圖中的對(duì)應(yīng)標(biāo)號(hào)和符號(hào)通常指代對(duì)應(yīng)部分。繪制各圖是為了清楚地說(shuō)明實(shí)施例的相關(guān)方面,因此未必是按比例繪制的。
【具體實(shí)施方式】
[0021]首先應(yīng)理解,盡管下文闡述了一個(gè)或多個(gè)實(shí)施例的實(shí)施方案,但所公開的系統(tǒng)和/或方法可使用多種技術(shù)手段來(lái)實(shí)施,無(wú)論該技術(shù)是當(dāng)前已知還是現(xiàn)有的。本發(fā)明決不應(yīng)限于下文所揭示的實(shí)施方案、附圖和技術(shù),以及本文所描述的示例性設(shè)計(jì)和實(shí)施方案,而應(yīng)覆蓋所附權(quán)利要求書的范圍以及其等效物的完整范圍。
[0022]事務(wù)構(gòu)成了數(shù)據(jù)庫(kù)系統(tǒng)的原子性、并發(fā)性、隔離性以及持久性(ACID)特性的基礎(chǔ)。事務(wù)是具有已提交讀隔離的語(yǔ)義的事務(wù)。ACID特性確保可靠地處理數(shù)據(jù)庫(kù)事務(wù)。原子性要求如果事務(wù)的一部分失敗,那么整個(gè)事務(wù)失敗,并且數(shù)據(jù)庫(kù)保持不變。一致性確保事務(wù)將數(shù)據(jù)庫(kù)從一個(gè)有效狀態(tài)轉(zhuǎn)變?yōu)榱硪挥行顟B(tài)。隔離性確保事務(wù)的并發(fā)執(zhí)行的結(jié)果與事務(wù)以串行次序執(zhí)行是一樣的。此外,持久性要求一旦已經(jīng)提交事務(wù),即使處理器節(jié)點(diǎn)瞬態(tài)丟失,例如因斷電或死機(jī),由事務(wù)造成的所有改變也保持持久以及永久,并且事務(wù)保持為已提交的。
[0023]為了維持ACID特性,事務(wù)的各步驟之間的中間狀態(tài)不應(yīng)對(duì)其它并發(fā)事務(wù)可見。對(duì)于原子性,如果發(fā)生阻止事務(wù)完成的故障,那么這些步驟中沒(méi)有步驟影響到數(shù)據(jù)庫(kù),從而確保人人都看到一致數(shù)據(jù)。在單一節(jié)點(diǎn)非分布式數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)庫(kù)管理實(shí)例與事務(wù)管理器通過(guò)實(shí)施嚴(yán)格的兩階段鎖定(SS2PL)或快照確保ACID特性。事務(wù)是一組動(dòng)作的邏輯分組,所述動(dòng)作例如選擇數(shù)據(jù)、更新數(shù)據(jù)、插入數(shù)據(jù)以及刪除數(shù)據(jù)??缭蕉鄠€(gè)節(jié)點(diǎn)的事務(wù)系統(tǒng)需要了解整個(gè)系統(tǒng)中當(dāng)前活動(dòng)事務(wù)的全局信息。當(dāng)前活動(dòng)事務(wù)的信息可以被稱為事務(wù)快照或快照。
[0024]數(shù)據(jù)以及系統(tǒng)的元數(shù)據(jù)信息用于創(chuàng)建快照??煺盏拿啃懈郊佑行拊撍氖聞?wù)ID。快照是系統(tǒng)中當(dāng)前活動(dòng)事務(wù)的列表。通過(guò)使用快照,事務(wù)管理器可以在執(zhí)行任何動(dòng)作之前確定數(shù)據(jù)的可見性。如果事務(wù)ID與快照列表中的任一事務(wù)相關(guān),那么數(shù)據(jù)不應(yīng)是可見的,因?yàn)槭聞?wù)仍是活動(dòng)的,并且動(dòng)作的中間狀態(tài)不應(yīng)被其它事務(wù)看到。
[0025]圖1圖示了大規(guī)模并行處理(MPP)數(shù)據(jù)庫(kù)系統(tǒng)100的一個(gè)實(shí)例。系統(tǒng)100圖示了四個(gè)節(jié)