欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高度可用的網(wǎng)絡(luò)元件中的沖突解決的制作方法

文檔序號(hào):6569977閱讀:169來(lái)源:國(guó)知局
專利名稱:高度可用的網(wǎng)絡(luò)元件中的沖突解決的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫(kù)系統(tǒng)。更具體地,本發(fā)明涉及高度可用的數(shù)據(jù) 庫(kù)系統(tǒng)中的沖突解決。
背景技術(shù)
在復(fù)制的數(shù)據(jù)存儲(chǔ)系統(tǒng)中,其中更新可以出現(xiàn)在該系統(tǒng)內(nèi)的任何 節(jié)點(diǎn)處,數(shù)據(jù)沖突是眾所周知的問(wèn)題。復(fù)制的數(shù)據(jù)存儲(chǔ)系統(tǒng)是具有位 于該系統(tǒng)內(nèi)多個(gè)位置(即,節(jié)點(diǎn))的數(shù)據(jù)庫(kù)副本的數(shù)據(jù)庫(kù)系統(tǒng)。該系 統(tǒng)內(nèi)的每個(gè)節(jié)點(diǎn)都具有本地存儲(chǔ)的數(shù)據(jù)庫(kù)副本。每個(gè)節(jié)點(diǎn)可以獨(dú)立地 更新在其數(shù)據(jù)庫(kù)的本地副本內(nèi)的數(shù)據(jù)。通常,將此更新然后傳送到該 系統(tǒng)內(nèi)的其他節(jié)點(diǎn)。當(dāng)兩個(gè)或多個(gè)節(jié)點(diǎn)對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)中的正確數(shù)據(jù) 不一致時(shí),數(shù)據(jù)沖突出現(xiàn)。沖突解決的目標(biāo)是確保所有節(jié)點(diǎn)上的所有 數(shù)據(jù)都是相同的。因?yàn)榭梢栽谌魏喂?jié)點(diǎn)上更新任何數(shù)據(jù),而且由于存 在將數(shù)據(jù)從一個(gè)節(jié)點(diǎn)傳送到其他節(jié)點(diǎn)的時(shí)滯,所以無(wú)法避免沖突(即, 它總是有可能在兩個(gè)或多個(gè)節(jié)點(diǎn)之間交叉更新)。對(duì)于帶有復(fù)制的任 何數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),第一件事就是能夠識(shí)別沖突。 一旦識(shí)別了沖突, 就存在用于解決沖突的各種方法,已經(jīng)用于使在數(shù)據(jù)庫(kù)系統(tǒng)中任何地 方存儲(chǔ)的不正確數(shù)據(jù)的發(fā)生數(shù)量最小化的嘗試中。
一種方法是使用時(shí)間戳沖突解決。當(dāng)使用時(shí)間戳沖突解決時(shí),每 個(gè)數(shù)據(jù)庫(kù)條目都包括一個(gè)與該數(shù)據(jù)庫(kù)條目相關(guān)的時(shí)間戳。如果在兩個(gè) 條目之間存在沖突,將總是使用帶有最新時(shí)間戳的條目。然而,如果 在活動(dòng)-活動(dòng)高度可用的機(jī)器上的時(shí)鐘之間的時(shí)間差大于在對(duì)不同機(jī)器 上相同對(duì)象的連續(xù)更新之間的最小時(shí)間,則該時(shí)間戳沖突解決方法將 會(huì)不正確。
另外,在機(jī)器之間復(fù)制數(shù)據(jù)時(shí)包括一些識(shí)別數(shù)據(jù)的情況下,(例 如在其更新前的對(duì)象的基礎(chǔ)時(shí)間戳,或是在其更新前的對(duì)象的基礎(chǔ)數(shù) 據(jù)值),缺少應(yīng)用專用規(guī)則,在交叉更新的情況下,就不可能判斷是 否應(yīng)該將所復(fù)制的更新應(yīng)用于數(shù)據(jù)庫(kù)。在此情況下,就只可能記錄該 沖突并做出一些后退決定,這對(duì)系統(tǒng)的可用性有副作用,尤其是與系 統(tǒng)的用戶相關(guān)的可用性,其中數(shù)據(jù)與該系統(tǒng)的用戶相關(guān)。


