專利名稱:并行大型分布系統(tǒng)中事務(wù)的切分方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在一個(gè)交互式的網(wǎng)絡(luò)環(huán)境中,大型分布式并行數(shù)字化數(shù)據(jù)處理和管理 系統(tǒng)。
背景技術(shù):
在一個(gè)數(shù)字系統(tǒng)中的某一個(gè)執(zhí)行單元被啟動(dòng)后,這個(gè)執(zhí)行過(guò)程可能會(huì)造成系統(tǒng)中 許多永久存儲(chǔ)點(diǎn)(數(shù)據(jù)庫(kù),文件,外部系統(tǒng)等)的內(nèi)容發(fā)生變化。經(jīng)常,這些變化必須一起 成功或失敗,否則系統(tǒng)數(shù)據(jù)的完整性將被永久性損壞。在目前技術(shù)中,保證這種一致性的辦 法是采用一個(gè)事務(wù)管理系統(tǒng),把所有需要一起發(fā)生的變化收集在同一個(gè)事務(wù)里;在相關(guān)的 執(zhí)行結(jié)束后,事務(wù)管理系統(tǒng)根據(jù)其結(jié)果確定所有收集到的改變是否發(fā)生,并保證發(fā)生的一 致性。在事務(wù)收集可能變化的過(guò)程中,所有的變化所牽涉到的一些資源(數(shù)據(jù))的使用 必須受到限制,因?yàn)椋谠撌聞?wù)結(jié)束之前,其中的資源是不能被使用的,這種限制稱為鎖定, 事務(wù)完的統(tǒng)一性也是建立在這種鎖定的基礎(chǔ)之上的,否則就無(wú)法真正實(shí)現(xiàn)事務(wù)的完整性。 由此可見(jiàn),這種鎖定必然有可能影響該環(huán)境中其他它執(zhí)行(如果它們需要使用同樣資源) 的進(jìn)展。鎖定的時(shí)間越長(zhǎng),該事物對(duì)系統(tǒng)運(yùn)行的負(fù)面影響也越大。在一個(gè)開(kāi)放合作的環(huán)境中,一個(gè)事物可能無(wú)法選擇地牽涉到多個(gè)不曾相關(guān)的數(shù)字 系統(tǒng)。如果其中任何一個(gè)系統(tǒng)執(zhí)行緩慢,其它系統(tǒng)就可能會(huì)發(fā)現(xiàn)由于其中一些資源經(jīng)常被 長(zhǎng)期鎖定造成該系統(tǒng)無(wú)法正常向其它執(zhí)行提供正常服務(wù)。以上所述的事務(wù)管理系統(tǒng)是成熟技術(shù)并被廣泛應(yīng)用。通用事物管理系統(tǒng)大規(guī)模用 于開(kāi)放合作的環(huán)境的例子還不存在。為特殊應(yīng)用(如工作流)設(shè)計(jì)的長(zhǎng)時(shí)間事物管理系統(tǒng) 已有很多。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種并行大型分布系統(tǒng)中事務(wù)的切分的方 法,在大型分布式并行數(shù)字化數(shù)據(jù)處理和管理系統(tǒng)中,如果因某個(gè)系統(tǒng)執(zhí)行緩慢,長(zhǎng)時(shí)間鎖 定部分資源,因此造成整個(gè)事務(wù)執(zhí)行緩慢時(shí),仍然可以使部分的資源進(jìn)行解鎖,為其他事務(wù) 提供相應(yīng)的服務(wù)。為完成上述發(fā)明目的,本發(fā)明是這樣實(shí)現(xiàn)的,一種并行型分布系統(tǒng)中事務(wù)的切分 方法。它應(yīng)用于一個(gè)開(kāi)放合作的環(huán)境中,該開(kāi)放合作的環(huán)境中的包括若干個(gè)服務(wù)器和客戶 端;每個(gè)客戶端可以向不同服務(wù)器提交任務(wù),每個(gè)服務(wù)器可以將任務(wù)分解為一系列子任務(wù) 再次發(fā)放給不同的服務(wù)器,以此類推;每個(gè)任務(wù)和子任務(wù)的規(guī)定和完成的結(jié)果都由不可以 改變形成的數(shù)據(jù)單元來(lái)傳遞;任務(wù)完成的過(guò)程中可以造成一系列數(shù)據(jù)存儲(chǔ)點(diǎn)的內(nèi)容改變, 這樣一個(gè)存儲(chǔ)點(diǎn)稱為一個(gè)資源,一個(gè)資源由許多任務(wù)共享;一個(gè)任務(wù)完成過(guò)程中所有資源 的操作形成一個(gè)事務(wù),該事務(wù)有一個(gè)管理者;為保證任務(wù)完成時(shí)不同資源里的數(shù)據(jù)變化的 一致性,事務(wù)管理者有權(quán)鎖定某些涉及到的資源,拒絕其它事務(wù)在這些資源的某些操作,直至事務(wù)結(jié)束;所述的事務(wù)用于管理任務(wù)需要的資源管理;其特征在于在該任務(wù)涉及的資 源中,每個(gè)子任務(wù)可以只涉及其中的一部分;這一部分資源的操作可以另立事務(wù)管理,從而 實(shí)現(xiàn)切割原事務(wù)管理的總資源。該方案因在原事務(wù)內(nèi)部開(kāi)啟新事務(wù),同時(shí)新事務(wù)對(duì)應(yīng)相應(yīng)的存儲(chǔ)點(diǎn),而新事務(wù)的 開(kāi)啟并不會(huì)影響整個(gè)事務(wù)的執(zhí)行,因此實(shí)現(xiàn)了原事務(wù)與新事務(wù)的并列執(zhí)行。在一個(gè)事務(wù)的 執(zhí)行中,如果某一子系統(tǒng)運(yùn)行需要很長(zhǎng)時(shí)間,則事務(wù)會(huì)鎖定所有資源,而使其他系統(tǒng)無(wú)法使 用,從而會(huì)影響整個(gè)系統(tǒng)的性能;而該方案中,由于啟動(dòng)了一個(gè)新事務(wù),新事物管理的資源 可以隨相應(yīng)子系統(tǒng)的完成而解鎖,使系統(tǒng)得以把這些資源提供給其它任務(wù),大幅度提高系 統(tǒng)的可用性。對(duì)上述方案作進(jìn)一步的限定,當(dāng)原事務(wù)的執(zhí)行不依賴于子執(zhí)行的結(jié)果時(shí),原事務(wù) 保存該子執(zhí)行的執(zhí)行者和數(shù)據(jù)單元;待事務(wù)執(zhí)行成功后,建立新事務(wù),執(zhí)行該新事務(wù)。如事 務(wù)所執(zhí)行失敗,其新事務(wù)被遺棄。所述的新事務(wù)執(zhí)行失敗后,其由于新事務(wù)所產(chǎn)生的數(shù)據(jù)單 元自動(dòng)保存在該子執(zhí)行所對(duì)應(yīng)的存儲(chǔ)點(diǎn)上;不會(huì)對(duì)系統(tǒng)文件造成任何改變。對(duì)上述方案作進(jìn)一步的限定,當(dāng)原事務(wù)的執(zhí)行需要子執(zhí)行的結(jié)果,則原事務(wù)收集 資料,建立新事物,并執(zhí)行新事務(wù)。所述的資料包括新事務(wù)的執(zhí)行者和退回執(zhí)行者以及相關(guān) 的執(zhí)行和退回執(zhí)行的數(shù)據(jù)單元。如新事務(wù)失敗則整個(gè)事務(wù)回滾。如原事務(wù)最終提交成功, 則原事務(wù)管理器遺棄保存的新事務(wù)的退回者;原事務(wù)最終失敗,則執(zhí)行新事務(wù)的退回執(zhí)行。 在執(zhí)行過(guò)程中,由于系統(tǒng)之間的相互依賴關(guān)系,可能會(huì)出現(xiàn)一種情況就是原事務(wù)的執(zhí)行需 要依賴子執(zhí)行的結(jié)果,這時(shí),就需要由當(dāng)前原事務(wù)收集資料,建立新事務(wù),當(dāng)然在建立新事 務(wù)的同時(shí),還需要考慮到,如果事務(wù)不執(zhí)行成功,而子執(zhí)行已經(jīng)執(zhí)行過(guò)了,則需要將新事務(wù) 的退回者保存,以便回滾。上述技術(shù)方案,主要是用于解決,日常編程中,有一些資源會(huì)被長(zhǎng)時(shí)間占用,而其 他系統(tǒng)又需要這些資源。因此,這些資源只能等原事務(wù)執(zhí)行完畢后才能啟動(dòng)。采用事務(wù)切 割后,新事物可以在確實(shí)需要資源時(shí)才實(shí)施鎖定,而一旦子任務(wù)完成,立即釋放所有資源從 而實(shí)現(xiàn)資源的提前利用。采用上述事務(wù)切分方法去切分事務(wù),在宏觀上保證了原事務(wù)的基本特性,即所有 資源的變化統(tǒng)一成功或取消;但同時(shí)又允許一些重要資源被快速釋放。尤其重要的是,這個(gè) 方法在的使用是完全本地的操作,即,除了切分點(diǎn)(子任務(wù)分配的地方)外,不涉及任何其 它系統(tǒng),尤其是它不需要原事務(wù)管理者對(duì)整體的協(xié)調(diào)有任何更變;在一個(gè)大型開(kāi)放系統(tǒng)中, 這是十分重要的。類比說(shuō)明為了更加準(zhǔn)確的說(shuō)明本專利優(yōu)點(diǎn),下面我們用類比的辦法對(duì)本專利作進(jìn)一步的描 述該事務(wù)切分的執(zhí)行原理。假設(shè)有一個(gè)大型裝修項(xiàng)目,它在準(zhǔn)備過(guò)程中會(huì)牽涉到很多各類商家,如建材供應(yīng) 商,家電供應(yīng)商,地板供應(yīng)商,工程隊(duì),裝飾公司,等等,其中相當(dāng)部分可能從來(lái)不曾合作過(guò)。 假設(shè)這些商家以及房主都在上述開(kāi)放系統(tǒng)里有自己的管理系統(tǒng),而這個(gè)裝修工程本身被作 為一個(gè)任務(wù)在該系統(tǒng)里完成,則以下是一個(gè)可行的完成辦法。總?cè)蝿?wù)被分解為一系列子任務(wù),如地板裝修,棚頂及墻壁裝修,還有廚房,多媒體 系統(tǒng)等等。每一個(gè)子任務(wù)又被分為一系列子任務(wù)。例如,墻壁裝修隊(duì)需要涂料,它會(huì)去自己的供應(yīng)商處提貨;以此類推,整個(gè)裝修工程就可以完成了。由于我們的例子是由數(shù)字系統(tǒng)來(lái)完成任務(wù)的,它要求所有的活動(dòng)的成功或失敗是 相關(guān)的。比如,如果涂料供應(yīng)商正好缺貨,而其他任務(wù)都按計(jì)劃完成,那么地板,廚房,音響 設(shè)備就都裝在沒(méi)有粉刷的房間里了。數(shù)字系統(tǒng)不像人工系統(tǒng),除非事先設(shè)計(jì)好,它沒(méi)有應(yīng)變 能力。為了防止這個(gè)情況出現(xiàn),當(dāng)前系統(tǒng)把所有的資源變化收集在一個(gè)事務(wù)里。事務(wù)中 任何一個(gè)失敗都導(dǎo)致所有其它資源的變化不發(fā)生,稱為回滾。在上面例子里,如果涂料斷 貨,則整個(gè)裝修回滾,所有任務(wù)退回原樣,就像任何事都沒(méi)有發(fā)生一樣。為了做到這一點(diǎn),事 務(wù)需要鎖定它需要的資源。比方說(shuō),為了保證涂料不會(huì)斷貨,事務(wù)在查到供應(yīng)商有貨的同時(shí) 鎖定供貨商,使之不能給別的客戶發(fā)貨。由于事務(wù)必須在任務(wù)全部完成只后才能解鎖,這樣一來(lái),該供貨商在這個(gè)裝修工 程期間就不能給其它顧客發(fā)貨。這是不能接受的。有了這里的事務(wù)切分方法,這個(gè)困難就可以如下解決墻壁裝修隊(duì)直接在供貨商 除提貨,然后保存發(fā)票以備退貨時(shí)用。如果提貨失敗,整個(gè)裝修工程失敗,全面回滾。如果 成功,提貨后馬上解鎖供應(yīng)商,使它可以正常為其他客戶提供服務(wù)。如果裝修工程最后因?yàn)?其它原因回滾,墻壁裝修隊(duì)拿回滾后的涂料和保存的發(fā)票去供貨商處退貨(反事務(wù))。
權(quán)利要求
一種并行型分布系統(tǒng)中事務(wù)的切分方法,它應(yīng)用于一個(gè)開(kāi)放合作的環(huán)境中,該開(kāi)放合作的環(huán)境中的包括若干個(gè)服務(wù)器和客戶端;每個(gè)客戶端可以向不同服務(wù)器提交任務(wù),每個(gè)服務(wù)器可以將任務(wù)分解為一系列子任務(wù)再次發(fā)放給不同的服務(wù)器,以此類推;每個(gè)任務(wù)和子任務(wù)的規(guī)定和完成的結(jié)果都由不可以改變形成的數(shù)據(jù)單元來(lái)傳遞;任務(wù)完成的過(guò)程中可以造成一系列數(shù)據(jù)存儲(chǔ)點(diǎn)的內(nèi)容改變,這樣一個(gè)存儲(chǔ)點(diǎn)稱為一個(gè)資源,一個(gè)資源由許多任務(wù)共享;一個(gè)任務(wù)完成過(guò)程中所有資源的操作形成一個(gè)事務(wù),該事務(wù)有一個(gè)管理者;為保證任務(wù)完成時(shí)不同資源里的數(shù)據(jù)變化的一致性,事務(wù)管理者有權(quán)鎖定某些涉及到的資源,拒絕其它事務(wù)在這些資源的某些操作,直至事務(wù)結(jié)束;所述的事務(wù)用于管理任務(wù)需要的資源管理;其特征在于在該任務(wù)涉及的資源中,每個(gè)子任務(wù)可以只涉及其中的一部分;這一部分資源的操作可以另立事務(wù)管理,從而實(shí)現(xiàn)切割原事務(wù)管理的總資源。
2.根據(jù)權(quán)利要求1所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于某任 務(wù)執(zhí)行所用的資源中的一部分的鎖定時(shí)間需要有別于其余資源的時(shí)候,與這些資源相應(yīng)的 子任務(wù)可以另立新事物管理。
3.根據(jù)權(quán)利要求1所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于當(dāng)原 任務(wù)的完成不依賴于子任務(wù)的結(jié)果時(shí),原事務(wù)保存該子執(zhí)行的執(zhí)行者和數(shù)據(jù)單元;待原任 務(wù)執(zhí)行成功后,建立新事務(wù)以完成子任務(wù)。
4.根據(jù)權(quán)利要求1所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于當(dāng)原 任務(wù)的完成需要子任務(wù)的結(jié)果時(shí),原事務(wù)收集資料,建立新事物并執(zhí)行子任務(wù)。
5.根據(jù)權(quán)利要求3所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于如原 事務(wù)所所屬任務(wù)執(zhí)行失敗,其新事務(wù)被遺棄。
6.根據(jù)權(quán)利要求3所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于所述 的新事務(wù)執(zhí)行失敗后,其由于新事務(wù)所產(chǎn)生的數(shù)據(jù)單元自動(dòng)保存在該子執(zhí)行運(yùn)行的服務(wù)器 上,無(wú)信息損失。
7.根據(jù)權(quán)利要求4所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于所述 的資料包括新任務(wù)的執(zhí)行者和退回執(zhí)行者以及相關(guān)的執(zhí)行和退回執(zhí)行的數(shù)據(jù)單元。
8.根據(jù)權(quán)利要求4所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于如新 事務(wù)失敗則整個(gè)事務(wù)回滾。
9.根據(jù)權(quán)利要求4所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于如新 事務(wù)執(zhí)行成功,則事務(wù)管理器保存新事務(wù)的退回者繼續(xù)執(zhí)行。
10.根據(jù)權(quán)利要求9所述的一種并行型分布系統(tǒng)中事務(wù)的切分方法,其特征在于原事 務(wù)最終提交成功,則原事務(wù)管理器遺棄保存的新事務(wù)的退回者;原事務(wù)最終失敗,則執(zhí)行新 事務(wù)的退回執(zhí)行。
全文摘要
本發(fā)明涉及在一個(gè)交互式的網(wǎng)絡(luò)環(huán)境中,大型分布式并行數(shù)字化數(shù)據(jù)處理和管理系統(tǒng)。目的是,提供一種并行大型分布系統(tǒng)中事務(wù)的切分的方法,在造成整個(gè)事務(wù)執(zhí)行緩慢時(shí),仍然可以使部分的資源進(jìn)行解鎖,為其他事務(wù)提供相應(yīng)的服務(wù)。其方案是一種并行型分布系統(tǒng)中事務(wù)的切分方法,它應(yīng)用于一個(gè)開(kāi)放合作的環(huán)境中,一個(gè)任務(wù)完成過(guò)程中形成一個(gè)事務(wù),該事務(wù)有一個(gè)管理者;為保證任務(wù)完成時(shí)不同資源里的數(shù)據(jù)變化的一致性,事務(wù)管理者有權(quán)鎖定某些涉及到的資源;所述的事務(wù)用于管理任務(wù)需要的資源管理;其特征在于在該任務(wù)涉及的資源中,每個(gè)子任務(wù)可以只涉及其中的一部分;這一部分資源的操作可以另立事務(wù)管理,從而實(shí)現(xiàn)切割原事務(wù)管理的總資源。
文檔編號(hào)G06F9/50GK101930378SQ201010221669
公開(kāi)日2010年12月29日 申請(qǐng)日期2010年7月8日 優(yōu)先權(quán)日2010年7月8日
發(fā)明者李琳 申請(qǐng)人:度科信息科技(上海)有限公司