用于支持用于同步分布式數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)的分區(qū)級別日志的系統(tǒng)及方法
【專利說明】用于支持用于同步分布式數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)的分區(qū)級別曰志的系統(tǒng)及方法
[0001](版權(quán)聲明)
[0002]本專利文檔的公開內(nèi)容的一部分包含受版權(quán)保護(hù)的材料。專利權(quán)人不反對任何人按照專利文檔或?qū)@_內(nèi)容在專利商標(biāo)局專利文件或記錄中出現(xiàn)的樣子影印再現(xiàn)專利文檔或?qū)@_內(nèi)容,但另外保留任何所有版權(quán)。
技術(shù)領(lǐng)域
[0003]本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng),特別涉及支持分布式數(shù)據(jù)網(wǎng)格中的聯(lián)合緩存(federated caching)。
【背景技術(shù)】
[0004]當(dāng)代的計(jì)算系統(tǒng),特別是較大的組織和企業(yè)使用的那些計(jì)算機(jī)系統(tǒng),在尺寸和復(fù)雜性上繼續(xù)增加。特別地,在諸如因特網(wǎng)應(yīng)用的領(lǐng)域中,期望數(shù)以百萬計(jì)的用戶應(yīng)能夠同時(shí)訪問該應(yīng)用,這種同時(shí)訪問有效地導(dǎo)致用戶產(chǎn)生和消費(fèi)的內(nèi)容以及包含該內(nèi)容的交易的量指數(shù)增加。這種活動還導(dǎo)致對數(shù)據(jù)庫和元數(shù)據(jù)儲存庫的交易呼叫的數(shù)量的相應(yīng)增加,這些數(shù)據(jù)庫和元數(shù)據(jù)庫具有有限的容量來適應(yīng)該需求。
[0005]這是本發(fā)明的實(shí)施例旨在解決的一般領(lǐng)域。
【發(fā)明內(nèi)容】
[0006]這里描述能夠支持用于同步分布式數(shù)據(jù)網(wǎng)格中的集群之間的數(shù)據(jù)的分區(qū)級別日志的系統(tǒng)和方法。系統(tǒng)可關(guān)聯(lián)日志緩存與本地集群中的一個(gè)或多個(gè)用戶緩存,其中所述一個(gè)或多個(gè)用戶緩存被分成多個(gè)分區(qū)。并且,系統(tǒng)可捕獲施加到所述一個(gè)或多個(gè)用戶緩存的不同分區(qū)的一個(gè)或多個(gè)數(shù)據(jù)變化,并且能夠在支持與遠(yuǎn)程集群的同步的日志緩存中存儲所述一個(gè)或多個(gè)數(shù)據(jù)變化。
[0007]系統(tǒng)和方法可支持分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的并行異步同步。系統(tǒng)可在分區(qū)級別上跟蹤被施加于源集群中的一個(gè)或多個(gè)用戶緩存上的一個(gè)或多個(gè)數(shù)據(jù)變化。并且,源集群中的一個(gè)或多個(gè)集群成員可向一個(gè)或多個(gè)目的地集群發(fā)送一個(gè)或多個(gè)復(fù)制消息,其中所述一個(gè)或多個(gè)復(fù)制消息包含該一個(gè)或多個(gè)數(shù)據(jù)變化。然后,該一個(gè)或多個(gè)目的地集群可以處理所接收的一個(gè)或多個(gè)數(shù)據(jù)變化。
[0008]系統(tǒng)和方法可支持分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的同步期間的故障切換。當(dāng)源集群中的另一集群成員變得不可用時(shí),系統(tǒng)允許源集群中的集群成員作為源集群中的分區(qū)的所有者進(jìn)行接管。然后,目的地集群中的集群成員可從源集群中的所述集群成員接收一個(gè)或多個(gè)復(fù)制消息,其中所述一個(gè)或多個(gè)復(fù)制消息包含一個(gè)或多個(gè)數(shù)據(jù)變化。并且,如果所述一個(gè)或多個(gè)復(fù)制消息已在目的地集群中被接收和成功處理,那么目的地集群中的集群成員可忽略所述一個(gè)或多個(gè)復(fù)制消息。
[0009]系統(tǒng)和方法可支持用于同步分布式數(shù)據(jù)網(wǎng)格中的集群之間的數(shù)據(jù)的可重置確認(rèn)。系統(tǒng)可使用一個(gè)或多個(gè)唯一標(biāo)識符(ID)來支持分布式數(shù)據(jù)網(wǎng)格中的不同集群之間的消息傳遞。第一集群可從第二集群接收第一復(fù)制消息,其中該復(fù)制消息指示該復(fù)制消息來自新的集群。然后,系統(tǒng)可重置第一集群以在處理在第一復(fù)制消息之后從第二集群接收的一個(gè)或多個(gè)復(fù)制消息時(shí)保留冪等性(idempotence)。
【附圖說明】
[0010]圖1是根據(jù)本發(fā)明的各種實(shí)施例的數(shù)據(jù)網(wǎng)格集群的示圖。
[0011]圖2表示根據(jù)本發(fā)明的實(shí)施例的捕獲分布式數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)變化的示圖。
[0012]圖3表示根據(jù)本發(fā)明的實(shí)施例的支持用于分布式數(shù)據(jù)網(wǎng)格中的同步的分區(qū)級別日志的示圖。
[0013]圖4表示根據(jù)本發(fā)明的實(shí)施例的支持分布式數(shù)據(jù)網(wǎng)格中的日志緩存的集群范圍視圖的示圖。
[0014]圖5表示根據(jù)本發(fā)明的實(shí)施例的執(zhí)行用于支持分布式數(shù)據(jù)網(wǎng)格中的分區(qū)級別日志的單個(gè)交易的示圖。
[0015]圖6示出根據(jù)本發(fā)明的實(shí)施例的支持分布式數(shù)據(jù)網(wǎng)格中的同步的分區(qū)級別日志的示例性流程圖。
[0016]圖7表示根據(jù)本發(fā)明的實(shí)施例的支持分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的并行異步同步的示圖。
[0017]圖8表示根據(jù)本發(fā)明的實(shí)施例的初始化分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的異步同步的示圖。
[0018]圖9表示根據(jù)本發(fā)明的實(shí)施例的執(zhí)行分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的異步同步的示圖。
[0019]圖10表示根據(jù)本發(fā)明的實(shí)施例的進(jìn)一步執(zhí)行分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的異步同步的示圖。
[0020]圖11示出根據(jù)本發(fā)明的實(shí)施例的用于支持分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的并行異步同步的示例性流程圖。
[0021]圖12表示根據(jù)本發(fā)明的實(shí)施例的在分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的同步期間源集群中的集群存儲成員上的故障的示圖。
[0022]圖13表示根據(jù)本發(fā)明的實(shí)施例的在分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的異步同步期間執(zhí)行源集群中的故障切換的示圖。
[0023]圖14表示根據(jù)本發(fā)明的實(shí)施例的在源集群中的故障切換之后支持分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的異步同步的示圖。
[0024]圖15示出根據(jù)本發(fā)明的實(shí)施例的支持用于分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的并行異步同步的故障切換的示例性流程圖。
[0025]圖16表示根據(jù)本發(fā)明的實(shí)施例的支持跨分布式數(shù)據(jù)網(wǎng)格中的自治集群的可重置確認(rèn)的示圖。
[0026]圖17示出根據(jù)本發(fā)明的實(shí)施例的支持跨分布式數(shù)據(jù)網(wǎng)格中的自治集群的可重置確認(rèn)的示例性流程圖。
[0027]圖18表示根據(jù)本發(fā)明的實(shí)施例的使用有限狀態(tài)機(jī)來用于控制分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的同步的示圖。
[0028]圖19表示根據(jù)本發(fā)明的實(shí)施例的有限狀態(tài)機(jī)中的各種狀態(tài)的示圖。
[0029]圖20示出根據(jù)本發(fā)明的實(shí)施例的用于使用有限狀態(tài)機(jī)來用于控制分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的同步的示例性流程圖。
【具體實(shí)施方式】
[0030 ]這里描述的是可支持分布式數(shù)據(jù)網(wǎng)格中的聯(lián)合緩存的系統(tǒng)和方法。
[0031]分布式數(shù)據(jù)網(wǎng)格
[0032]根據(jù)實(shí)施例,這里被稱為“數(shù)據(jù)網(wǎng)格集群”或“數(shù)據(jù)網(wǎng)格”的是包含在分布式或集群式的環(huán)境內(nèi)一起工作以管理信息和諸如計(jì)算的有關(guān)動作的多個(gè)計(jì)算機(jī)服務(wù)器的系統(tǒng)。數(shù)據(jù)網(wǎng)格集群可被用于管理跨服務(wù)器共享的應(yīng)用對象和數(shù)據(jù)。優(yōu)選地,數(shù)據(jù)網(wǎng)格集群應(yīng)具有低響應(yīng)時(shí)間、高吞吐量、可預(yù)測的可擴(kuò)展性、連續(xù)可用性和信息可靠性。作為這些能力的結(jié)果,數(shù)據(jù)網(wǎng)格集群很好地適用于計(jì)算密集、狀態(tài)化的中間層應(yīng)用中。數(shù)據(jù)網(wǎng)格集群的一些例子,例如Oracle Coherence數(shù)據(jù)網(wǎng)格集群,可在存儲器內(nèi)存儲信息以實(shí)現(xiàn)更高的性能,并且可在保持跨多個(gè)服務(wù)器同步的該信息的拷貝時(shí)采用冗余性,由此確保在服務(wù)器故障的情況下的系統(tǒng)的彈性和數(shù)據(jù)的可用性。例如,Coherence在可靠的、高度可擴(kuò)展的對等(peer-to-peer) 集群協(xié)議之上提供重復(fù)的和分布式 (分區(qū)的) 數(shù)據(jù)管理和緩存服務(wù)。
[0033]存儲器內(nèi)的數(shù)據(jù)網(wǎng)格可通過在一起工作的數(shù)個(gè)服務(wù)器上分布數(shù)據(jù)來提供數(shù)據(jù)存儲和管理能力。數(shù)據(jù)網(wǎng)格可以是在同一層中作為應(yīng)用服務(wù)器或者在應(yīng)用服務(wù)器內(nèi)運(yùn)行的中間件。它可提供對數(shù)據(jù)的管理和處理,并且也可將處理推到數(shù)據(jù)在網(wǎng)格中所位于的地方。另外,當(dāng)服務(wù)器變得不可操作或者從網(wǎng)絡(luò)斷開時(shí),存儲器內(nèi)的數(shù)據(jù)網(wǎng)格可通過自動地和透明地進(jìn)行故障切換和重新分布其集群的數(shù)據(jù)管理服務(wù)來消除單個(gè)故障點(diǎn)。當(dāng)添加新的服務(wù)器時(shí)或者當(dāng)重新開始故障的服務(wù)器時(shí),它可自動地加入集群并且服務(wù)可被故障恢復(fù)切換到它,從而透明地重新分布集群負(fù)載。數(shù)據(jù)網(wǎng)格也可包含網(wǎng)絡(luò)級別的錯(cuò)誤容限特征和透明的軟重啟能力。
[0034]根據(jù)實(shí)施例,數(shù)據(jù)網(wǎng)格集群的功能基于使用不同的集群服務(wù)。集群服務(wù)可包含根集群服務(wù)、分區(qū)的緩存服務(wù)和代理服務(wù)。在數(shù)據(jù)網(wǎng)格集群內(nèi),各集群節(jié)點(diǎn)可參與數(shù)個(gè)集群服務(wù),兩者均關(guān)于提供和消耗集群服務(wù)。各集群服務(wù)具有唯一地識別數(shù)據(jù)網(wǎng)格集群內(nèi)的服務(wù)的服務(wù)名稱和服務(wù)類型,該服務(wù)類型限定集群服務(wù)可做什么。除了在數(shù)據(jù)網(wǎng)格集群中的各集群節(jié)點(diǎn)上運(yùn)行的根集群服務(wù)之外,可存在各服務(wù)類型的多個(gè)命名實(shí)例。這些服務(wù)可由用戶配置,或者作為缺省的一組服務(wù)由數(shù)據(jù)網(wǎng)格集群提供。
[0035]圖1是根據(jù)本發(fā)明的各種實(shí)施例的數(shù)據(jù)網(wǎng)格集群的示圖。如圖1所示,數(shù)據(jù)網(wǎng)格集群100,例如Oracle Coherence數(shù)據(jù)網(wǎng)格,包含具有在其上運(yùn)行的各種集群服務(wù)111?116的多個(gè)集群成員(或服務(wù)器節(jié)點(diǎn)),諸如集群節(jié)點(diǎn)101?106。另外,緩存配置文件110可被用于配置數(shù)據(jù)網(wǎng)格集群100。
[0036]根據(jù)實(shí)施例,數(shù)據(jù)網(wǎng)格集群100可基于并行異步推復(fù)制技術(shù)來支持聯(lián)合數(shù)據(jù)特征。聯(lián)合數(shù)據(jù)特征使得能夠同步數(shù)據(jù)網(wǎng)格集群(潛在地在不同的物理位置上)之間的數(shù)據(jù),并且有益于支持災(zāi)難恢復(fù)、提供24X7的可用性以及減少對于區(qū)域用戶的等待時(shí)間。
[0037]用于同步的分區(qū)級別日志
[0038]圖2表示根據(jù)本發(fā)明的實(shí)施例的捕獲分布式數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)變化的示圖。如圖2所示,分布式數(shù)據(jù)網(wǎng)格200可支持一個(gè)或多個(gè)用戶緩存201。另外,該一個(gè)或多個(gè)用戶緩存201可被分成可遍及集群200均勻分布的多個(gè)分區(qū),例如分區(qū)I?III 211?213。
[0039]并且,可基于對緩存條目鍵執(zhí)行散列來向分布式數(shù)據(jù)網(wǎng)格200中的分區(qū)分配用戶數(shù)據(jù)。作為替代,可基于對與可經(jīng)由用戶實(shí)現(xiàn)的界面進(jìn)行限定的緩存條目相關(guān)聯(lián)的鍵執(zhí)行散列來向分區(qū)分配用戶數(shù)據(jù)。另外,可明確向分布式數(shù)據(jù)網(wǎng)格200中的分區(qū)分配用戶數(shù)據(jù)。
[0040]根據(jù)本發(fā)明的實(shí)施例,分區(qū)的分布式集群200可按數(shù)據(jù)變化被做出的次序捕獲對該一個(gè)或多個(gè)用戶緩存201做出的數(shù)據(jù)變化。如圖2所示,可以按從(K1,V1)到(K11,V11)的次序表示被施加于該一個(gè)或多個(gè)用戶緩存201上的數(shù)據(jù)變化210。在這些數(shù)據(jù)變化中,(K1,乂1)、(1(4,¥4)和(1(5,¥5)與分區(qū)1 211 有關(guān),(K2,V2)、(K3,V3)、(K6,V6)、(K10,V10)和(ΚΙ 1,VII)與分區(qū)II 212有關(guān),(K7,V7)、(K7,V7)和(K8,V8)與分區(qū)III 213有關(guān)。
[0041]圖3表示根據(jù)本發(fā)明的實(shí)施例的支持用于分布式數(shù)據(jù)網(wǎng)格中的同步的分區(qū)級別日志的示圖。如圖3所示,分布式數(shù)據(jù)網(wǎng)格300支持可分成多個(gè)分區(qū)(例如,分區(qū)1-1II 311?313)的一個(gè)或多個(gè)用戶緩存301。
[0042]分布式數(shù)據(jù)網(wǎng)格300可按數(shù)據(jù)變化被做出的次序捕獲被施加到一個(gè)或多個(gè)用戶緩存301的數(shù)據(jù)變化,例如(K1,V1)到(K11,V11)。另外,這些數(shù)據(jù)變化可被放在可用于與遠(yuǎn)程集群進(jìn)行同步的日志緩存302中。
[0043]根據(jù)本發(fā)明的實(shí)施例,系統(tǒng)可對存儲于日志緩存302中的各數(shù)據(jù)變化產(chǎn)生全局唯一標(biāo)識符(ID)320??砂鄠€(gè)部分(例如,使用整數(shù))的全局唯一ID 320可識別對其做出數(shù)據(jù)變化的源分區(qū)以及在源分區(qū)中做出這種數(shù)據(jù)變化