日志緩存1810中讀取用戶數(shù)據(jù)變化,并且可負(fù)責(zé)將源集群1801中的被捕獲的用戶數(shù)據(jù)變化寫入(或同步)到目的地集群B 1803。
[0117]并且,垃圾收集(GC)線程1806可負(fù)責(zé)刪除已被寫入或同步到不同的目的地集群A?B 1802?1803的用戶數(shù)據(jù)變化。
[0118]如圖18所示,線程1804可與有限狀態(tài)機(jī)1814相關(guān)聯(lián),并且線程1805可與有限狀態(tài)機(jī)1815相關(guān)聯(lián)。有限狀態(tài)機(jī)1814?1815中的每一個(gè)可以是控制同步處理的非阻塞有限狀態(tài)機(jī)。
[0119]圖19表示根據(jù)本發(fā)明的實(shí)施例的有限狀態(tài)機(jī)中的各種狀態(tài)的示圖。如圖19所示,有限狀態(tài)機(jī)1900可包含多個(gè)狀態(tài),諸如初始狀態(tài)1901、連接狀態(tài)1902、空閑狀態(tài)1903、停止?fàn)顟B(tài)1904、發(fā)送狀態(tài)1905和錯(cuò)誤狀態(tài)1906。
[0120]如圖19所示,有限狀態(tài)機(jī)1900允許從初始狀態(tài)1901轉(zhuǎn)換到連接狀態(tài)1902、從連接狀態(tài)1902轉(zhuǎn)換到空閑狀態(tài)1903、從空閑狀態(tài)轉(zhuǎn)換到停止?fàn)顟B(tài)1904以及從停止?fàn)顟B(tài)1904轉(zhuǎn)換回到連接狀態(tài)1902。并且,有限狀態(tài)機(jī)1900允許連接狀態(tài)1902與錯(cuò)誤狀態(tài)1906之間的轉(zhuǎn)換以及空閑狀態(tài)1903與發(fā)送狀態(tài)1905之間的轉(zhuǎn)換。
[0121]此外,系統(tǒng)可以在有限狀態(tài)機(jī)1900從停止?fàn)顟B(tài)1904或錯(cuò)誤狀態(tài)1906轉(zhuǎn)換到連接狀態(tài)1902之前執(zhí)行狀態(tài)登入動(dòng)作1910。
[0122]圖20示出根據(jù)本發(fā)明的實(shí)施例的使用有限狀態(tài)機(jī)用于控制分布式數(shù)據(jù)網(wǎng)格中的自治集群之間的同步的示例性流程圖。如圖20所示,在步驟2001中,系統(tǒng)可捕獲本地集群中的一個(gè)或多個(gè)用戶緩存中的一個(gè)或多個(gè)數(shù)據(jù)變化,其中所捕獲的數(shù)據(jù)變化被存儲(chǔ)于本地集群中的日志緩存中。并且,在步驟2002中,系統(tǒng)可關(guān)聯(lián)有限狀態(tài)機(jī)與本地集群中的線程。然后,在步驟2003中,系統(tǒng)使用有限狀態(tài)機(jī)以控制線程,其中線程動(dòng)作操作以從日志緩存讀取所述一個(gè)或多個(gè)數(shù)據(jù)變化并且將所述一個(gè)或多個(gè)數(shù)據(jù)變化寫入到遠(yuǎn)程集群中。
[0123]根據(jù)實(shí)施例,存在一種用于支持同步分布式數(shù)據(jù)網(wǎng)格中的集群之間的數(shù)據(jù)的方法,該方法包括:在分區(qū)級(jí)別上跟蹤施加于源集群中的一個(gè)或多個(gè)用戶緩存上的一個(gè)或多個(gè)數(shù)據(jù)變化;經(jīng)由源集群中的集群成員向一個(gè)或多個(gè)目的地集群發(fā)送一個(gè)或多個(gè)復(fù)制消息,其中所述一個(gè)或多個(gè)復(fù)制消息包含該一個(gè)或多個(gè)數(shù)據(jù)變化;以及經(jīng)由該一個(gè)或多個(gè)目的地集群處理所接收的一個(gè)或多個(gè)數(shù)據(jù)變化。
[0124]根據(jù)實(shí)施例,存在一種方法,該方法還包括允許集群成員成為源集群中的該一個(gè)或多個(gè)用戶緩存的分區(qū)的所有者。
[0125]根據(jù)實(shí)施例,存在一種方法,該方法還包括經(jīng)由所述集群成員處理日志緩存中用于所述分區(qū)的一個(gè)或多個(gè)日志條目。
[0126]根據(jù)實(shí)施例,存在一種方法,該方法還包括允許源集群中的所述集群成員與源集群中的其它集群成員并行地工作,以支持與一個(gè)或多個(gè)目的地集群的同步。
[0127]根據(jù)實(shí)施例,存在一種方法,該方法還包括關(guān)聯(lián)唯一標(biāo)識(shí)符(ID)與從源集群發(fā)送到所述一個(gè)或多個(gè)目的地集群的各所述復(fù)制消息。
[0128]根據(jù)實(shí)施例,存在一種方法,該方法還包括從目的地集群接收確認(rèn),該確認(rèn)指示目的地集群中的集群成員已接收和成功處理該一個(gè)或多個(gè)數(shù)據(jù)變化。
[0129]根據(jù)實(shí)施例,存在一種方法,該方法還包括在接收確認(rèn)之后垃圾收集與該一個(gè)或多個(gè)數(shù)據(jù)變化相關(guān)聯(lián)的資源。
[0130]根據(jù)實(shí)施例,存在一種方法,該方法還包括關(guān)聯(lián)有限狀態(tài)機(jī)與寫入到目的地集群的源集群中的各線程。
[0131]根據(jù)實(shí)施例,存在一種方法,該方法還包括經(jīng)由各所述目的地集群保持包含一個(gè)或多個(gè)條目的復(fù)制記錄,其中各條目指示對(duì)所述目的地集群中的分區(qū)已接收和成功處理的最后的數(shù)據(jù)變化。
[0132]根據(jù)實(shí)施例,存在一種方法,該方法還包括基于被保持于目的地集群中的復(fù)制記錄支持源集群中的故障切換。
[0133]根據(jù)實(shí)施例,存在一種用于支持分布式數(shù)據(jù)網(wǎng)格中的異步消息處理的系統(tǒng),該系統(tǒng)包括:一個(gè)或多個(gè)微處理器;在該一個(gè)或多個(gè)微處理器上運(yùn)行的具有多個(gè)服務(wù)器節(jié)點(diǎn)的分布式數(shù)據(jù)網(wǎng)格,其中該分布式數(shù)據(jù)網(wǎng)格操作以執(zhí)行包括以下步驟的步驟:在分區(qū)級(jí)別上跟蹤被施加于源集群中的一個(gè)或多個(gè)用戶緩存上的一個(gè)或多個(gè)數(shù)據(jù)變化;經(jīng)由源集群中的集群成員向一個(gè)或多個(gè)目的地集群發(fā)送一個(gè)或多個(gè)復(fù)制消息,其中所述一個(gè)或多個(gè)復(fù)制消息包含該一個(gè)或多個(gè)數(shù)據(jù)變化;以及經(jīng)由該一個(gè)或多個(gè)目的地集群處理所接收的一個(gè)或多個(gè)數(shù)據(jù)變化。
[0134]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,所述集群成員是源集群中的該一個(gè)或多個(gè)用戶緩存的分區(qū)的所有者。
[0135]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,所述集群成員操作以處理日志緩存中用于所述分區(qū)的一個(gè)或多個(gè)日志條目。
[0136]根據(jù)實(shí)施例,存在一種系統(tǒng),源集群中的所述集群成員與源集群中的其它集群成員并行地工作,以支持與一個(gè)或多個(gè)目的地集群的同步。
[0137]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,從源集群發(fā)送到所述一個(gè)或多個(gè)目的地集群的各所述復(fù)制消息與唯一標(biāo)識(shí)符(ID)相關(guān)聯(lián)。
[0138]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,源集群中的所述一個(gè)或多個(gè)集群成員從目的地集群接收確認(rèn),該確認(rèn)指示目的地集群中的集群成員已接收和成功處理該一個(gè)或多個(gè)數(shù)據(jù)變化。
[0139]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,源集群中的所述一個(gè)或多個(gè)集群成員在接收該確認(rèn)之后垃圾收集與該一個(gè)或多個(gè)數(shù)據(jù)變化相關(guān)聯(lián)的資源。
[0140]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,寫入到目的地集群的源集群中的各線程與有限狀態(tài)機(jī)相關(guān)聯(lián)。
[0141]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,各所述目的地集群操作以保持包含一個(gè)或多個(gè)條目的復(fù)制記錄,其中,各條目指示對(duì)所述目的地集群中的分區(qū)已接收和成功處理的最后的數(shù)據(jù)變化,以及基于被保持于目的地集群中的復(fù)制記錄支持源集群中的故障切換。
[0142]根據(jù)實(shí)施例,存在一種其上存儲(chǔ)了指令的非暫態(tài)機(jī)器可讀存儲(chǔ)介質(zhì),這些指令當(dāng)被執(zhí)行時(shí)導(dǎo)致系統(tǒng)執(zhí)行包括以下步驟的步驟:在分區(qū)級(jí)別上跟蹤被施加于源集群中的一個(gè)或多個(gè)用戶緩存上的一個(gè)或多個(gè)數(shù)據(jù)變化;經(jīng)由源集群中的集群成員向一個(gè)或多個(gè)目的地集群發(fā)送一個(gè)或多個(gè)復(fù)制消息,其中所述一個(gè)或多個(gè)復(fù)制消息包含該一個(gè)或多個(gè)數(shù)據(jù)變化;以及經(jīng)由該一個(gè)或多個(gè)目的地集群處理所接收的一個(gè)或多個(gè)數(shù)據(jù)變化。
[0143]根據(jù)實(shí)施例,存在用于支持分布式數(shù)據(jù)網(wǎng)格中的聯(lián)合數(shù)據(jù)的方法,該方法包括:當(dāng)源集群中的另一集群成員變得不可用時(shí),允許源集群中的集群成員作為源集群中的分區(qū)的所有者進(jìn)行接管;經(jīng)由目的地集群中的集群成員從源集群中的所述集群成員接收一個(gè)或多個(gè)復(fù)制消息,其中所述一個(gè)或多個(gè)復(fù)制消息包含一個(gè)或多個(gè)數(shù)據(jù)變化;以及如果所述一個(gè)或多個(gè)復(fù)制消息已在目的地集群中被接收和成功處理,則經(jīng)由目的地集群中的集群成員忽略所述一個(gè)或多個(gè)復(fù)制消息。
[0144]根據(jù)實(shí)施例,存在一種方法,其中,在丟失所述另一集群成員之前,允許源集群中的所述另一集群成員成為分區(qū)的所有者。
[0145]根據(jù)實(shí)施例,存在一種方法,其中,經(jīng)由所述集群成員處理日志緩存中用于所述分區(qū)的一個(gè)或多個(gè)日志條目。
[0146]根據(jù)實(shí)施例,存在一種方法,其中,關(guān)聯(lián)唯一標(biāo)識(shí)符(ID)與從源集群發(fā)送到目的地集群的各所述復(fù)制消息。
[0147]根據(jù)實(shí)施例,存在一種方法,其中,經(jīng)由源集群中的所述集群成員向目的地集群中的集群成員發(fā)送可用的復(fù)制消息。
[0148]根據(jù)實(shí)施例,存在一種方法,其中,允許所述可用復(fù)制消息包含一個(gè)或多個(gè)數(shù)據(jù)變化,用于這些數(shù)據(jù)變化的資源未在源集群中被垃圾收集。
[0149]根據(jù)實(shí)施例,存在一種方法,其中,經(jīng)由目的地集群保持包含一個(gè)或多個(gè)條目的復(fù)制記錄,其中,各條目指示對(duì)目的地集群中的分區(qū)已接收和成功處理的最后的數(shù)據(jù)變化。
[0150]根據(jù)實(shí)施例,存在一種方法,其中,基于復(fù)制記錄確定是否已在目的地集群中接收和成功處理一個(gè)或多個(gè)復(fù)制消息。
[0151]根據(jù)實(shí)施例,存在一種方法,其中,經(jīng)由目的地集群中的集群成員向源集群中的集群成員發(fā)送確認(rèn),該確認(rèn)指示目的地集群中的集群成員已接收和成功處理該一個(gè)或多個(gè)數(shù)據(jù)變化。
[0152]根據(jù)實(shí)施例,存在一種方法,其中,允許源集群中的所述集群成員與源集群中的其它集群成員并行地工作,以支持與一個(gè)或多個(gè)目的地集群的同步。
[0153]根據(jù)實(shí)施例,存在一種用于支持分布式數(shù)據(jù)網(wǎng)格中的異步消息處理的系統(tǒng),該系統(tǒng)包括:一個(gè)或多個(gè)微處理器;在該一個(gè)或多個(gè)微處理器上運(yùn)行的具有多個(gè)服務(wù)器節(jié)點(diǎn)的分布式數(shù)據(jù)網(wǎng)格,其中分布式數(shù)據(jù)網(wǎng)格操作以執(zhí)行包括以下步驟的步驟:當(dāng)源集群中的另一集群成員變得不可用時(shí),允許源集群中的集群成員作為源集群中的分區(qū)的所有者進(jìn)行接管;經(jīng)由目的地集群中的集群成員從源集群中的所述集群成員接收一個(gè)或多個(gè)復(fù)制消息,其中所述一個(gè)或多個(gè)復(fù)制消息包含一個(gè)或多個(gè)數(shù)據(jù)變化;以及如果所述一個(gè)或多個(gè)復(fù)制消息已在目的地集群中被接收和成功處理,則經(jīng)由目的地集群中的集群成員忽略所述一個(gè)或多個(gè)復(fù)制消息。
[0154]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,在丟失所述另一集群成員之前,源集群中的所述另一集群成員是分區(qū)的所有者。
[0155]根據(jù)實(shí)施例,存在一種方法,其中,源集群中的所述集群成員操作以處理日志緩存中的用于所述分區(qū)的一個(gè)或多個(gè)日志條目。
[0156]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,從源集群發(fā)送到所述一個(gè)或多個(gè)目的地集群的各所述復(fù)制消息與唯一標(biāo)識(shí)符(ID)相關(guān)聯(lián)。
[0157]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,源集群中的所述集群成員操作以向目的地集群中的集群成員發(fā)送可用的復(fù)制消息。
[0158]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,所述可用復(fù)制消息包含一個(gè)或多個(gè)數(shù)據(jù)變化,用于這些數(shù)據(jù)變化的資源未在源集群中被垃圾收集。
[0159]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,目的地集群操作以保持包含一個(gè)或多個(gè)條目的復(fù)制記錄,其中,各條目指示對(duì)目的地集群中的分區(qū)已接收和成功處理的最后的數(shù)據(jù)變化。
[0160]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,目的地集群操作以基于復(fù)制記錄確定是否已在目的地集群中接收和成功處理一個(gè)或多個(gè)復(fù)制消息。
[0161]根據(jù)實(shí)施例,存在一種系統(tǒng),其中,目的地集群中的集群成員操作以向源集群中的集群成員發(fā)送確認(rèn),該確認(rèn)指示目的地集群中的集群成員已接收和成功處理該一個(gè)或多個(gè)數(shù)據(jù)變化。
[0162]根據(jù)實(shí)施例,存在一種其上存儲(chǔ)了指令的非暫態(tài)機(jī)器可讀存儲(chǔ)介質(zhì),這些指令當(dāng)被執(zhí)行時(shí)導(dǎo)致系統(tǒng)執(zhí)行包括以下步驟的步驟:當(dāng)源集群中的另一集群成員變得不可用時(shí),允許源集群中的集群成員作為源集群中的分區(qū)的所有者進(jìn)行接管;經(jīng)由目的地集群中