整數(shù)、步驟、操作、元件和/或部件,但并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、部件和/或它們的組合。應(yīng)理解,當(dāng)某個(gè)元件被稱作“連接到”或“親合到”另一個(gè)元件時(shí),它可以直接連接或耦合到另外的元件,或者可能存在中介元件。此外,本文所用的“連接到”或者“耦合至IJ”可包括可操作地連接或耦合。本文所用的術(shù)語“和/或”包括相關(guān)聯(lián)的所列項(xiàng)目中的一者或多者的任何和所有組合和安排。
[0051]除非另有定義,否則本文所用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)都具有與本領(lǐng)域普通技術(shù)人員公知的含義相同的含義。應(yīng)進(jìn)一步理解,術(shù)語例如常用的字典中定義的那些術(shù)語應(yīng)被解釋為具有與它們在相關(guān)領(lǐng)域和本發(fā)明中的含義一致的含義,并且不應(yīng)以理想化或過于正式的方式被解釋,除非在本文中明確地如此定義。
[0052]附圖描繪了僅示出一些元件和功能實(shí)體的簡化結(jié)構(gòu),所有這些元件和功能實(shí)體都是邏輯單元,其實(shí)施方式可以不同于所示出的。所示出的連接是邏輯連接;實(shí)際的物理連接可以不同。對本領(lǐng)域的技術(shù)人員顯而易見的是該結(jié)構(gòu)還包括其他功能和結(jié)構(gòu)。應(yīng)當(dāng)理解,在通信中使用的功能、結(jié)構(gòu)、元件和協(xié)議與本發(fā)明無關(guān)。因此,這里不需要更詳細(xì)地討論它們。
[0053]另外,附圖中所述及所繪的所有邏輯單元包括單元發(fā)揮其功能所需的軟件和/或硬件部件。進(jìn)一步地,每個(gè)單元自身包括隱含理解的一個(gè)或多個(gè)部件。這些部件可操作地互相耦合并用于互相通信以執(zhí)行所述單元的功能。
[0054]本發(fā)明所公開的系統(tǒng)中提供的特征可在一個(gè)或多個(gè)實(shí)施例中通過遠(yuǎn)程無線,和/或通過無線網(wǎng)絡(luò)訪問。此類無線網(wǎng)絡(luò)服務(wù)提供商操作并維護(hù)計(jì)算系統(tǒng)和環(huán)境,例如服務(wù)器系統(tǒng)和架構(gòu)。通常,服務(wù)器架構(gòu)包括提供無線網(wǎng)絡(luò)服務(wù)的基礎(chǔ)機(jī)構(gòu)(例如,硬件、軟件和通信線路)。在某些實(shí)施例中,本發(fā)明的實(shí)施例中的操作可以通過空中接口(on-air interface)或空口無線執(zhí)行。
[0055]基本上,本文所述的操作為網(wǎng)絡(luò)、設(shè)備、計(jì)算機(jī)或機(jī)器執(zhí)行的操作,或者在一些實(shí)施例中結(jié)合與計(jì)算機(jī)和機(jī)器進(jìn)行交互的操作員或用戶執(zhí)行的操作。本文所述的程序、模塊、過程、方法、數(shù)據(jù)等僅僅是示例性實(shí)施方式,不涉及或限于任意特定計(jì)算機(jī)、裝置或計(jì)算機(jī)語言。相反,各種類型的通用計(jì)算機(jī)器或設(shè)備可根據(jù)本文所述的啟示與所構(gòu)建的程序一起使用。
[0056]應(yīng)理解本發(fā)明的實(shí)施例可包括在各種類型的通信網(wǎng)絡(luò)中,這些通信網(wǎng)絡(luò)在本發(fā)明的范圍內(nèi),但不限于實(shí)施例。術(shù)語“網(wǎng)絡(luò)”和“系統(tǒng)”經(jīng)?;Q使用。
[0057]當(dāng)前,現(xiàn)有機(jī)制有利地為給定的一組邊緣路由器提供了一種機(jī)制以根據(jù)一些最低配置確定數(shù)據(jù)庫集群拓?fù)洹W羁拷鱀B(數(shù)據(jù)庫)節(jié)點(diǎn)的邊緣路由器為“主DB節(jié)點(diǎn)邊緣路由器”或簡言之“MDER”。創(chuàng)建由多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(例如,路由器)組成的集群時(shí)配置MDER( “主DB節(jié)點(diǎn)邊緣路由器”)。路由器可提供CLI(命令行視圖)或SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)或其他配置機(jī)制來啟動(dòng)該配置。MDER( “主DB節(jié)點(diǎn)邊緣路由器”)中配置的數(shù)據(jù)包括:
[0058]a.主DB(數(shù)據(jù)庫)節(jié)點(diǎn)的IP地址
[0059]b.數(shù)據(jù)庫集群的唯一標(biāo)識(shí)符
[0060]c.信道和相關(guān)的策略配置
[0061]因此,本發(fā)明范圍內(nèi)的邊緣路由器用于檢測數(shù)據(jù)存儲(chǔ)器網(wǎng)絡(luò)、復(fù)制數(shù)據(jù)庫集群、分布式數(shù)據(jù)庫和分布式數(shù)據(jù)存儲(chǔ)器的拓?fù)?。眾所周知,路由器為一種轉(zhuǎn)發(fā)計(jì)算機(jī)網(wǎng)絡(luò)之間的數(shù)據(jù)包的設(shè)備,創(chuàng)建了疊加互聯(lián)網(wǎng)絡(luò)。路由器通??蛇B接到來自不同網(wǎng)絡(luò)的兩個(gè)或多個(gè)數(shù)據(jù)線路。當(dāng)數(shù)據(jù)包來自其中一個(gè)線路時(shí),路由器讀取包中的地址信息來確定其目的地。隨后,路由器使用其路由表或路由策略中的信息將包引導(dǎo)至其行程中的下一網(wǎng)絡(luò)。因此,路由器在因特網(wǎng)上進(jìn)行“流量弓I導(dǎo)”功能。
[0062]本發(fā)明范圍內(nèi)的所屬領(lǐng)域的普通技術(shù)人員注意到本發(fā)明范圍內(nèi)的集群由一組松散連接或緊密連接的計(jì)算機(jī)組成,這些計(jì)算機(jī)一起工作并且通常被視為單個(gè)系統(tǒng)。
[0063]一旦配置了集群,MDER(“主DB節(jié)點(diǎn)邊緣路由器”)使用合適的通告/發(fā)布機(jī)制在整個(gè)網(wǎng)絡(luò)通告/發(fā)布該服務(wù)。通告方式之一為使用IETF(工程任務(wù)組)草案“draft-keyupate-bgp-services-02”中引入的BGP(邊界網(wǎng)關(guān)協(xié)議)通告/發(fā)布機(jī)制。
[0064]本發(fā)明還提供了一種用于服務(wù)通告/發(fā)布的框架,該框架在后面的段落中詳述。
[0065]為了清晰起見并有效地理解本發(fā)明的技術(shù)貢獻(xiàn),本文提供了少量提出的現(xiàn)有方案,參照附圖簡要地描述了這些方案。
[0066]圖1示出了現(xiàn)有的單主復(fù)制機(jī)制。本文中,對主數(shù)據(jù)庫(101)進(jìn)行的事務(wù)(104)分別通過事務(wù)(105)和(106)傳播至訂戶數(shù)據(jù)庫(102)和訂戶數(shù)據(jù)庫(103)。因此,冗余副本在訂戶數(shù)據(jù)庫(102)和(103)中保存。
[0067]圖2示出了現(xiàn)有的多主復(fù)制機(jī)制。此處,可對多個(gè)主數(shù)據(jù)庫(201、202、203)進(jìn)行維護(hù)(同步且獨(dú)立更新)。對特定主數(shù)據(jù)庫進(jìn)行的任意更新需要傳播至剩余主數(shù)據(jù)庫以保持一致性。例如,當(dāng)主數(shù)據(jù)庫(201)隨事務(wù)(204)更新時(shí),主數(shù)據(jù)庫(201)將更新傳播至剩余主數(shù)據(jù)庫(202、203)。剩余主數(shù)據(jù)庫也會(huì)如此這樣將其更新傳播至所有其他主數(shù)據(jù)庫。
[0068]圖3示出了現(xiàn)有/傳統(tǒng)復(fù)制中的冗余。此處,主數(shù)據(jù)庫(301)具有兩個(gè)訂戶數(shù)據(jù)庫(302、303)。對主數(shù)據(jù)庫(301)進(jìn)行的任意更改/更新需要傳播至所有主數(shù)據(jù)庫的訂戶(302、303)。因此,無論何時(shí)對主數(shù)據(jù)庫(301)進(jìn)行更新,主數(shù)據(jù)庫(301)向訂戶數(shù)據(jù)庫(302)和訂戶數(shù)據(jù)庫(303)提供兩份更新副本。這兩份副本通過多個(gè)中間路由器在分布式網(wǎng)絡(luò)中傳播。因此,發(fā)往主數(shù)據(jù)庫的一份更新副本在每個(gè)路由器處復(fù)制用于向訂戶數(shù)據(jù)庫(302和303)遞送,該復(fù)制過程使用了寶貴的網(wǎng)絡(luò)資源并增加了多種類型的冗余。
[0069]因此,又一次維護(hù)了分布式網(wǎng)絡(luò)環(huán)境中的冗余。
[0070]圖4示出了用于解決分布式網(wǎng)絡(luò)環(huán)境中的過多訂閱的現(xiàn)有組播方案的圖解表示。
[0071]到目前為止,嘗試避免現(xiàn)有分布式網(wǎng)絡(luò)中的冗余包括解決數(shù)據(jù)路由問題并集中于數(shù)據(jù)庫復(fù)制。只提出了部分方案。這些方案可分類為
[0072]嘗試減少網(wǎng)絡(luò)中的過多訂閱和冗余
[0073]嘗試針對特定內(nèi)容的路由
[0074]圖5示出了用于冗余消除的現(xiàn)有方案的圖解表示。
[0075]類似地,圖6示出了用于包級(jí)冗余檢測的現(xiàn)有方案。
[0076]然而,當(dāng)這些方案(如圖5和圖6中所示)應(yīng)用到一般的數(shù)據(jù)庫復(fù)制優(yōu)化時(shí),這些方案存在以下但不限于以下的缺點(diǎn):
[0077]高計(jì)算成本,因?yàn)樗鼈儑L試減少“字節(jié)”級(jí)的冗余,因此會(huì)大大增加邊緣路由器的負(fù)載;
[0078]這些方案未利用傳輸數(shù)據(jù)的性質(zhì),因?yàn)檫@些方案對所有數(shù)據(jù)應(yīng)用統(tǒng)一優(yōu)化,統(tǒng)一優(yōu)化在實(shí)際的分布式網(wǎng)絡(luò)環(huán)境中是次優(yōu)的;
[0079 ]由于數(shù)據(jù)庫集群的拓?fù)湮粗@些方案無法提供數(shù)據(jù)庫感知的路由方案。
[0080]避免過度訂閱的基本方案為使用組播方案。然而,組播方案僅可用于UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。大多數(shù)復(fù)制實(shí)施方案基于TCP(傳輸控制協(xié)議),這些復(fù)制實(shí)施方案不含最優(yōu)的組播方案。UDP(用戶數(shù)據(jù)報(bào)協(xié)議)組播方案還缺乏可靠性。另外,使用組播方案需要在數(shù)據(jù)庫實(shí)施中進(jìn)行大量更改,這使得方案變得尤為復(fù)雜。
[0081]圖7示出了本發(fā)明的示例性分布式/復(fù)制數(shù)據(jù)庫。
[0082]本發(fā)明的一個(gè)主要方面涉及由在本發(fā)明的分布式網(wǎng)絡(luò)環(huán)境中運(yùn)行的路由器確定集群拓?fù)洹_@種確定可利用IETF(因特網(wǎng)工程任務(wù)組)進(jìn)行標(biāo)準(zhǔn)化的現(xiàn)有機(jī)制,例如包括但不限于“使用BGP(邊界網(wǎng)關(guān)協(xié)議)的服務(wù)通告,draft-keyupate-bgp-services-02”
[0083]本發(fā)明通過使用上述提及的機(jī)制,允許路由器設(shè)備使用BGP協(xié)議通告(S卩,發(fā)布)月艮務(wù)。因此,典型實(shí)施例中的本發(fā)明使用該機(jī)制來發(fā)布數(shù)據(jù)庫復(fù)制服務(wù)。上述提及的機(jī)制僅僅是與本發(fā)明的目標(biāo)一致的用于通告的示例性機(jī)制。
[0084]之后,最靠近“主DB節(jié)點(diǎn)”的邊緣路由器配置有數(shù)據(jù)庫復(fù)制信息。基于該配置,路由器使用BGP(或其他合適的機(jī)制)在整個(gè)分布式網(wǎng)絡(luò)上公告/發(fā)布該服務(wù)。
[0085]類似地,當(dāng)訂戶數(shù)據(jù)庫節(jié)點(diǎn)增至該集群時(shí),與該節(jié)點(diǎn)最靠近的邊緣路由器還配置為將該角色標(biāo)記為訂戶?;谠撆渲?,路由器訂閱主數(shù)據(jù)庫路由器。通過該機(jī)制路由器能夠了解底層的數(shù)據(jù)庫集群拓?fù)洹?br>[0086]本發(fā)明的另一方面涉及由路由器設(shè)備對復(fù)制流(例如在數(shù)據(jù)庫復(fù)制情況下需要對重做流進(jìn)行優(yōu)化)進(jìn)行優(yōu)化。
[0087]如本文檔的【背景技術(shù)】部分所提及的,多訂戶DB(數(shù)據(jù)庫)集群中存在大量冗余數(shù)據(jù)。為每個(gè)訂戶數(shù)據(jù)庫(DB)復(fù)制相同的數(shù)據(jù)。主數(shù)據(jù)庫(DB)節(jié)點(diǎn)的邊緣路由器通過在邊緣路由器(其附著的訂戶數(shù)據(jù)庫(DB)多于一個(gè))上開啟緩存來優(yōu)化這些相同的數(shù)據(jù)。隨后,對于相同數(shù)據(jù)的進(jìn)一步傳輸,使用緩存中的一個(gè)副本。本發(fā)明關(guān)注的焦點(diǎn)問題在于,通常在重做流中,由于網(wǎng)絡(luò)環(huán)境中存在訂戶,所以所有包需要重傳多次。主DB(數(shù)據(jù)庫)節(jié)點(diǎn)的邊緣路由器通過使用該機(jī)制不需要使用“滑動(dòng)窗口”緩存技術(shù)(類似拉賓指紋),但可以使用類似MD5的固定凈荷緩存。隨后,該指紋附著到凈荷,并在所有路由器上進(jìn)行同步。
[0088]本質(zhì)上,各種路由器-路由器鏈路上存在選擇性地、自動(dòng)開啟的緩存。
[0089]參照圖7,主DB節(jié)點(diǎn)(701)保存了數(shù)據(jù)庫的主副本。通過主DB路由器設(shè)備(702)可訪問主DB節(jié)點(diǎn)(701)。主DB路由器設(shè)備(702)具體配置有主DB信息。另外,主DB路由器設(shè)備(702)進(jìn)一步用于通過使用BGP通告發(fā)現(xiàn)DB集群拓?fù)洹?br>[0090]實(shí)際上,主DB路由器設(shè)備(702)首先緩存發(fā)送的REDO但是有利地發(fā)送第二REDO的指紋,從而節(jié)省珍貴的網(wǎng)絡(luò)資源,
[0091]進(jìn)一步地,訂戶DB路由器(703)和(707)配置有訂戶DB信息。訂戶DB路由器(703)和(707)訂閱主DB路由器服務(wù)。
[0092]圖8示出了基于緩存和拓?fù)涓兄淖顑?yōu)路由方法。
[0093]本發(fā)明的該方面涉及不同拓?fù)涞穆酚筛拍睢?