從以下結(jié)合附圖介紹的其更具體的描述中,本發(fā)明的以上及其他 方面、特征和優(yōu)點(diǎn)將顯而易見(jiàn),其中
圖1示出根據(jù)一個(gè)實(shí)施例對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行更新的實(shí)例;
圖2示出根據(jù)另一實(shí)施例對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行更新的實(shí)例;
圖3示出根據(jù)一個(gè)實(shí)施例在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)的沖突的實(shí)例;
圖4是示出根據(jù)一個(gè)實(shí)施例的即時(shí)沖突解決的流程圖5是示出根據(jù)一個(gè)實(shí)施例的成功的即時(shí)沖突解決的流程圖6是示出根據(jù)一個(gè)實(shí)施例的失敗的即時(shí)沖突解決的流程圖7是示出根據(jù)一個(gè)實(shí)施例的延遲沖突解決的流程圖S是示出根據(jù)一個(gè)實(shí)施例的成功的延遲沖突解決的流程圖9是示出根據(jù)一個(gè)實(shí)施例的失敗的延遲沖突解決的流程圖。
貫穿附圖的幾個(gè)示圖,用相同的附圖標(biāo)記表示相同的元件。技術(shù) 人員將理解,附圖中的元件是為了簡(jiǎn)單和清楚而示出的且不必按比例 繪制。例如,可以相對(duì)于其他元件夸大圖中某些元件的尺寸、大小和/ 或相對(duì)位置以幫助改善對(duì)本發(fā)明的各個(gè)實(shí)施例的理解。而且,為了便 于幾乎無(wú)障礙地查看本發(fā)明的這些各個(gè)實(shí)施例,經(jīng)常不描述通用但眾 所周知的元件,該元件是在商業(yè)可行的實(shí)施例中是有用或必要的。還 將理解,在此所用的術(shù)語(yǔ)和表達(dá)具有如調(diào)查和研究的相應(yīng)各自領(lǐng)域內(nèi) 的技術(shù)人員通常賦予這種術(shù)語(yǔ)和表達(dá)的普通含義,除非另外在此闡明 其他特定的含義。
具體實(shí)施例方式
以下描述并非在限制性意義上進(jìn)行,而只是為了描述本發(fā)明的普 通原理而做出的。應(yīng)參照權(quán)利要求來(lái)確定本發(fā)明的范圍。本實(shí)施例解 決了在背景技術(shù)中所描述的問(wèn)題,同時(shí)還解決了其他額外的問(wèn)題,如 將從以下的詳細(xì)描述中可見(jiàn)的。
本實(shí)施例提供了一種用來(lái)解決數(shù)據(jù)庫(kù)系統(tǒng)中的沖突的方案,它消 除了在數(shù)據(jù)庫(kù)系統(tǒng)中的每個(gè)機(jī)器上保持精確時(shí)間的需要,并確保數(shù)據(jù) 在數(shù)據(jù)庫(kù)系統(tǒng)中交叉?zhèn)魉透碌那闆r下保持有效。在一些實(shí)施例中, 一旦識(shí)別了沖突就立即或在數(shù)據(jù)庫(kù)系統(tǒng)上的負(fù)載允許時(shí),使用權(quán)威的 源來(lái)執(zhí)行沖突解決。
一個(gè)實(shí)施例的特征可以是一種將數(shù)據(jù)存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中的 方法,包括接收數(shù)據(jù)集的第一值,所述第一值與第一節(jié)點(diǎn)對(duì)應(yīng);存 儲(chǔ)所述數(shù)據(jù)集的所述第一值;接收所述數(shù)據(jù)集的第二值,所述第二值 與第二節(jié)點(diǎn)對(duì)應(yīng),其中所述第一值不同于所述第二值;識(shí)別在所述數(shù) 據(jù)集的所述第一值與所述數(shù)據(jù)集的所述第二值之間的沖突;以及與所 述數(shù)據(jù)集的所述第一值一起存儲(chǔ)所述數(shù)據(jù)集的所述第二值。
另一個(gè)實(shí)施例的特征可以是一種解決網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中的沖突的 方法,包括存儲(chǔ)數(shù)據(jù)集的第一值,所述第一值與第一節(jié)點(diǎn)對(duì)應(yīng);存 儲(chǔ)所述數(shù)據(jù)集的第二值,所述第二值與第二節(jié)點(diǎn)對(duì)應(yīng),其中所述第一 值不同于所述第二值;基于所述數(shù)據(jù)集的所述第一值來(lái)啟動(dòng)第一處理; 基于所述數(shù)據(jù)集的所述第二值來(lái)啟動(dòng)第二處理;以及基于所述第一處 理和所述第二處理的至少一個(gè)的結(jié)果來(lái)刪除所述數(shù)據(jù)集的所述第一值 和所述數(shù)據(jù)集的所述第二值中的一個(gè)。
又一個(gè)實(shí)施例包括一種解決網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中的沖突的方法,所 述方法包括存儲(chǔ)數(shù)據(jù)集的第一值,所述第一值與第一節(jié)點(diǎn)對(duì)應(yīng);存 儲(chǔ)所述數(shù)據(jù)集的第二值,所述第二值與第二節(jié)點(diǎn)對(duì)應(yīng),其中所述第一
值不同于所述第二值;接收來(lái)自于請(qǐng)求線程對(duì)所述數(shù)據(jù)集的請(qǐng)求;創(chuàng) 建所述請(qǐng)求線程的克??;向所述請(qǐng)求線程提供所述數(shù)據(jù)集的所述第一 值,所述請(qǐng)求線程運(yùn)行第一處理;向所述請(qǐng)求線程的所述克隆提供所 述數(shù)據(jù)集的所述第二值,所述請(qǐng)求線程的所述克隆運(yùn)行第二處理;以 及基于所述第一處理和所述第二處理的至少一個(gè)的結(jié)果來(lái)刪除所述數(shù) 據(jù)集的所述第一值和所述數(shù)據(jù)集的所述第二值中的一個(gè)。
將通過(guò)假設(shè)存儲(chǔ)在數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)包含易失的和非權(quán)威的數(shù) 據(jù)來(lái)描述在此描述的以下實(shí)施例。也就是說(shuō),最終可以從一些其他權(quán) 威的數(shù)據(jù)位置重新加載數(shù)據(jù)庫(kù)中的數(shù)據(jù),而且可以隨時(shí)改變?cè)摂?shù)據(jù)。 因此,例如,在此描述的實(shí)施例適用于訪問(wèn)位置寄存器(VLR, Visited Location Register),該訪問(wèn)位置寄存器存儲(chǔ)臨時(shí)數(shù)據(jù),例如,關(guān)于移 動(dòng)站所服務(wù)的訂戶的供應(yīng)信息和關(guān)于該訂戶的移動(dòng)性管理信息。比如 說(shuō),當(dāng)訂戶實(shí)際上在紐約時(shí),VLR會(huì)認(rèn)為該訂戶在芝加哥。該訂戶是 能夠糾正VLR中的數(shù)據(jù)的權(quán)威的源,這是因?yàn)樵撚啈魧⒖偸侵榔洚?dāng) 前位置。許多其他類型的數(shù)據(jù)庫(kù)系統(tǒng),例如網(wǎng)絡(luò)搜索引擎,也可以使 用在此描述的實(shí)施例。雖然以上假設(shè)適用于在此描述的實(shí)施例,但在 此描述的實(shí)施例不應(yīng)僅限于包括所有以上假設(shè)的數(shù)據(jù)庫(kù)系統(tǒng)。
參照?qǐng)D1,示出了根據(jù)一個(gè)實(shí)施例對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行更新的實(shí)例。 示出的是第一節(jié)點(diǎn)100和第二節(jié)點(diǎn)102。
第一節(jié)點(diǎn)100 (示出為節(jié)點(diǎn)A)是例如包括數(shù)據(jù)庫(kù)的計(jì)算機(jī)。第二 節(jié)點(diǎn)102 (如節(jié)點(diǎn)B所示)也是例如包括該數(shù)據(jù)庫(kù)的副本的計(jì)算機(jī)。初 始時(shí),第一節(jié)點(diǎn)IOO和第二節(jié)點(diǎn)102具有用于其數(shù)據(jù)庫(kù)中所有數(shù)據(jù)的 相同的值。
在所示實(shí)例中,存儲(chǔ)在第一節(jié)點(diǎn)100中的數(shù)據(jù)104具有初始值 "ABCDE"。另外,與數(shù)據(jù)104—起存儲(chǔ)的是第一時(shí)間戳106的值。數(shù) 據(jù)104和時(shí)間戳106還與指定(designation) 108相關(guān),指定108指示
在該系統(tǒng)中,數(shù)據(jù)104來(lái)源于第一節(jié)點(diǎn)100。存儲(chǔ)在第二節(jié)點(diǎn)102中的 數(shù)據(jù)110另外具有與存儲(chǔ)在第一節(jié)點(diǎn)100中的數(shù)據(jù)104相同的值 "ABCDE"。另外,與數(shù)據(jù)IIO相關(guān)的時(shí)間戳112存儲(chǔ)在第二節(jié)點(diǎn)102 中。然而,存儲(chǔ)在第二節(jié)點(diǎn)102中的數(shù)據(jù)IIO和時(shí)間戳112與指定114 相關(guān),指定114與第一節(jié)點(diǎn)100對(duì)應(yīng)。因此,第二節(jié)點(diǎn)102知道數(shù)據(jù) IIO來(lái)源于第一節(jié)點(diǎn)100。
在操作中,第一節(jié)點(diǎn)IOO接收數(shù)據(jù)更新116。在該實(shí)例中示出了數(shù) 據(jù)更新116具有"FGHIJ"的值。第一節(jié)點(diǎn)IOO存儲(chǔ)數(shù)據(jù)新的值,并另 外存儲(chǔ)新的時(shí)間戳118。因?yàn)樵摂?shù)據(jù)從權(quán)威的源而非從第二節(jié)點(diǎn)進(jìn)入第 一節(jié)點(diǎn),所以數(shù)據(jù)U6還具有與第一節(jié)點(diǎn)IOO相關(guān)的指定120。隨后, 將數(shù)據(jù)116與時(shí)間戳118和指定120 —起傳送到第二節(jié)點(diǎn)102。第二節(jié) 點(diǎn)102用新的數(shù)據(jù)122、新的時(shí)間戳124和新的指定126來(lái)覆蓋原始的 數(shù)據(jù)110、時(shí)間戳112和指定114。由于數(shù)據(jù)104初始時(shí)與第一節(jié)點(diǎn)100 相關(guān),且數(shù)據(jù)更新116也與第一節(jié)點(diǎn)100相關(guān),所以不存在沖突。貫 穿所示的實(shí)例,從不存在與第二節(jié)點(diǎn)102相關(guān)的,或者存儲(chǔ)在與第二 節(jié)點(diǎn)102相關(guān)的部分中的數(shù)據(jù)庫(kù)內(nèi)的任何數(shù)據(jù)。
參照?qǐng)D2,示出了根據(jù)另一個(gè)實(shí)施例對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行更新的第二 實(shí)例。示出的是第一節(jié)點(diǎn)200和第二節(jié)點(diǎn)202。與圖l所示的實(shí)例一樣, 兩個(gè)數(shù)據(jù)庫(kù)都以相同的初始條件開始(即,這兩個(gè)節(jié)點(diǎn)中的所有數(shù)據(jù) 都是相同的)。
在該實(shí)例中,示出了存儲(chǔ)在第一節(jié)點(diǎn)200中的數(shù)據(jù)204具有初始 值"ABCDE"。另外,與數(shù)據(jù)204 —起存儲(chǔ)的是第一時(shí)間戳206的值。 數(shù)據(jù)204和時(shí)間戳206與指定208相關(guān),指定208指示在該系統(tǒng)中, 數(shù)據(jù)204來(lái)自于第一節(jié)點(diǎn)200。存儲(chǔ)在第二節(jié)點(diǎn)202中的數(shù)據(jù)210另外 具有與存儲(chǔ)在第一節(jié)點(diǎn)200中的數(shù)據(jù)204相同的值"ABCDE"。另夕卜, 與數(shù)據(jù)210相關(guān)的時(shí)間戳212存儲(chǔ)在第二節(jié)點(diǎn)202中。然而,存儲(chǔ)在 第二節(jié)點(diǎn)202中的數(shù)據(jù)210和時(shí)間戳212與指定214相關(guān),指定214
與第一節(jié)點(diǎn)200對(duì)應(yīng)。因此,第二節(jié)點(diǎn)202知道數(shù)據(jù)210來(lái)自于第一 節(jié)點(diǎn)200。
在操作中,第二節(jié)點(diǎn)202接收具有"FGHIJ"的值的數(shù)據(jù)更新216。 與第二時(shí)間戳218 —起存儲(chǔ)該數(shù)據(jù)更新216。數(shù)據(jù)更新216和時(shí)間戳 218與指定220相關(guān),指定220與第二節(jié)點(diǎn)202對(duì)應(yīng)。另外,數(shù)據(jù)更新 216來(lái)自于權(quán)威的源。因?yàn)閿?shù)據(jù)來(lái)自于權(quán)威的源,所以第二節(jié)點(diǎn)202知 道數(shù)據(jù)更新216是正確的。因此,可以刪除存儲(chǔ)在第二節(jié)點(diǎn)202中且 與第一節(jié)點(diǎn)200相關(guān)的數(shù)據(jù)210和時(shí)間戳212。如所示的,已經(jīng)從第二 節(jié)點(diǎn)202中刪除具有"ABCDE"的值的原始數(shù)據(jù)。
隨后,把數(shù)據(jù)更新216傳送到第一節(jié)點(diǎn)200。把數(shù)據(jù)更新216發(fā)送 到具有第二時(shí)間戳218的第一節(jié)點(diǎn),數(shù)據(jù)更新216具有"FGHIJ"的值。 另外,第二節(jié)點(diǎn)202把第一時(shí)間戳212發(fā)送到第二節(jié)點(diǎn)。以此方式, 第一節(jié)點(diǎn)200能夠確定第二節(jié)點(diǎn)接收對(duì)原始數(shù)據(jù)204和原始時(shí)間戳206 的更新。因此,第一節(jié)點(diǎn)能夠確定第一節(jié)點(diǎn)200與第二節(jié)點(diǎn)202之間 沒(méi)有沖突。第一節(jié)點(diǎn)將新的數(shù)據(jù)222和新的時(shí)間戳200與第二節(jié)點(diǎn)的 指定226 —起存儲(chǔ)。以此方式,第一節(jié)點(diǎn)200跟蹤數(shù)據(jù)更新216來(lái)源 于何處。在第一節(jié)點(diǎn)200確認(rèn)了數(shù)據(jù)更新216是對(duì)存儲(chǔ)在兩個(gè)節(jié)點(diǎn)中 的數(shù)據(jù)的相同基值(即,ABCDE和時(shí)間戳1)的更新之后,從第一節(jié) 點(diǎn)200中刪除原始數(shù)據(jù)204和原始時(shí)間戳206。如所述的,當(dāng)數(shù)據(jù)從一 個(gè)數(shù)據(jù)庫(kù)傳送到該系統(tǒng)內(nèi)的另一個(gè)時(shí),與該數(shù)據(jù)一起發(fā)送先前數(shù)據(jù)(例 如,基值)是在該更新之前的指示。在以上所給出的實(shí)例中,與數(shù)據(jù) 更新216和第二時(shí)間戳218 —起發(fā)送原始時(shí)間戳206,以給出先前數(shù)據(jù) 是在該更新之前的指示。該信息用來(lái)判斷何時(shí)出現(xiàn)沖突,且下面將參 照?qǐng)D3進(jìn)行描述。如圖1和2所示,數(shù)據(jù)可以從第一節(jié)點(diǎn)200或第二 節(jié)點(diǎn)202更新。
對(duì)于以上在圖1和2中所描述的實(shí)例,示出了高度可用的數(shù)據(jù)庫(kù) 系統(tǒng)的常規(guī)操作,其中在該數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)之間不存在沖突。
參照?qǐng)D3,示出了根據(jù)一個(gè)實(shí)施例在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)的沖突的實(shí)例。
示出的是第一節(jié)點(diǎn)300和第二節(jié)點(diǎn)302。
類似于圖1和2所示的實(shí)例,存儲(chǔ)在第一節(jié)點(diǎn)300內(nèi)的數(shù)據(jù)304 具有初始值"ABCDE"。另外,與數(shù)據(jù)304 —起存儲(chǔ)的是第一時(shí)間戳 306的值。數(shù)據(jù)304和時(shí)間戳306與指定308相關(guān),指定308指示了在 該系統(tǒng)中,數(shù)據(jù)304來(lái)自于第一節(jié)點(diǎn)300。初始時(shí),在第一節(jié)點(diǎn)300和 第二節(jié)點(diǎn)302中的數(shù)據(jù)都是相等的。
在操作中,第二節(jié)點(diǎn)302接收來(lái)自于接收隊(duì)列的具有"FGHIJ"的 值的數(shù)據(jù)更新316。與第二時(shí)間戳318—起存儲(chǔ)數(shù)據(jù)更新316。數(shù)據(jù)更 新316和時(shí)間戳318存儲(chǔ)在數(shù)據(jù)庫(kù)中且與指定320相關(guān),該指定320 指示了該數(shù)據(jù)與第二節(jié)點(diǎn)302對(duì)應(yīng)。另外,數(shù)據(jù)更新316來(lái)自于權(quán)威 的源。如所示的,然后從第二節(jié)點(diǎn)302中刪除初始時(shí)與第一節(jié)點(diǎn)300 相關(guān)的數(shù)據(jù)和時(shí)間戳。
另外,第二節(jié)點(diǎn)302通過(guò)復(fù)制隊(duì)列接收來(lái)自于第一節(jié)點(diǎn)300的數(shù) 據(jù)更新330 (即,在數(shù)據(jù)庫(kù)之間的數(shù)據(jù)傳送)。數(shù)據(jù)更新330具有 "KLMNO"值。來(lái)自于第一節(jié)點(diǎn)300的數(shù)據(jù)更新330包括第三時(shí)間戳 332。另外,與數(shù)據(jù)更新220 —起從第一節(jié)點(diǎn)300發(fā)送的是關(guān)于該更新 之前的原始數(shù)據(jù)值的指示(例如,原始時(shí)間戳306)。例如,為了指示 第二節(jié)點(diǎn)302該數(shù)據(jù)更新330是對(duì)原始數(shù)據(jù)304的更新,與數(shù)據(jù)更新 330 —起發(fā)送原始時(shí)間戳306。因?yàn)閬?lái)自于接收隊(duì)列的數(shù)據(jù)更新316和 來(lái)自于復(fù)制隊(duì)列的數(shù)據(jù)更新330都是對(duì)數(shù)據(jù)304的更新,對(duì)數(shù)據(jù)304 的更新與原始時(shí)間戳306有關(guān),現(xiàn)在在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)存在沖突。根據(jù) 本實(shí)施例,來(lái)自于接收隊(duì)列的數(shù)據(jù)更新316和來(lái)自于復(fù)制隊(duì)列的數(shù)據(jù) 更新330都存儲(chǔ)在第二接點(diǎn)302中。將會(huì)存儲(chǔ)數(shù)據(jù)片段直至解決了沖 突為止。雖然未示出,但還將在第一節(jié)點(diǎn)300中存儲(chǔ)同一數(shù)據(jù)。這與 將在其中存儲(chǔ)具有后來(lái)的時(shí)間戳的數(shù)據(jù)并丟棄其他數(shù)據(jù)片斷的現(xiàn)有系
統(tǒng)形成對(duì)比。這是在高度可用的數(shù)據(jù)庫(kù)系統(tǒng)中如何會(huì)出現(xiàn)沖突以及識(shí) 別該沖突的實(shí)例。可出現(xiàn)其他沖突,且不同的方法可用來(lái)識(shí)別系統(tǒng)內(nèi) 的沖突。
以下在圖4到9中所描述的實(shí)例提供了用于一旦在系統(tǒng)內(nèi)識(shí)別了 沖突就解決該沖突的方法。
參照?qǐng)D4,示出了根據(jù)一個(gè)實(shí)施例的即時(shí)沖突解決的流程圖。
在步驟400中,將第一數(shù)據(jù)集存儲(chǔ)在數(shù)據(jù)庫(kù)中。該數(shù)據(jù)庫(kù)可以位 于計(jì)算機(jī)上或與該計(jì)算機(jī)相連的高度可用的存儲(chǔ)器設(shè)備中。隨后,在 步驟402中,將第二數(shù)據(jù)集存儲(chǔ)在該數(shù)據(jù)庫(kù)中。在本實(shí)例中,我們假 設(shè)第一數(shù)據(jù)集和第二數(shù)據(jù)集是沖突的。
接下來(lái)在步驟404中, 一旦識(shí)別了沖突就創(chuàng)建一個(gè)控制線程。在 步驟406中,基于存儲(chǔ)在該數(shù)據(jù)庫(kù)中的第一數(shù)據(jù)集進(jìn)行第一請(qǐng)求,且 在步驟408中,基于存儲(chǔ)在該數(shù)據(jù)庫(kù)中的第二數(shù)據(jù)集進(jìn)行第二請(qǐng)求。 優(yōu)選地,同時(shí)啟動(dòng)并運(yùn)行步驟406和步驟408。在訂戶VLR的實(shí)例中, 假設(shè)第一數(shù)據(jù)集指示該訂戶在芝加哥,且第二數(shù)據(jù)集指示該訂戶在密 爾沃基。第一請(qǐng)求將發(fā)送位置請(qǐng)求到芝加哥。第二請(qǐng)求將發(fā)送位置請(qǐng) 求到密爾沃基。因?yàn)橛啈裘看沃荒茉谖锢砩咸幱谝粋€(gè)位置上,所以僅 有一個(gè)請(qǐng)求將返回正面回答。因此,已解決了沖突,可以從數(shù)據(jù)庫(kù)中 丟棄不正確的數(shù)據(jù)集。
接下來(lái)參照?qǐng)D5,示出了根據(jù)一個(gè)實(shí)施例的成功的即時(shí)沖突解決的 流程圖。
在步驟500中,創(chuàng)建一個(gè)控制線程,它類似于圖4所示的控制線 程。在歩驟502中,基于存儲(chǔ)在數(shù)據(jù)庫(kù)中的第一數(shù)據(jù)集采取行動(dòng)或請(qǐng) 求。在步驟504中,基于存儲(chǔ)在該數(shù)據(jù)庫(kù)中的第二數(shù)據(jù)集采取行動(dòng)或
請(qǐng)求。如上所述,優(yōu)選同時(shí)啟動(dòng)并運(yùn)行步驟505和步驟504,然而,這 不是必需的。在所示實(shí)例中,步驟506示出了步驟502已經(jīng)成功地解 決了沖突。在步驟508中,該成功被發(fā)送給控制線程,且該控制線程 基于第二數(shù)據(jù)集來(lái)啟動(dòng)該行動(dòng)的終止。在步驟510中,由控制線程來(lái) 終止基于第二數(shù)據(jù)集的行動(dòng)。
在步驟512中,從數(shù)據(jù)庫(kù)中刪除第二數(shù)據(jù)集,且在步驟514中, 終止該控制線程。
參照?qǐng)D6,示出了根據(jù)一個(gè)實(shí)施例的失敗的即時(shí)沖突解決的流程圖。
在步驟600中,創(chuàng)建一個(gè)控制線程,它類似于圖5所示的控制線 程。在步驟602中,基于存儲(chǔ)在數(shù)據(jù)庫(kù)中的第一數(shù)據(jù)集釆取行動(dòng)或請(qǐng) 求。在步驟604中,基于存儲(chǔ)在該數(shù)據(jù)庫(kù)中的第二數(shù)據(jù)集采取行動(dòng)或 請(qǐng)求。如上所述,優(yōu)選同時(shí)運(yùn)行步驟602和步驟604,然而,這不是必 需的。在步驟606中,第一行動(dòng)返回失敗,且在步驟608中,第二行 動(dòng)返回失敗。在此情況下,在步驟610中,在該數(shù)據(jù)庫(kù)中繼續(xù)存儲(chǔ)第 一數(shù)據(jù)集和第二數(shù)據(jù)集直至解決該沖突為止。
參照?qǐng)D7,示出了根據(jù)一個(gè)實(shí)施例的延遲沖突解決的流程圖。
在步驟700中,執(zhí)行線程向數(shù)據(jù)庫(kù)請(qǐng)求數(shù)據(jù)。對(duì)于本實(shí)例來(lái)說(shuō), 假設(shè)所請(qǐng)求的數(shù)據(jù)包括兩個(gè)沖突的數(shù)據(jù)集。在步驟702中,返回兩個(gè) 數(shù)據(jù)集(即,第一數(shù)據(jù)集和第二數(shù)據(jù)集)。隨后在步驟704中,創(chuàng)建 一個(gè)控制線程。在步驟706中,克隆該向數(shù)據(jù)庫(kù)請(qǐng)求數(shù)據(jù)的執(zhí)行線程。 隨后在步驟708中,原始的執(zhí)行線程和所克隆的線程現(xiàn)在都由控制線 程控制。在步驟710中,控制線程將第一數(shù)據(jù)集返回給執(zhí)行線程,并 將第二數(shù)據(jù)集返回給所克隆的線程。
參照?qǐng)D8,示出了根據(jù)一個(gè)實(shí)施例的成功的延遲沖突解決的流程圖。
在步驟800中,創(chuàng)建一個(gè)控制線程。在步驟802中,該執(zhí)行線程 基于存儲(chǔ)在數(shù)據(jù)庫(kù)中的第一數(shù)據(jù)集采取行動(dòng)或請(qǐng)求。在步驟804中, 所克隆的線程基于存儲(chǔ)在數(shù)據(jù)庫(kù)中的第二數(shù)據(jù)集采取行動(dòng)或請(qǐng)求。優(yōu) 選同時(shí)運(yùn)行步驟802和步驟804,然而,這不是必需的。在所示實(shí)例中, 步驟806示出了步驟802已經(jīng)成功地解決了沖突。在步驟80S中,該 成功被發(fā)送給控制線程,而且控制線程基于第二數(shù)據(jù)集來(lái)啟動(dòng)該行動(dòng) 的終止。應(yīng)當(dāng)理解,成功與失敗不依賴于該線程是原始執(zhí)行線程還是 所克隆的線程。在步驟810中,由控制線程終止該基于第二數(shù)據(jù)集的 行動(dòng)(即,在本實(shí)例中,終止所克隆的線程)。
在步驟812中,從數(shù)據(jù)庫(kù)中刪除第二數(shù)據(jù)集,且在步驟814中, 控制線程返回成功。
參照?qǐng)D9,示出了根據(jù)一個(gè)實(shí)施例的失敗的延遲沖突解決的流程圖。
在步驟卯O中,創(chuàng)建一個(gè)控制線程。在步驟902中,該執(zhí)行線程 基于存儲(chǔ)在數(shù)據(jù)庫(kù)中的第一數(shù)據(jù)集采取行動(dòng)或請(qǐng)求。在步驟904中, 所克隆的線程基于存儲(chǔ)在數(shù)據(jù)庫(kù)中的第二數(shù)據(jù)集采取行動(dòng)或請(qǐng)求。在 步驟906中,第一行動(dòng)返回失敗,且在步驟908中,第二行動(dòng)返回失 敗。在此情況下,在步驟610中,在數(shù)據(jù)庫(kù)中繼續(xù)存儲(chǔ)第一數(shù)據(jù)集和 第二數(shù)據(jù)集,并且該控制線程返回失敗。
除了沖突解決的以上實(shí)例之外,當(dāng)高度可用的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)內(nèi)的節(jié) 點(diǎn)(例如,節(jié)點(diǎn)B)已經(jīng)離線且正在連線時(shí),節(jié)點(diǎn)A將把在其數(shù)據(jù)庫(kù) 中的整個(gè)數(shù)據(jù)集發(fā)送到節(jié)點(diǎn)B。當(dāng)以此方式來(lái)存儲(chǔ)來(lái)自于節(jié)點(diǎn)A的數(shù) 據(jù)時(shí),將保持用于所有數(shù)據(jù)的關(guān)聯(lián)。例如,如果節(jié)點(diǎn)A在與節(jié)點(diǎn)A相
關(guān)的位置上包括單個(gè)數(shù)據(jù)副本,當(dāng)向節(jié)點(diǎn)B發(fā)送該數(shù)據(jù)時(shí),節(jié)點(diǎn)B將 把該數(shù)據(jù)存儲(chǔ)在相同的位置上并使其與節(jié)點(diǎn)A相關(guān)聯(lián)。類似地,如果
節(jié)點(diǎn)A在一個(gè)位置上包括兩個(gè)數(shù)據(jù)副本, 一個(gè)副本與節(jié)點(diǎn)A相關(guān)且另 一個(gè)副本與節(jié)點(diǎn)B相關(guān),當(dāng)向節(jié)點(diǎn)B發(fā)送該數(shù)據(jù)時(shí),與節(jié)點(diǎn)A相關(guān)的 數(shù)據(jù)將保持與節(jié)點(diǎn)A相關(guān),與節(jié)點(diǎn)B相關(guān)的數(shù)據(jù)將保持與節(jié)點(diǎn)B相關(guān)。
在以上過(guò)程中,節(jié)點(diǎn)B也許在其數(shù)據(jù)存儲(chǔ)(datastore)中已經(jīng)包 含了若干數(shù)量的數(shù)據(jù)。也就是說(shuō),雖然離線,但也許還沒(méi)有抹去節(jié)點(diǎn)B 上的數(shù)據(jù)。在節(jié)點(diǎn)B接收來(lái)自于節(jié)點(diǎn)A的一個(gè)位置上的數(shù)據(jù)的情況下, 其中該位置已經(jīng)具有數(shù)據(jù),將進(jìn)行以下行動(dòng)。當(dāng)來(lái)自于節(jié)點(diǎn)A的數(shù)據(jù) 與節(jié)點(diǎn)A相關(guān)時(shí),如果節(jié)點(diǎn)B已經(jīng)具有與節(jié)點(diǎn)A相關(guān)的數(shù)據(jù),節(jié)點(diǎn)B 將重寫該數(shù)據(jù)。當(dāng)來(lái)自于節(jié)點(diǎn)A的數(shù)據(jù)與節(jié)點(diǎn)B相關(guān)時(shí),如果節(jié)點(diǎn)B 已經(jīng)具有與節(jié)點(diǎn)B相關(guān)的數(shù)據(jù),它將丟棄來(lái)自于節(jié)點(diǎn)A的數(shù)據(jù)。請(qǐng)注 意,涉及節(jié)點(diǎn)何時(shí)連線的以上過(guò)程還適用于系統(tǒng)中的節(jié)點(diǎn)之間的通信 已經(jīng)中斷的情況。
在此所述的實(shí)施例允許高度可用的數(shù)據(jù)庫(kù)系統(tǒng)避免讓用戶對(duì)沖突 進(jìn)行后期處理,其有利于更可靠的自動(dòng)化方法,該更可靠的自動(dòng)化方 法確保將不會(huì)丟失所復(fù)制的數(shù)據(jù),且所復(fù)制的數(shù)據(jù)將總會(huì)導(dǎo)致正確的 過(guò)程,這基于以所存儲(chǔ)的數(shù)據(jù)作為輸入來(lái)運(yùn)行的應(yīng)用程序。以此方式, 該實(shí)施例實(shí)現(xiàn)了自校正且高度可用的數(shù)據(jù)存儲(chǔ)。
雖然已經(jīng)借助于本發(fā)明的特定實(shí)施例和應(yīng)用描述了在此公開的本 發(fā)明,但是可以根據(jù)并非專門描述的以上教導(dǎo)來(lái)對(duì)本發(fā)明進(jìn)行其他修 改、變化和安排,以在由以下權(quán)利要求所限定的精神和范圍內(nèi)實(shí)踐本 發(fā)明。
權(quán)利要求
1. 一種在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,包括接收數(shù)據(jù)集的第一值,所述第一值與第一節(jié)點(diǎn)對(duì)應(yīng);存儲(chǔ)所述數(shù)據(jù)集的所述第一值;接收所述數(shù)據(jù)集的第二值,所述第二值與第二節(jié)點(diǎn)對(duì)應(yīng),其中所述第一值不同于所述第二值;識(shí)別在所述數(shù)據(jù)集的所述第一值與所述數(shù)據(jù)集的所述第二值之間的沖突;以及與所述數(shù)據(jù)集的所述第一值一起存儲(chǔ)所述數(shù)據(jù)集的所述第二值。
2. 如權(quán)利要求1所述的在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,還 包括基于所述數(shù)據(jù)集的所述第一值來(lái)啟動(dòng)第一處理;以及 基于所述數(shù)據(jù)集的所述第二值來(lái)啟動(dòng)第二處理。
3. 如權(quán)利要求2所述的在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,還 包括基于所述第一處理和所述第二處理中的至少一個(gè)的結(jié)果,來(lái)刪 除所述數(shù)據(jù)集的所述第一值和所述數(shù)據(jù)集的所述第二值中的一個(gè)。
4. 如權(quán)利要求3所述的在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,還 包括創(chuàng)建控制線程,以控制啟動(dòng)所述第一處理的步驟和啟動(dòng)所述第二處理的步驟。
5. 如權(quán)利要求l所述的在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,其 中所述網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)是訪問(wèn)位置寄存器。
6. —種解決網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中的沖突的方法,包括 存儲(chǔ)數(shù)據(jù)集的第一值,所述第一值與第一節(jié)點(diǎn)對(duì)應(yīng); 存儲(chǔ)所述數(shù)據(jù)集的第二值,所述第二值與第二節(jié)點(diǎn)對(duì)應(yīng),其中所 述第一值不同于所述第二值;基于所述數(shù)據(jù)集的所述第一值來(lái)啟動(dòng)第一處理; 基于所述數(shù)據(jù)集的所述第二值來(lái)啟動(dòng)第二處理;以及 基于所述第一處理和所述第二處理中的至少一個(gè)的結(jié)果,來(lái)刪除 所述數(shù)據(jù)集的所述第一值和所述數(shù)據(jù)集的所述第二值中的一個(gè)。
7. 如權(quán)利要求6所述的解決網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中的沖突的方法,還 包括創(chuàng)建控制線程,以控制啟動(dòng)所述第一處理的步驟和啟動(dòng)所述第 二處理的步驟。
8. 如權(quán)利要求6所述的在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,還包括接收來(lái)自于請(qǐng)求線程的對(duì)所述數(shù)據(jù)集的請(qǐng)求。
9. 如權(quán)利要求8所述的在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,還包括創(chuàng)建所述請(qǐng)求線程的克隆;向所述請(qǐng)求線程提供所述數(shù)據(jù)集的所述第一值,所述請(qǐng)求線程啟 動(dòng)所述第一處理;以及向所述請(qǐng)求線程的所述克隆提供所述數(shù)據(jù)集的所述第二值,所述 請(qǐng)求線程的所述克隆啟動(dòng)所述第二處理。
10. —種解決網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中的沖突的方法,包括 存儲(chǔ)數(shù)據(jù)集的第一值,所述第一值與第一節(jié)點(diǎn)對(duì)應(yīng); 存儲(chǔ)所述數(shù)據(jù)集的第二值,所述第二值與第二節(jié)點(diǎn)對(duì)應(yīng),其中所述第一值不同于所述第二值;接收來(lái)自于請(qǐng)求線程的對(duì)所述數(shù)據(jù)集的請(qǐng)求; 創(chuàng)建所述請(qǐng)求線程的克??;向所述請(qǐng)求線程提供所述數(shù)據(jù)集的所述第一值,所述請(qǐng)求線程運(yùn) 行第一處理;向所述請(qǐng)求線程的所述克隆提供所述數(shù)據(jù)集的所述第二值,所述 請(qǐng)求線程的所述克隆運(yùn)行第二處理;以及基于所述第一處理和所述第二處理中的至少一個(gè)的結(jié)果,來(lái)刪除 所述數(shù)據(jù)集的所述第一值和所述數(shù)據(jù)集的所述第二值中的一個(gè)。
全文摘要
本發(fā)明涉及一種在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)數(shù)據(jù)的方法,包括接收用于數(shù)據(jù)集的第一值(330),所述第一值與第一節(jié)點(diǎn)(300)對(duì)應(yīng);存儲(chǔ)用于所述數(shù)據(jù)集的所述第一值;接收用于所述數(shù)據(jù)集的第二值(316),所述第二值與第二節(jié)點(diǎn)(302)對(duì)應(yīng),其中所述第一值不同于所述第二值;識(shí)別在用于所述數(shù)據(jù)集的所述第一值與用于所述數(shù)據(jù)集的所述第二值之間的沖突;以及,與用于所述數(shù)據(jù)集的所述第一值一起存儲(chǔ)用于所述數(shù)據(jù)集的所述第二值,并通過(guò)查詢權(quán)威的數(shù)據(jù)源來(lái)解決沖突。
文檔編號(hào)G06F17/30GK101390092SQ200680046823
公開日2009年3月18日 申請(qǐng)日期2006年12月12日 優(yōu)先權(quán)日2005年12月15日
發(fā)明者亞歷克斯·羅森施特勞赫, 索仁·K·倫斯高德 申請(qǐng)人:摩托羅拉公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西峡县| 乌拉特后旗| 桃江县| 和静县| 油尖旺区| 五寨县| 汨罗市| 治县。| 平谷区| 南木林县| 老河口市| 高平市| 湘阴县| 龙口市| 河东区| 梓潼县| 磴口县| 甘肃省| 腾冲县| 汕尾市| 汉寿县| 凌源市| 岳池县| 弋阳县| 永宁县| 正阳县| 金平| 辽源市| 东阿县| 宣威市| 湟源县| 毕节市| 巴南区| 资源县| 丘北县| 平昌县| 昌图县| 巴塘县| 合作市| 新乡市| 阳西县|