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

利用準(zhǔn)確匹配的一致性哈希在硬件負(fù)載平衡的應(yīng)用

文檔序號(hào):10694499閱讀:334來(lái)源:國(guó)知局
利用準(zhǔn)確匹配的一致性哈希在硬件負(fù)載平衡的應(yīng)用
【專利摘要】本公開(kāi)的方面和實(shí)施方式被定向到用于存儲(chǔ)地址表的網(wǎng)絡(luò)設(shè)備130。每個(gè)地址表?xiàng)l目被指派給相應(yīng)的所配備的索引值以及分布式服務(wù)的實(shí)例。所述設(shè)備被配置為通過(guò)以下步驟將新的服務(wù)實(shí)例添加到地址表:獲取可指派的索引值,用于新的服務(wù)實(shí)例;識(shí)別所指派的索引值,所指派的索引值是所獲取的索引值的陪伴索引值;將與陪伴索引值相關(guān)聯(lián)的分組源地址集合分為第一地址子集和第二地址子集;以及將第一地址子集指派給地址表中與指派的陪伴索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,并將第二地址子集指派給地址表中與所獲取的索引值以及新添加的服務(wù)實(shí)例相關(guān)聯(lián)的條目。將數(shù)據(jù)分組從客戶端路由到特定主機(jī),用于基于傳入分組的特性(例如,源地址)以及基于負(fù)載平衡規(guī)則所選擇的分布式服務(wù)的實(shí)例。網(wǎng)絡(luò)控制器將每個(gè)服務(wù)實(shí)例當(dāng)做具有陪伴實(shí)例。在添加新的服務(wù)實(shí)例時(shí),網(wǎng)絡(luò)控制器識(shí)別用于新的服務(wù)實(shí)例的陪伴實(shí)例,并將指派給陪伴實(shí)例的地址集合分為兩個(gè)集合,一個(gè)用于先前存在的陪伴實(shí)例,另一個(gè)用于新的服務(wù)實(shí)例。在移除服務(wù)實(shí)例時(shí),網(wǎng)絡(luò)控制器將用于被移除的服務(wù)實(shí)例的地址重新指派回到陪伴實(shí)例。在一些情況下,將對(duì)等服務(wù)實(shí)例陪伴之間的配對(duì)重新分布,從而使得在需要時(shí),每個(gè)服務(wù)實(shí)例都具有陪伴實(shí)例。
【專利說(shuō)明】利用準(zhǔn)確匹配的一致性哈希在硬件負(fù)載平衡的應(yīng)用
[0001] 相關(guān)申請(qǐng)
[0002] 本申請(qǐng)要求2014年 1 月31 日提交的名為"CONSISTENT HASHING USING EXACT MATCHING mH APPLICATION TO HA畑WARE LOAD BALANCIN護(hù)的美國(guó)專利申請(qǐng)序列號(hào) 14/ 169,776的優(yōu)先權(quán)及其權(quán)益,其全部?jī)?nèi)容基于所有目的通過(guò)引用合并于此。
【背景技術(shù)】
[0003] 通過(guò)計(jì)算服務(wù)的多個(gè)實(shí)例,可將分布式計(jì)算服務(wù)提供給客戶端設(shè)備。通常,客戶端 設(shè)備可W與運(yùn)些實(shí)例中的任何一個(gè)交互,W訪問(wèn)分布式計(jì)算服務(wù)。可通過(guò)多個(gè)計(jì)算設(shè)備和/ 或虛擬服務(wù)器來(lái)托管計(jì)算服務(wù)的實(shí)例。負(fù)載平衡器將客戶端請(qǐng)求跨多個(gè)實(shí)例分布,從而避 免多個(gè)計(jì)算設(shè)備和/或虛擬服務(wù)器變得負(fù)擔(dān)過(guò)重。
[0004] 網(wǎng)絡(luò)設(shè)備一般基于與數(shù)據(jù)分組相關(guān)聯(lián)的地址信息來(lái)處理數(shù)據(jù)分組。例如,路由器 通?;谂c數(shù)據(jù)分組相關(guān)聯(lián)的地址(例如,用于所接收的數(shù)據(jù)分組的報(bào)頭信息中所指示的 目的地地址)將所接收的數(shù)據(jù)分組轉(zhuǎn)發(fā)給下一個(gè)網(wǎng)絡(luò)目的地Γ下一跳")。

【發(fā)明內(nèi)容】

[0005] 在一個(gè)方面中,本公開(kāi)設(shè)及一種保持用于由多個(gè)服務(wù)實(shí)例所提供的分布式服務(wù)的 路由信息的方法。所述方法包括提供地址表,所述地址表具有少于或等于所配備的索引值 的集合中索引值的數(shù)目的條目的數(shù)目,每個(gè)條目被指派給相應(yīng)的所配備的索引值W及分布 式服務(wù)的實(shí)例。所述方法包括通過(guò)W下步驟將新的服務(wù)實(shí)例添加到地址表:獲取可指派的 索引值,W指派給新的服務(wù)實(shí)例;識(shí)別所指派的索引值,所指派的索引值是所獲取的索引值 的陪伴索引值;將與陪伴索引值相關(guān)聯(lián)的分組源地址集合分為第一地址子集和第二地址子 集;W及將第一地址子集指派給地址表中與所指派的陪伴索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目, 并將第二地址子集指派給地址表中與所獲取的索引值W及新添加的服務(wù)實(shí)例相關(guān)聯(lián)的條 目。所述方法包括通過(guò)執(zhí)行W下操作獲取可指派的索引值,W指派給新的服務(wù)實(shí)例:在所配 備的索引值的集合中識(shí)別存在的、未指派的索引值;W及在沒(méi)有未指派的索引值可用時(shí),在 所配備的索引值的集合中增加索引值的數(shù)目并選擇新配備的索引值。在一些實(shí)施方式中, 所述方法包括通過(guò)W下步驟從地址表移除服務(wù)實(shí)例:識(shí)別第Ξ地址子集,第Ξ地址子集被 指派給地址表中與第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,用于要被移除的服務(wù)實(shí)例;識(shí)別第 四地址子集,第四地址子集被指派給地址表中與第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,第二 索引值是第一索引值的陪伴索引值;將組合地址子集指派給地址表中與第二索引值相關(guān)聯(lián) 的服務(wù)實(shí)例條目,組合地址子集包括第Ξ地址子集和第四地址子集;W及從表中清除與第 一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目。
[0006] 在一個(gè)方面中,本公開(kāi)設(shè)及一種網(wǎng)絡(luò)設(shè)備控制器。所述網(wǎng)絡(luò)設(shè)備控制器包括存儲(chǔ) 器,所述存儲(chǔ)器存儲(chǔ)地址表,其中所述地址表具有少于或等于所配備的索引值的集合中索 引值的數(shù)目的條目的數(shù)目。每個(gè)條目被指派給相應(yīng)的所配備的索引值W及分布式服務(wù)的實(shí) 例。所述網(wǎng)絡(luò)設(shè)備控制器包括至少一個(gè)處理器,所述處理器被配置為通過(guò)執(zhí)行W下操作將 新的服務(wù)實(shí)例添加到地址表:獲取可指派的索引值,w指派給新的服務(wù)實(shí)例;識(shí)別所指派的 索引值,所指派的索引值是所獲取的索引值的陪伴索引值;將與陪伴索引值相關(guān)聯(lián)的分組 源地址集合分為第一地址子集和第二地址子集;W及將第一地址子集指派給地址表中與指 派的陪伴索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,并將第二地址子集指派給地址表中與所獲取的索 引值W及新添加的服務(wù)實(shí)例相關(guān)聯(lián)的條目。至少一個(gè)處理器被配置為通過(guò)執(zhí)行W下操作獲 取可指派的索引值,W指派給新的服務(wù)實(shí)例:在所配備的索引值的集合中識(shí)別存在的、未指 派的索引值;W及在沒(méi)有未指派的索引值可用時(shí),在所配備的索引值的集合中增加索引值 的數(shù)目并選擇新配備的索引值。在一些實(shí)施方式中,至少一個(gè)處理器被配置為通過(guò)執(zhí)行W 下操作從地址表移除服務(wù)實(shí)例:識(shí)別第Ξ地址子集,第Ξ地址子集被指派給地址表中與第 一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,用于要被移除的服務(wù)實(shí)例;識(shí)別第四地址子集,第四地址 子集被指派給地址表中與第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,第二索引值是第一索引值的 陪伴索引值;將組合地址子集指派給地址表中與第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,組合 地址子集包括第Ξ地址子集和第四地址子集;W及從表中清除與第一索引值相關(guān)聯(lián)的服務(wù) 實(shí)例條目。
[0007] 在一個(gè)方面中,本公開(kāi)設(shè)及一種用于存儲(chǔ)非暫時(shí)性處理器可執(zhí)行指令的有形計(jì)算 機(jī)可讀存儲(chǔ)介質(zhì),所述指令在由包括存儲(chǔ)介質(zhì)W及一個(gè)或多個(gè)處理器的計(jì)算設(shè)備執(zhí)行時(shí), 使得一個(gè)或多個(gè)處理器執(zhí)行操作,所述操作包括:在計(jì)算機(jī)可讀存儲(chǔ)器中存儲(chǔ)地址表,所述 地址表具有少于或等于所配備的索引值的集合中索引值的數(shù)目的條目的數(shù)目,每個(gè)條目被 指派給相應(yīng)的所配備的索引值W及分布式服務(wù)的實(shí)例。所述指令使得一個(gè)或多個(gè)處理器通 過(guò)W下操作將新的服務(wù)實(shí)例添加到地址表:獲取可指派的索引值,W指派給新的服務(wù)實(shí)例; 識(shí)別所指派的索引值,所指派的索引值是所獲取的索引值的陪伴索引值;將與陪伴索引值 相關(guān)聯(lián)的分組源地址集合分為第一地址子集和第二地址子集;W及將第一地址子集指派給 地址表中與所指派的陪伴索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,并將第二地址子集指派給地址表 中與所獲取的索引值W及新添加的服務(wù)實(shí)例相關(guān)聯(lián)的條目。所述指令使得一個(gè)或多個(gè)處理 器通過(guò)執(zhí)行W下操作獲取可指派的索引值,W指派給新的服務(wù)實(shí)例:在所配備的索引值的 集合中識(shí)別存在的、未指派的索引值;W及在沒(méi)有未指派的索引值可用時(shí),在所配備的索引 值的集合中增加索引值的數(shù)目并選擇新配備的索引值。在一些實(shí)施方式中,所述指令使得 一個(gè)或多個(gè)處理器通過(guò)W下操作從地址表移除服務(wù)實(shí)例:識(shí)別第Ξ地址子集,第Ξ地址子 集被指派給地址表中與第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,用于要被移除的服務(wù)實(shí)例;識(shí) 別第四地址子集,第四地址子集被指派給地址表中與第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目, 第二索引值是第一索引值的陪伴索引值;將組合地址子集指派給地址表中與第二索引值相 關(guān)聯(lián)的服務(wù)實(shí)例條目,組合地址子集包括第Ξ地址子集和第四地址子集;W及從表中清除 與第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目。
【附圖說(shuō)明】
[0008] 通過(guò)結(jié)合附圖參照W下詳細(xì)描述,能夠更好地理解本公開(kāi)的上述和相關(guān)目的、特 征和優(yōu)點(diǎn),在附圖中:
[0009] 圖1A是示例網(wǎng)絡(luò)設(shè)備的框圖;
[0010] 圖1B是將用于分布式服務(wù)的多個(gè)主機(jī)連接到更廣泛的數(shù)據(jù)網(wǎng)絡(luò)示例網(wǎng)絡(luò)設(shè)備的 框圖設(shè)備;
[oow 圖視示例索引配對(duì)的框圖;
[0012]圖3是圖示出將地址集映射至觀務(wù)實(shí)例的示例表的圖;
[0013]圖4A是將服務(wù)實(shí)例添加到地址表中的示例方法的流程圖;
[0014] 圖4B和圖4C是圖示出將新的服務(wù)實(shí)例添加到表的示例的圖;
[0015] 圖5A是從地址表移除服務(wù)實(shí)例的示例方法的流程圖;
[0016] 圖5B是圖示出從表移除服務(wù)實(shí)例的示例的圖;W及
[0017] 圖6是根據(jù)示意性實(shí)施方式的計(jì)算系統(tǒng)的框圖。
[0018] 在不同附圖中相同的附圖標(biāo)記和指定表示相同的元件。
【具體實(shí)施方式】
[0019] 本公開(kāi)的方面和實(shí)施方式一般設(shè)及負(fù)載平衡。一般而言,可通過(guò)將不同的請(qǐng)求路 由給服務(wù)的不同實(shí)例,將對(duì)于分布式服務(wù)的請(qǐng)求負(fù)載平衡??蒞在不同的物理服務(wù)器主機(jī) 或虛擬服務(wù)器主機(jī)上托管不同的實(shí)例。網(wǎng)絡(luò)路徑中的網(wǎng)絡(luò)設(shè)備(諸如交換機(jī)或路由器)確定 應(yīng)當(dāng)向其轉(zhuǎn)發(fā)特定請(qǐng)求的服務(wù)實(shí)例。網(wǎng)絡(luò)設(shè)備可W實(shí)現(xiàn)應(yīng)用于每個(gè)傳入分組的負(fù)載平衡規(guī) 則的集合。在一些實(shí)施方式中,進(jìn)行負(fù)載平衡的所有業(yè)務(wù)都到達(dá)發(fā)往相同目的地地址(例 如,用于分布式服務(wù)的虛擬地址)的網(wǎng)絡(luò)設(shè)備。除了負(fù)載平衡規(guī)則基于可充當(dāng)一致性標(biāo)識(shí)符 的傳入分組的特性(例如,源地址)來(lái)路由業(yè)務(wù)之外,負(fù)載平衡規(guī)則還可W按照與基于目的 地的路由表類似的方式被實(shí)現(xiàn)。在一些實(shí)施方式中,負(fù)載平衡規(guī)則將來(lái)自客戶端的數(shù)據(jù)分 組路由到特定主機(jī),用于基于客戶端的32位IPv4網(wǎng)絡(luò)地址的最后幾個(gè)比特(最不重要的比 特)所選擇的分布式服務(wù)的實(shí)例??蒞選擇負(fù)載平衡規(guī)則,從而添加新的服務(wù)實(shí)例,并移除 對(duì)現(xiàn)有路由和路由表影響最小的服務(wù)實(shí)例。
[0020] 圖1A是示例網(wǎng)絡(luò)設(shè)備130的框圖。圖1B是示例網(wǎng)絡(luò)設(shè)備130的框圖,所述網(wǎng)絡(luò)設(shè)備 130將用于分布式服務(wù)的多個(gè)主機(jī)150a-150n連接到更廣泛的數(shù)據(jù)網(wǎng)絡(luò)110。泛泛而言,所示 網(wǎng)絡(luò)設(shè)備130包括控制模塊144和轉(zhuǎn)發(fā)引擎134??刂颇K將上述規(guī)則保持在存儲(chǔ)器136中, 用于在在處理數(shù)據(jù)分組時(shí)由轉(zhuǎn)發(fā)引擎134使用。網(wǎng)絡(luò)設(shè)備130包括多個(gè)網(wǎng)絡(luò)接口 138,所述網(wǎng) 絡(luò)接口 138中的一個(gè)或多個(gè)被鏈接到數(shù)據(jù)網(wǎng)絡(luò)110的各種子集112a-l 12n中的其他網(wǎng)絡(luò)設(shè)備 和/或主機(jī)150a-150n。
[0021] 更詳細(xì)而言,網(wǎng)絡(luò)設(shè)備130通過(guò)經(jīng)由網(wǎng)絡(luò)接口 138來(lái)接收和發(fā)送數(shù)據(jù)分組,來(lái)參與 數(shù)據(jù)網(wǎng)絡(luò)110。例如,可經(jīng)由數(shù)據(jù)平面將每個(gè)網(wǎng)絡(luò)接口 138連接到其他網(wǎng)絡(luò)設(shè)備。在一些實(shí)施 方式中,連接是雙向數(shù)據(jù)鏈接。在一些實(shí)施方式中,連接是單向數(shù)據(jù)鏈接,其中每個(gè)鏈接是 入口或出口。其他網(wǎng)絡(luò)設(shè)備將數(shù)據(jù)分組發(fā)送給網(wǎng)絡(luò)設(shè)備130,然后所述網(wǎng)絡(luò)設(shè)備130根據(jù)其 配置(例如,存儲(chǔ)器136中所存儲(chǔ)的規(guī)則或路由信息)將它們轉(zhuǎn)發(fā)給另一個(gè)網(wǎng)絡(luò)設(shè)備。例如, 數(shù)據(jù)分組可經(jīng)由第一接口(例如,網(wǎng)絡(luò)接口 138a巧Ij達(dá)網(wǎng)絡(luò)設(shè)備130處,導(dǎo)致網(wǎng)絡(luò)設(shè)備130處 理所接收的數(shù)據(jù)分組并(例如)經(jīng)由第二接口(例如,網(wǎng)絡(luò)接口238b)將其轉(zhuǎn)發(fā)給適當(dāng)?shù)南乱?固L轉(zhuǎn)發(fā)引擎134確定使用哪個(gè)網(wǎng)絡(luò)接口 138來(lái)轉(zhuǎn)發(fā)所接收的每個(gè)數(shù)據(jù)分組。
[0022] 數(shù)據(jù)網(wǎng)絡(luò)110是促進(jìn)計(jì)算設(shè)備之間交互的網(wǎng)絡(luò)。說(shuō)明性的示例數(shù)據(jù)網(wǎng)絡(luò)110是互聯(lián) 網(wǎng);但是可W使用其他網(wǎng)絡(luò)。數(shù)據(jù)網(wǎng)絡(luò)110可由多個(gè)相連的子網(wǎng)絡(luò)112a-ll化組成。數(shù)據(jù)網(wǎng)絡(luò) 110可W是局域網(wǎng)(LAN)(諸如公司內(nèi)聯(lián)網(wǎng))、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、網(wǎng)間網(wǎng)絡(luò)(諸如互 聯(lián)網(wǎng))、或者對(duì)等網(wǎng)絡(luò)(例如,自組織WiFi對(duì)等網(wǎng)絡(luò))。數(shù)據(jù)網(wǎng)絡(luò)110可W是任何類型和/或形 式的數(shù)據(jù)網(wǎng)絡(luò)和/或通信網(wǎng)絡(luò)。數(shù)據(jù)網(wǎng)絡(luò)110可W是公共網(wǎng)絡(luò)、專用網(wǎng)絡(luò)、或者公共網(wǎng)絡(luò)與專 用網(wǎng)絡(luò)的組合。一般而言,數(shù)據(jù)網(wǎng)絡(luò)110用于在計(jì)算設(shè)備之間傳達(dá)信息,并且網(wǎng)絡(luò)設(shè)備130根 據(jù)其配置促進(jìn)運(yùn)種通信。
[0023] 網(wǎng)絡(luò)設(shè)備130包括控制模塊144和存儲(chǔ)器136,所述存儲(chǔ)器136存儲(chǔ)配置數(shù)據(jù)、規(guī)則、 和/或路由數(shù)據(jù)。在一些實(shí)施方式中,控制模塊144被實(shí)現(xiàn)為專用電路(例如,ASIC)。在一些 實(shí)施方式中,控制模塊144被實(shí)現(xiàn)為在計(jì)算機(jī)可訪問(wèn)存儲(chǔ)器中所存儲(chǔ)并由一個(gè)或多個(gè)計(jì)算 處理器所執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的集合。網(wǎng)絡(luò)設(shè)備控制模塊144接收配置和路由信息并 更新存儲(chǔ)器136中所存儲(chǔ)的配置和路由數(shù)據(jù)。在一些實(shí)施方式中,例如,控制模塊144使用 ICMP或BGP消息從網(wǎng)絡(luò)110中的其他網(wǎng)絡(luò)設(shè)備接收路由數(shù)據(jù)。在一些實(shí)施方式中,控制模塊 144使用所接收的路由數(shù)據(jù),創(chuàng)建和保持本文所述的數(shù)據(jù)結(jié)構(gòu)。在一些實(shí)施方式中,網(wǎng)絡(luò)設(shè) 備130參與軟件定義網(wǎng)絡(luò)("SDN"),并且網(wǎng)絡(luò)設(shè)備控制模塊144(例如,經(jīng)由控制平面)從SDN 控制器接收配置和路由信息。在一些運(yùn)樣的實(shí)施方式中,控制模塊144從SDN控制器接收本 文所述的負(fù)載平衡規(guī)則。一般而言,控制模塊144將運(yùn)些負(fù)載平衡規(guī)則存儲(chǔ)在存儲(chǔ)器136中。 轉(zhuǎn)發(fā)引擎134使用存儲(chǔ)器136中的配置和路由數(shù)據(jù)來(lái)管理網(wǎng)絡(luò)接口端口 138處的數(shù)據(jù)業(yè)務(wù)。
[0024] 網(wǎng)絡(luò)設(shè)備存儲(chǔ)器136可W是適合于存儲(chǔ)計(jì)算機(jī)可讀數(shù)據(jù)的任何設(shè)備。存儲(chǔ)器136可 W類似于圖6所示W(wǎng)及下文所述的存儲(chǔ)器670或緩存675。示例包括但不限于半導(dǎo)體存儲(chǔ)器 設(shè)備(諸如EPR0M、EEPR0M、SDRAM)W及閃速存儲(chǔ)器設(shè)備。網(wǎng)絡(luò)設(shè)備130可具有任意數(shù)目的存 儲(chǔ)器設(shè)備136。
[0025] 轉(zhuǎn)發(fā)引擎134使用存儲(chǔ)器136中所存儲(chǔ)的規(guī)則、配置、W及路由數(shù)據(jù)來(lái)管理在網(wǎng)絡(luò) 接口 138處所接收的數(shù)據(jù)業(yè)務(wù)。在一些實(shí)施方式中,轉(zhuǎn)發(fā)引擎134被實(shí)現(xiàn)為專用電路(例如, ASIC)。在一些實(shí)施方式中,轉(zhuǎn)發(fā)引擎134被實(shí)現(xiàn)為在計(jì)算機(jī)可訪問(wèn)存儲(chǔ)器中存儲(chǔ)并由一個(gè) 或多個(gè)計(jì)算處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的集合。轉(zhuǎn)發(fā)引擎134從數(shù)據(jù)分組提取地址信 息(例如,來(lái)自分組報(bào)頭的IP地址)并處理它,W確定怎樣使用本文所述負(fù)載平衡規(guī)則和方 法來(lái)處理數(shù)據(jù)分組(例如,是否轉(zhuǎn)發(fā)數(shù)據(jù)分組和/或使用哪個(gè)網(wǎng)絡(luò)接口 138來(lái)轉(zhuǎn)發(fā)數(shù)據(jù)分 組)。
[0026] 負(fù)載平衡規(guī)則基于可充當(dāng)一致性標(biāo)識(shí)符的傳入分組的特性(諸如源地址)來(lái)路由 業(yè)務(wù)。在一些實(shí)施方式中,負(fù)載平衡規(guī)則將來(lái)自客戶端的數(shù)據(jù)分組路由到特定主機(jī),用于基 于客戶端的32位IPv4網(wǎng)絡(luò)地址的最后幾個(gè)比特(最不重要的比特)所選擇的分布式服務(wù)的 實(shí)例。在一些實(shí)施方式中,負(fù)載平衡規(guī)則將來(lái)自客戶端的數(shù)據(jù)分組路由到特定主機(jī),用于基 于由多個(gè)值(例如,源地址和TCP源端口)組成的標(biāo)識(shí)符所選擇的分布式服務(wù)的實(shí)例。在一些 實(shí)施方式中,將地址(或標(biāo)識(shí)符)的集合指派給分布式服務(wù)的各種實(shí)例。一般而言,每個(gè)集合 的大?。疵總€(gè)集合中地址的數(shù)目)與任何其他集合的大小基本上相同。在一些實(shí)施方式 中,地址的每個(gè)集合是第一大小或者是第二大小,所述第二大小是第一大小的一半。在添加 新的服務(wù)實(shí)例時(shí),將是第一大小的集合分解,從而向新的服務(wù)實(shí)例指派是第一大小一半的 地址的集合。
[0027] 為了實(shí)現(xiàn)運(yùn)種分布,網(wǎng)絡(luò)控制器將每個(gè)服務(wù)實(shí)例當(dāng)做具有陪伴實(shí)例。在添加新的 服務(wù)實(shí)例時(shí),網(wǎng)絡(luò)控制器識(shí)別用于新的服務(wù)實(shí)例的陪伴實(shí)例,并將指派給陪伴實(shí)例的地址 集合分為兩個(gè)集合,一個(gè)用于先前存在的陪伴實(shí)例,并且另一個(gè)用于新的服務(wù)實(shí)例。在移除 服務(wù)實(shí)例時(shí),網(wǎng)絡(luò)控制器將用于被移除的服務(wù)實(shí)例的地址重新指派回到陪伴實(shí)例。在一些 情況下,將對(duì)等服務(wù)實(shí)例陪伴之間的配對(duì)重新分布,從而使得在需要時(shí),每個(gè)服務(wù)實(shí)例都具 有陪伴實(shí)例。
[0028] 每個(gè)服務(wù)實(shí)例都指派了在陪伴實(shí)例的識(shí)別時(shí)所使用的索引或者與陪伴實(shí)例的識(shí) 別時(shí)所使用的索引相關(guān)聯(lián)。一般而言,每個(gè)索引值基于服務(wù)實(shí)例的總數(shù)目與陪伴索引配對(duì)。 在一些實(shí)施方式中,配對(duì)是基于服務(wù)實(shí)例的數(shù)目k并且2的最大幕小于服務(wù)實(shí)例的數(shù)目(即, 用P表示2的幕的指數(shù),2P<k《2P+i),其中k是在添加服務(wù)實(shí)例之后或者在移除服務(wù)實(shí)例之 前服務(wù)實(shí)例的數(shù)目。在一些實(shí)施方式中,用精確的數(shù)學(xué)術(shù)語(yǔ),對(duì)于服務(wù)實(shí)例的數(shù)目k,將索引 r(從0開(kāi)始)的每個(gè)服務(wù)實(shí)例與索引C的陪伴服務(wù)示例配對(duì),其中:
[0029] 只:::;I. /(巧?哀4 J
[0030] c = r+2Pmodulo2P+i
[0031 ]圖2是示例索引配對(duì)的圖。所示為陪伴映射的3個(gè)集合:用于兩個(gè)配對(duì)中四個(gè)實(shí)例 的集合的第一映射220、用于四個(gè)配對(duì)中八個(gè)實(shí)例的集合的第二映射230、W及用于八個(gè)配 對(duì)中十六個(gè)實(shí)例的集合的第Ξ映射240。運(yùn)些映射(220、230和240)是使用W上公式所計(jì)算 的配對(duì)的可見(jiàn)示例。例如,對(duì)于立個(gè)到四個(gè)服務(wù)實(shí)例的范圍,編號(hào)0到3,第一映射220將0與2 配對(duì)并且將1與3配對(duì)。但是,如果添加第五實(shí)例(編號(hào)為4),則超過(guò)Ξ個(gè)到四個(gè)服務(wù)實(shí)例的 范圍,并且將所述Ξ個(gè)到四個(gè)服務(wù)實(shí)例的范圍擴(kuò)展,例如擴(kuò)展到五個(gè)到八個(gè)服務(wù)實(shí)例的范 圍。第二映射230圖示出新添加的實(shí)例4將被與0配對(duì),其中,在第一映射220中0已經(jīng)與2配 對(duì)??蒞添加附加服務(wù)實(shí)例,直到達(dá)到八個(gè)實(shí)例的新闊值。索引號(hào)5被與1配對(duì),索弓16被與2 配對(duì),而索引7(與第八服務(wù)實(shí)例相對(duì)應(yīng))被與3配對(duì)。如果添加第九實(shí)例(編號(hào)為8),則超過(guò) 五個(gè)到八個(gè)服務(wù)實(shí)例的范圍,并且將所述五個(gè)到八個(gè)服務(wù)實(shí)例的范圍擴(kuò)展,例如擴(kuò)展到九 個(gè)到十六個(gè)服務(wù)實(shí)例的范圍。第Ξ映射240圖示出新添加的實(shí)例8將被與0配對(duì),其中,在第 一映射220中0已經(jīng)與2配對(duì),并且在第二映射230中0已經(jīng)與4配對(duì)。
[0032] 圖3是圖示出將地址集映射到服務(wù)實(shí)例的示例地址表360的圖。泛泛而言,地址表 360將地址的屯個(gè)集合映射到服務(wù)實(shí)例。表360被圖示為具有示例數(shù)據(jù)的行,其中每個(gè)行是 用于服務(wù)實(shí)例的示例規(guī)則,并具有Ξ個(gè)列:索引、結(jié)束比特、W及結(jié)果。"索引"與上面介紹的 索引號(hào)相對(duì)應(yīng),所述索引號(hào)從0開(kāi)始。"結(jié)果"是指定怎樣處理滿足規(guī)則的分組的值,例如,用 于將分組轉(zhuǎn)發(fā)給服務(wù)實(shí)例的服務(wù)實(shí)例標(biāo)識(shí)符或者網(wǎng)絡(luò)接口標(biāo)識(shí)符。"結(jié)束比特"值是二進(jìn)制 數(shù);如果地址W與規(guī)則結(jié)束比特值相同的比特結(jié)束,則地址與規(guī)則匹配。比特中的V'指示 可W是1,也可W是0的比特,即,"無(wú)關(guān)"比特。例如,行362具有結(jié)束比特值為"χ?Γ,所述 "χ?Γ指示最后的兩個(gè)比特等于"1Γ的任何地址都將匹配。在表360中沒(méi)有其他規(guī)則具有W 11結(jié)束的結(jié)束比特值。
[0033] 如圖3所示,地址表360包括用于八個(gè)潛在的索引值/地址集合配對(duì)的條目。運(yùn)八個(gè) 索引值可W被視為在表"所配備的"。八個(gè)條目中的屯個(gè)被填充,將地址集合指派給相應(yīng)的 索引值。與索引值7相關(guān)聯(lián)的一個(gè)條目沒(méi)有被指派給任何地址集合,并且因此可用于指派。 雖然表可包括索引值大于7的附加條目,但是運(yùn)些條目沒(méi)有被視為可指派的(并且因此未示 出),假定需要有限數(shù)目的條目來(lái)處理服務(wù)實(shí)例的活躍數(shù)目。當(dāng)活躍實(shí)例的數(shù)目超過(guò)闊值 (通常是等于2的幕的數(shù))之后,配備附加條目W及它們相應(yīng)的索引值,并且因此使得它們可 用于指派。
[0034] 在一些實(shí)施方式中,可W只通過(guò)地址最不重要的比特的值來(lái)定義每個(gè)地址集合。 運(yùn)些比特的值被視為固有地充當(dāng)用于地址集合的索引值。例如,最后四個(gè)重要比特為0101 (即5)的所有地址都被視為固有地成為與索引號(hào)5相關(guān)聯(lián)的地址組的一部分。類似地,最后 四個(gè)重要比特為0001的地址固有地與索引號(hào)1相關(guān)聯(lián)。在運(yùn)樣的實(shí)施方式中,沒(méi)有明確的地 址分組分配是必要的,相反,僅僅依賴于地址本身的結(jié)構(gòu)。用于定義運(yùn)些固有地址集合的比 特的數(shù)目取決于在其間分解地址的服務(wù)實(shí)例的數(shù)目。
[0035] 在一些實(shí)施方式中,通過(guò)CIDR標(biāo)記中的網(wǎng)絡(luò)地址掩碼來(lái)定義每個(gè)分組,并通過(guò)添 加在兩個(gè)地址掩碼之間被選擇為中間值(例如,平均值)的地址掩碼來(lái)分解分組??蒞采用 任何方法來(lái)描述與每個(gè)服務(wù)實(shí)例相關(guān)聯(lián)的地址的集合W及將地址的集合分為更小的子集。
[0036] 圖4A是將服務(wù)實(shí)例添加到地址表中的示例方法的流程圖。泛泛而言,方法400始于 網(wǎng)絡(luò)設(shè)備獲取可指派的索引值,W指派給新的服務(wù)實(shí)例(階段410)。然后網(wǎng)絡(luò)設(shè)備識(shí)別所指 派的索引值(階段420),所指派的索引值是所獲取的索引值的陪伴索引值,并將與陪伴索引 值相關(guān)聯(lián)的分組源地址集合分為第一地址子集和第二地址子集(階段430)。網(wǎng)絡(luò)設(shè)備將第 一地址子集指派給地址表中與所指派的陪伴索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目(階段440),并 將第二地址子集指派給地址表中與所獲取的索引值W及新添加的服務(wù)實(shí)例相關(guān)聯(lián)的條目 (階段450)。
[0037] 更詳細(xì)而言,方法400始于網(wǎng)絡(luò)設(shè)備(例如,圖1A所圖示的網(wǎng)絡(luò)設(shè)備130)獲取可指 派的索引值,W指派給新的服務(wù)實(shí)例(階段410)。網(wǎng)絡(luò)設(shè)備通過(guò)在所配備的索引值的集合中 識(shí)別存在的、未指派的索引值來(lái)獲取可指派的索引值。如果索引值已經(jīng)被指派或者可用于 指派,就將所述索引值成為所配備的。如果在所配備的索引值的集合中沒(méi)有存在的、未指派 的索引值,則網(wǎng)絡(luò)設(shè)備增加在所配備的索引值的集合中索引值的數(shù)目,并選擇新配備的索 引值。在一些實(shí)施方式中,網(wǎng)絡(luò)設(shè)備通過(guò)將所配備的索引值的數(shù)目增加一倍并基于所配備 的索引值的新數(shù)目重新確定服務(wù)實(shí)例陪伴之間的配對(duì),來(lái)增加索引值的數(shù)目。
[0038] 然后,網(wǎng)絡(luò)設(shè)備識(shí)別所指派的索引值(階段420),所指派的索引值是所獲取的索引 值的陪伴索引值。如上所述,在一些實(shí)施方式中,用于給定索引值的陪伴索引值是給定索引 值的函數(shù)。也就是說(shuō),陪伴索引值C被確定為:c = ^2Pmodulo2P+i,其中r是給定索引值,P是 小于或等于所使用的最高索引值的2的最大幕的指數(shù)(也就是說(shuō),辟=j,其中k是 服務(wù)實(shí)例的總數(shù)且索引值從零開(kāi)始)。
[0039] 網(wǎng)絡(luò)設(shè)備將與陪伴索引值相關(guān)聯(lián)的分組源地址集合劃分為第一地址子集和第二 地址子集(階段430)。在一些實(shí)施方式中,劃分是相等的,因此第一地址子集和第二地址子 集大小相同。如上所述,可將地址分組為共享結(jié)束比特的公共集合并且與地址中任何較高 位比特的值"無(wú)關(guān)"的子集(可將運(yùn)些"無(wú)關(guān)"比特表示為V'比特)。通過(guò)將在特別定義的結(jié) 束比特(即,并非X比特)的集合中的比特的數(shù)目加一,可將運(yùn)種分組有效地一分為二。由于 二進(jìn)制數(shù)系統(tǒng)的性質(zhì),在前一個(gè)分組中用于地址的一半的運(yùn)個(gè)比特的值是0,而用于另一半 的值是1。因此,可W通過(guò)將結(jié)束比特中最低位的X比特轉(zhuǎn)換為0或1,并將對(duì)應(yīng)的新條目添加 到將運(yùn)個(gè)比特設(shè)置為0或1的表中,來(lái)分解地址的集合。例如,通過(guò)結(jié)束比特xxOOl所定義的 地址的集合可W被平均分解為結(jié)束比特為χΟΟΟ 1和xl 001的兩個(gè)分組。
[0040] 然后,網(wǎng)絡(luò)設(shè)備將第一地址子集指派給地址表中與所指派的陪伴索引值相關(guān)聯(lián)的 服務(wù)實(shí)例條目(階段440),并將第二地址子集指派給地址表中與所獲取的索引值W及新添 加的服務(wù)實(shí)例相關(guān)聯(lián)的條目(階段450)。在一些實(shí)施方式中,在某些情況下可W限制對(duì)地址 表的修改,W在階段440處只修改地址表中的條目,并且在階段450處只添加新條目。運(yùn)樣實(shí) 現(xiàn)了影響小的改變。
[0041] 圖4B和圖4C是圖示出將新的服務(wù)實(shí)例添加到將地址的集合映射到服務(wù)實(shí)例的表 的示例的圖。泛泛而言,在圖4B中,在圖3中首先被圖示出的地址表360被修改為變成將八個(gè) 地址集合映射到服務(wù)實(shí)例的地址表370。同樣,在圖4C中,將八個(gè)地址集合映射到服務(wù)實(shí)例 的地址表370被修改為變成將九個(gè)地址集合映射到服務(wù)實(shí)例的地址表380。圖4B圖示出其中 存在可用的可指派的索引的情況。圖4C示出其中沒(méi)有可用的可指派的索引的場(chǎng)景。
[0042] 在圖4B中,將屯個(gè)地址集合映射到服務(wù)實(shí)例的地址表360被修改為變成將八個(gè)地 址集合映射到服務(wù)實(shí)例的地址表370。更詳細(xì)而言,添加服務(wù)實(shí)例(例如,使用上面參照 圖4A所述的方法)。新的服務(wù)實(shí)例被指派W索引7,所述索引7具有陪伴索引3。用于索引3的 條目462是用于最后兩個(gè)比特等于"1Γ的地址的規(guī)則。表360被修改為變成具有新規(guī)則的表 370,其中用于索引3的條目474是用于最后Ξ個(gè)比特等于"01Γ的地址的規(guī)則,且用于索引7 的條目476是用于最后Ξ個(gè)比特等于"11Γ的地址的規(guī)則。
[0043] 在一些實(shí)施方式中,當(dāng)配備新的索引時(shí),所配備的索引值的數(shù)目使得所配備的索 引值的總數(shù)目達(dá)到2的下一個(gè)最高幕。因此,當(dāng)配備第五個(gè)索引時(shí)(超過(guò)22),配備附加的四 個(gè)索引值,W使得所配備的索引值的總數(shù)目達(dá)到8,即23。當(dāng)需要第九個(gè)索引值時(shí),配備八個(gè) 附加的索引值,W使得總數(shù)目達(dá)到16,即24,等等。在運(yùn)種情況下,添加第八個(gè)服務(wù)實(shí)例不要 求所配備的索引值的總數(shù)目超過(guò)2的幕,并且因此不需要或者不配備新的索引值。
[0044] 在圖4C中,將八個(gè)地址集合映射到服務(wù)實(shí)例的地址表370被修改為變成將九個(gè)地 址集合映射到服務(wù)實(shí)例的地址表380。更詳細(xì)而言,添加服務(wù)實(shí)例(例如,使用上面參照 圖4A所述的方法)。新的服務(wù)實(shí)例被指派W索引8,所述索弓18具有陪伴索引0。用于索弓10的 條目472是用于最后Ξ個(gè)比特等于"000"的地址的規(guī)則。表370被修改為變成具有新規(guī)則的 表380,其中用于索引0的條目484是用于最后四個(gè)比特等于"0000"的地址的規(guī)則,且用于索 弓18的條目486是用于最后四個(gè)比特等于"1000"的地址的規(guī)則。如上所述,在一些實(shí)施方式 中,在任何給定時(shí)間所配備的索引的數(shù)目都等于2的幕。因此,添加第九個(gè)服務(wù)實(shí)例(9比23大1)要求配備附加的索引值。當(dāng)配備第九個(gè)索引值時(shí),已配備了附加的屯個(gè)索引值,使得所 配備的索引值的總數(shù)目達(dá)到16。
[0045] 如果移除服務(wù)實(shí)例,例如,使用下面參照?qǐng)D5所述的方法,則將地址表更新,W將用 于所移除的服務(wù)實(shí)例與其陪伴實(shí)例的地址集合重新組合。如果所移除的服務(wù)實(shí)例沒(méi)有陪伴 實(shí)例(例如,表380中索引3處的"護(hù),如圖3B所示),則表可能需要重建。否則,只需要更新用 于所移除的服務(wù)實(shí)例及其陪伴的規(guī)則。因此,需要因?yàn)橥負(fù)渥兓薷牡臈l目的數(shù)目是最 小的。
[0046] 圖5A是從表移除服務(wù)實(shí)例的示例方法的流程圖。泛泛而言,方法500始于對(duì)于要被 移除的服務(wù)實(shí)例,網(wǎng)絡(luò)設(shè)備識(shí)別被指派給地址表中與第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目的 第一地址子集(階段510)。網(wǎng)絡(luò)設(shè)備識(shí)別被指派給地址表中與第二索引值(是第一索引值的 陪伴索引值)相關(guān)聯(lián)的服務(wù)實(shí)例條目的第二地址子集(階段520),并將組合地址子集指派給 地址表中與第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目(階段530)。然后網(wǎng)絡(luò)設(shè)備從表中清除與第 一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目(階段540)。
[0047] 更詳細(xì)而言,方法500始于網(wǎng)絡(luò)設(shè)備識(shí)別被指派給地址表中與第一索引值相關(guān)聯(lián) 的服務(wù)實(shí)例條目的第一地址子集,用于要被移除的服務(wù)實(shí)例(階段510)。例如,可W在服務(wù) 失效、主機(jī)失效、或通信鏈接失效的情況下移除服務(wù)實(shí)例。如果沒(méi)有充分使用分布式服務(wù), 就可W關(guān)閉一個(gè)或多個(gè)服務(wù)實(shí)例,W合并服務(wù)負(fù)載。
[0048] 網(wǎng)絡(luò)設(shè)備識(shí)別被指派給地址表中與第二索引值(是第一索引值的陪伴索引值)相 關(guān)聯(lián)的服務(wù)實(shí)例條目的第二地址子集(階段520)。如上所述,在一些實(shí)施方式中,用于給定 索引值的陪伴索引值是給定索引值的函數(shù)。也就是說(shuō),陪伴索引值C被確定為:c = "2P modulo2P+i其中r是給定索引值,P是小于或等于所使用的最高索引值的2的最大幕的指數(shù) (也就是說(shuō),/>==4 j,其中k是移除服務(wù)實(shí)例之前服務(wù)實(shí)例的總數(shù)且索引值從零開(kāi) 始)。
[0049] 然后,網(wǎng)絡(luò)設(shè)備將組合地址子集指派給地址表中與第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例 條目(階段530),并從表中清除與第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目(階段540)。在一些實(shí) 施方式中,在將組合地址子集指派給地址表中的服務(wù)實(shí)例條目時(shí),網(wǎng)絡(luò)設(shè)備使用第二索引 值和第一索引值中的較小值。在一些實(shí)施方式中,通過(guò)轉(zhuǎn)變來(lái)自被合并為"無(wú)關(guān)"比特(在圖 5B中用X指示)的每個(gè)子分組的比特來(lái)創(chuàng)建組合地址子集。
[0050] 因此如上所述,在一些服務(wù)實(shí)例的數(shù)目化)是2的幕化= 2P)的實(shí)施方式中,分布是 公平的,因?yàn)槊總€(gè)服務(wù)實(shí)例都與相同數(shù)目(1/k)的源地址相關(guān)聯(lián)。在一些實(shí)施方式中,當(dāng)服 務(wù)實(shí)例的數(shù)目化)介于2的兩個(gè)幕之間時(shí)(2p<k<2p+i),在分布中會(huì)存在一些不平衡一一有 些服務(wù)實(shí)例將與是關(guān)聯(lián)于其他服務(wù)實(shí)例的數(shù)目?jī)杀兜牡刂返臄?shù)目相關(guān)聯(lián)。具體而言,被指 派給2化-2P)個(gè)服務(wù)實(shí)例的地址的百分比(1/2P+1)將是被指派給剩余2p+i-k個(gè)服務(wù)實(shí)例的地 址的百分比(1/2P)的一半。
[0051 ]在圖5B中,將八個(gè)地址集合映射到服務(wù)實(shí)例的地址表370被修改為變成將屯個(gè)地 址集合映射到服務(wù)實(shí)例的地址表360。更詳細(xì)而言,移除服務(wù)實(shí)例(例如,使用上面參照 圖5A所述的方法)。被移除的服務(wù)實(shí)例被指派W索引7,索引7具有陪伴索引3。用于索引7的 條目576是用于最后Ξ個(gè)比特等于"11Γ的地址的規(guī)則,而用于索引3的條目574是用于最后 Ξ個(gè)比特等于"01Γ的地址的規(guī)則。表370被修改為變成表360,其中用于索引3的條目562是 用于最后Ξ個(gè)比特等于"01?;?11Γ的地址的組合規(guī)則,并且沒(méi)有用于索引7的條目,即清 除了索引7處的規(guī)則。
[0052] 圖6是根據(jù)說(shuō)明性實(shí)施方式,在實(shí)現(xiàn)本文所述計(jì)算機(jī)化組件時(shí)使用的計(jì)算系統(tǒng)的 框圖。泛泛而言,計(jì)算系統(tǒng)包括至少一個(gè)處理器650W及一個(gè)或多個(gè)存儲(chǔ)器設(shè)備670或675, 所述處理器650用于根據(jù)指令執(zhí)行動(dòng)作,所述存儲(chǔ)器設(shè)備670或675用于存儲(chǔ)指令和數(shù)據(jù)。所 圖示的示例計(jì)算系統(tǒng)610包括經(jīng)由總線615與至少一個(gè)網(wǎng)絡(luò)接口控制器620通信的一個(gè)或多 個(gè)處理器650、存儲(chǔ)器670 W及任何其他設(shè)備680(例如,I/O接口),所述網(wǎng)絡(luò)接口控制器620 具有與網(wǎng)絡(luò)設(shè)備612(a-n)相連接的網(wǎng)絡(luò)接口端口 622(a-n)。一般而言,處理器650將執(zhí)行從存 儲(chǔ)器所接收的指令。所示處理器650包含緩存存儲(chǔ)器675或直接連接到緩存存儲(chǔ)器675。
[0053] 更詳細(xì)而言,處理器650可W是處理指令(例如,從存儲(chǔ)器670或緩存675預(yù)取的指 令)的任何邏輯電路。在很多實(shí)施例中,處理器650是微處理器單元或?qū)S锰幚砥?。?jì)算設(shè)備 610可W基于任何處理器或處理器的集合,能夠如本文所述操作。處理器650可W是單核處 理器或多核處理器。處理器650可W是多個(gè)處理器。
[0054] 存儲(chǔ)器670可W是適合于存儲(chǔ)計(jì)算機(jī)可讀數(shù)據(jù)的任何設(shè)備。存儲(chǔ)器670可W是具有 固定儲(chǔ)存器的設(shè)備,或者是用于讀取可移除存儲(chǔ)介質(zhì)的設(shè)備。示例包括所有形式的非易失 性存儲(chǔ)器、介質(zhì)和存儲(chǔ)器設(shè)備、半導(dǎo)體存儲(chǔ)器設(shè)備(例如,6?301、66?1?01、501?41、^及閃速存 儲(chǔ)器設(shè)備)、磁盤、磁光盤、W及光盤(例如,CD 1?01、0¥0-1?01、^及藍(lán)光@盤)。計(jì)算系統(tǒng)610 可具有任意數(shù)目的存儲(chǔ)器設(shè)備670。
[0055] 緩存存儲(chǔ)器675-般是用于快速讀取時(shí)間而非常接近處理器650放置的計(jì)算機(jī)存 儲(chǔ)器。在一些實(shí)施方式中,緩存存儲(chǔ)器675是處理器650的一部分,或者與處理器650處在相 同的忍片上。在一些實(shí)施方式中,存在緩存675的多個(gè)等級(jí),例如,L2和L3緩存層。
[0056] 網(wǎng)絡(luò)接口控制器620管理經(jīng)由網(wǎng)絡(luò)接口 622(a-n)(也稱為網(wǎng)絡(luò)接口端口)交換的數(shù) 據(jù)。網(wǎng)絡(luò)接口控制器620處理用于網(wǎng)絡(luò)通信的0SI模型的物理層和數(shù)據(jù)鏈路層。在一些實(shí)施 方式中,由處理器650來(lái)處理網(wǎng)絡(luò)接口控制器的任務(wù)中的一部分。在一些實(shí)施方式中,網(wǎng)絡(luò) 接口控制器620是處理器650的一部分。在一些實(shí)施方式中,計(jì)算系統(tǒng)610具有多個(gè)網(wǎng)絡(luò)接口 控制器620。網(wǎng)絡(luò)接口 622(a-n)是用于物理網(wǎng)絡(luò)鏈接的連接點(diǎn)。在一些實(shí)施方式中,網(wǎng)絡(luò)接口 控制器620支持無(wú)線網(wǎng)絡(luò)連接,并且接口端口 622是無(wú)線接收器/發(fā)射器。一般而言,計(jì)算設(shè) 備610經(jīng)由到網(wǎng)絡(luò)接口 622(a-n)的物理或無(wú)線鏈接與其他計(jì)算設(shè)備612(a-n)交換數(shù)據(jù)。在一些 實(shí)施方式中,網(wǎng)絡(luò)接口控制器620實(shí)現(xiàn)諸如W太網(wǎng)的網(wǎng)絡(luò)協(xié)議。
[0057] 其他計(jì)算設(shè)備612(a-n)經(jīng)由網(wǎng)絡(luò)接口端口 622被連接到計(jì)算設(shè)備610。其他計(jì)算設(shè)備 612(a-n)可W是對(duì)等計(jì)算設(shè)備、網(wǎng)絡(luò)設(shè)備、或者具有網(wǎng)絡(luò)功能的任何其他計(jì)算設(shè)備。例如,第 一計(jì)算設(shè)備612(a)可W是將計(jì)算設(shè)備610連接到諸如互聯(lián)網(wǎng)的數(shù)據(jù)網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備,諸如集 線器、橋接器、開(kāi)關(guān)、或路由器。
[0058] 其他設(shè)備680可包括I/O接口、外部串行設(shè)備端口、W及任何附加的協(xié)同處理器。例 如,計(jì)算系統(tǒng)610可包括用于連接輸入設(shè)備(例如,鍵盤、麥克風(fēng)、鼠標(biāo)、或其他指針設(shè)備)、輸 出設(shè)備(例如,視頻顯示器、揚(yáng)聲器、或打印機(jī))、或附加存儲(chǔ)器設(shè)備(例如,便攜閃存驅(qū)動(dòng)或 外部媒體驅(qū)動(dòng))的接口(例如,通用串行總線(USB)接口)。在一些實(shí)施方式中,計(jì)算系統(tǒng)610 包括諸如協(xié)同處理器的附加設(shè)備680,例如,數(shù)學(xué)協(xié)同處理器可W幫助處理器650進(jìn)行高精 度或復(fù)雜的計(jì)算。
[0059] 本說(shuō)明書所述的主題的實(shí)施方式W及操作可W在數(shù)字電子電路中被實(shí)現(xiàn),或者在 有形介質(zhì)、固件、或硬件上嵌入的計(jì)算機(jī)軟件中被實(shí)現(xiàn),包括本說(shuō)明書中所公開(kāi)的結(jié)構(gòu)W及 它們的結(jié)構(gòu)等同物,或者它們中的一個(gè)或多個(gè)的組合。本說(shuō)明書所述主題的實(shí)施方式可W 被實(shí)現(xiàn)為在有形介質(zhì)上所嵌入的一個(gè)或多個(gè)計(jì)算機(jī)程序,即,在一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)介 質(zhì)上編碼的計(jì)算機(jī)程序指令的一個(gè)或多個(gè)模塊,用于由數(shù)據(jù)處理裝置執(zhí)行或控制數(shù)據(jù)處理 裝置的操作。計(jì)算機(jī)存儲(chǔ)介質(zhì)可W是計(jì)算機(jī)可讀存儲(chǔ)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)基底、隨機(jī)或串 行存取存儲(chǔ)器陣列或設(shè)備、或者它們的一個(gè)或多個(gè)的組合,或者被包括在其中。此外,計(jì)算 機(jī)存儲(chǔ)介質(zhì)可W是一個(gè)或多個(gè)獨(dú)立的組件或介質(zhì)(例如,多個(gè)CD、磁盤、或其他存儲(chǔ)設(shè)備), 或者被包括在其中。計(jì)算機(jī)存儲(chǔ)介質(zhì)可W是有形的W及非暫時(shí)性的。
[0060] 本說(shuō)明書所述的操作可W被實(shí)現(xiàn)為由數(shù)據(jù)處理裝置對(duì)于在一個(gè)或多個(gè)計(jì)算機(jī)可 讀存儲(chǔ)介質(zhì)上所存儲(chǔ)的數(shù)據(jù)或者從其他源所接收的數(shù)據(jù)進(jìn)行的操作。
[0061] 計(jì)算機(jī)程序(也稱為程序、軟件、軟件應(yīng)用、腳本或代碼)可W按照任何形式的編程 語(yǔ)言編寫,包括編譯或解釋型語(yǔ)言、聲明性或過(guò)程的語(yǔ)言,并且可W按照任何形式部署,包 括作為獨(dú)立程序或作為模塊、組件、子例程、對(duì)象、或適合于在計(jì)算環(huán)境中使用的其它單元。 計(jì)算機(jī)程序可W但是不必與文件系統(tǒng)中的文件相對(duì)應(yīng)。程序可W被存儲(chǔ)在保存其他程序或 數(shù)據(jù)的文件的部分中(例如,在標(biāo)記語(yǔ)言文檔中所存儲(chǔ)的一個(gè)或多個(gè)腳本)、存儲(chǔ)在專用于 所考慮的程序的單個(gè)文件中、或者存儲(chǔ)在多個(gè)協(xié)調(diào)文件中(例如,存儲(chǔ)一個(gè)或多個(gè)模塊、子 程序、或代碼的部分的文件)。計(jì)算機(jī)程序可W被部署為在一個(gè)計(jì)算機(jī)上執(zhí)行,也可W部署 為在多個(gè)計(jì)算機(jī)(位于一個(gè)地點(diǎn)或者跨多個(gè)地點(diǎn)分布并通過(guò)通信網(wǎng)絡(luò)互連)上執(zhí)行。通信網(wǎng) 絡(luò)的示例包括局域網(wǎng)("LAN")和廣域網(wǎng)("WAN")、網(wǎng)間網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))、W及對(duì)等網(wǎng)絡(luò) (例如,對(duì)等點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò))。
[0062] 本說(shuō)明書所述的處理和邏輯流程可通過(guò)一個(gè)或多個(gè)可編程處理器執(zhí)行,所述可編 程處理器執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序,W通過(guò)操作輸入數(shù)據(jù)并生成輸出來(lái)執(zhí)行動(dòng)作。此外, 處理和邏輯流程可通過(guò)也可W由專用邏輯電路來(lái)執(zhí)行,并且裝置也可W被實(shí)現(xiàn)為專用邏輯 電路所述專用邏輯電路例如,F(xiàn)PGA(現(xiàn)場(chǎng)可編程口陣列)或ASIC(專用集成電路)。
[0063] 雖然本說(shuō)明書包含許多【具體實(shí)施方式】的細(xì)節(jié),但是它們不應(yīng)解釋為對(duì)于任何發(fā)明 的范圍或者所要求保護(hù)的范圍的限制,而是作為具體到特定發(fā)明的特定實(shí)施方式的特征的 描述。本說(shuō)明書在獨(dú)立實(shí)施方式的場(chǎng)境下描述的某些特征也可W在單個(gè)實(shí)施方式中組合被 實(shí)現(xiàn)。相反,在單個(gè)實(shí)施方式的場(chǎng)境下描述的各種特征也可W單獨(dú)地或者按照任何適當(dāng)?shù)?子組合的方式在多個(gè)實(shí)施方式中被實(shí)現(xiàn)。此外,雖然上面可將特征描述為在某些組合中起 作用,并且一開(kāi)始也運(yùn)樣要求保護(hù)的,但是在有些情況下可將來(lái)自要求保護(hù)的組合的一個(gè) 或多個(gè)特征從組合中去除,并且所要求保護(hù)的組合可W被定向到子組合或者子組合的變 型。
[0064] 類似地,雖然在附圖中按照特定順序描述操作,但是運(yùn)不應(yīng)理解為要求按照所示 的特定順序或者按照連續(xù)順序來(lái)執(zhí)行運(yùn)些操作,或者要求運(yùn)樣執(zhí)行所有所示的操作,W實(shí) 現(xiàn)期望的結(jié)果。在某些情況下,多任務(wù)和并行處理是有利的。此外,在上述實(shí)施方式中各種 系統(tǒng)組件的分離不應(yīng)理解為在所有實(shí)施方式中都要求運(yùn)種分離,并且應(yīng)當(dāng)理解為所述程序 組件和系統(tǒng)一般可W同時(shí)被集成在單個(gè)軟件產(chǎn)品中或者被封裝在多個(gè)軟件產(chǎn)品中。
[0065] 對(duì)"或"的引用可W被解釋為包含性的,因此用"或"來(lái)描述的任何術(shù)語(yǔ)都可W表示 單個(gè)、一個(gè)W上、W及全部所述術(shù)語(yǔ)的任何一種。標(biāo)記"第一"、"第二"、"第Ξ"等等不一定表 示順序,并且一般只用于區(qū)分相同或相似的項(xiàng)或元素。
[0066] 因此,描述了主題的特定實(shí)施方式。其他實(shí)施方式也落入所附權(quán)利要求的范圍之 內(nèi)。在一些情況下,權(quán)利要求中引用的動(dòng)作可W按照不同的順序進(jìn)行,也實(shí)現(xiàn)期望的結(jié)果。 此外,附圖中描繪的處理不一定要求所示的特定順序或者連續(xù)順序來(lái)實(shí)現(xiàn)期望的結(jié)果。在 某些實(shí)施方式中,可W利用多任務(wù)或并行處理。
【主權(quán)項(xiàng)】
1. 一種保持由多個(gè)服務(wù)實(shí)例所提供的分布式服務(wù)的路由信息的方法,包括: 提供包括條目集合的地址表,其中: 所述地址表具有的條目數(shù)目少于或等于所配備的索引值集合中的索引值數(shù)目,并且其 中每個(gè)所述條目被指派給相應(yīng)的所配備索引值以及所述分布式服務(wù)的實(shí)例;以及 通過(guò)以下步驟將新的服務(wù)實(shí)例添加到所述地址表: 通過(guò)(1)在所配備的索引值集合中識(shí)別存在的、未指派的索引值,或通過(guò)(2)在所配備 的索引值集合中增加所述索引值數(shù)目并選擇新配備的索引值,由網(wǎng)絡(luò)設(shè)備控制器獲取可指 派的索引值,以指派給所述新的服務(wù)實(shí)例; 由所述網(wǎng)絡(luò)設(shè)備控制器識(shí)別所指派的索引值,所指派的索引值是所獲取的索引值的陪 伴索引值; 由所述網(wǎng)絡(luò)設(shè)備控制器將與所述陪伴索引值相關(guān)聯(lián)的分組源地址集合分為第一地址 子集和第二地址子集;以及 由所述網(wǎng)絡(luò)設(shè)備控制器將所述第一地址子集指派給所述地址表中與所指派的陪伴索 引值相關(guān)聯(lián)的所述服務(wù)實(shí)例條目,并將所述第二地址子集指派給所述地址表中與所獲取的 索引值以及所述新添加的服務(wù)實(shí)例相關(guān)聯(lián)的條目。2. 根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括: 通過(guò)以下步驟從所述地址表移除服務(wù)實(shí)例: 對(duì)于要被移除的所述服務(wù)實(shí)例,由所述網(wǎng)絡(luò)設(shè)備控制器識(shí)別第三地址子集,所述第三 地址子集被指派給所述地址表中與所述第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目; 由所述網(wǎng)絡(luò)設(shè)備控制器識(shí)別第四地址子集,所述第四地址子集被指派給所述地址表中 與第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,所述第二索引值是所述第一索引值的陪伴索引值; 由所述網(wǎng)絡(luò)設(shè)備控制器將組合地址子集指派給所述地址表中與所述第二索引值相關(guān) 聯(lián)的服務(wù)實(shí)例條目,所述組合地址子集包括所述第三地址子集和所述第四地址子集;以及 由所述網(wǎng)絡(luò)設(shè)備控制器從所述表中清除與所述第一索引值相關(guān)聯(lián)的所述服務(wù)實(shí)例條 目。3. 根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括: 由所述網(wǎng)絡(luò)設(shè)備控制器確定所述第一索引值小于所述第二索引值; 由所述網(wǎng)絡(luò)設(shè)備控制器將所述地址表中與所述第二索引值相關(guān)聯(lián)的所述服務(wù)實(shí)例條 目的所述關(guān)聯(lián)從與所述第二索引值的關(guān)聯(lián)改變?yōu)榕c所述第一索引值的關(guān)聯(lián)。4. 根據(jù)權(quán)利要求1所述的方法,其中所配備的索引值集合中的所配備索引值數(shù)目是2的5. 根據(jù)權(quán)利要求4所述的方法,其中在所配備的索引值集合中增加所述索引值數(shù)目包 括:使所配備的索引值數(shù)目加倍。6. 根據(jù)權(quán)利要求4所述的方法,其中識(shí)別特定索引值的陪伴索引值包括:由所述網(wǎng)絡(luò)設(shè) 備控制器將所配備的索引值集合中的所配備索引值數(shù)目的一半添加到所述特定索引值,將 所配備的索引值集合中的所配備索引值數(shù)目取模。7. 根據(jù)權(quán)利要求1所述的方法,包括:生成所述地址表。8. -種網(wǎng)絡(luò)設(shè)備控制器,包括: 存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)包括條目集合的地址表,其中所述地址表具有的條目數(shù)目少 于或等于所配備的索引值集合中的索引值數(shù)目,并且其中每個(gè)所述條目被指派給相應(yīng)的所 配備索引值以及由多個(gè)服務(wù)實(shí)例所提供的分布式服務(wù)的實(shí)例;以及 至少一個(gè)處理器,所述至少一個(gè)處理器被配置為通過(guò)執(zhí)行以下操作將新的服務(wù)實(shí)例添 加到所述地址表: 通過(guò)(1)在所配備的索引值集合中識(shí)別存在的、未指派的索引值,或通過(guò)(2)在所配備 的索引值集合中增加所述索引值數(shù)目并選擇新配備的索引值,來(lái)獲取可指派的索引值,以 指派給所述新的服務(wù)實(shí)例; 識(shí)別所指派的索引值,所指派的索引值是所獲取的索引值的陪伴索引值; 將與所述陪伴索引值相關(guān)聯(lián)的分組源地址集合分為第一地址子集和第二地址子集;以 及 將所述第一地址子集指派給所述地址表中與所指派的陪伴索引值相關(guān)聯(lián)的所述服務(wù) 實(shí)例條目,并將所述第二地址子集指派給所述地址表中與所獲取的索引值以及所述新添加 的服務(wù)實(shí)例相關(guān)聯(lián)的條目。9. 根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備控制器,其中 所述至少一個(gè)處理器被進(jìn)一步配置為通過(guò)執(zhí)行以下操作從所述地址表移除服務(wù)實(shí)例: 對(duì)于要被移除的所述服務(wù)實(shí)例,識(shí)別第三地址子集,所述第三地址子集被指派給所述 地址表中與所述第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目; 識(shí)別第四地址子集,所述第四地址子集被指派給所述地址表中與第二索引值相關(guān)聯(lián)的 服務(wù)實(shí)例條目,所述第二索引值是所述第一索引值的陪伴索引值; 將組合地址子集指派給所述地址表中與所述第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,所述 組合地址子集包括所述第三地址子集和所述第四地址子集;以及 從所述表中清除與所述第一索引值相關(guān)聯(lián)的所述服務(wù)實(shí)例條目。10. 根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備控制器,其中所述至少一個(gè)處理器被進(jìn)一步配置為 執(zhí)行以下操作: 確定所述第一索引值小于所述第二索引值; 將所述地址表中與所述第二索引值相關(guān)聯(lián)的所述服務(wù)實(shí)例條目的所述關(guān)聯(lián)從與所述 第二索引值的關(guān)聯(lián)改變?yōu)榕c所述第一索引值的關(guān)聯(lián)。11. 根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備控制器,其中所配備的索引值集合中的所配備索引 值數(shù)目是2的冪。12. 根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)設(shè)備控制器,其中在所配備的索引值集合中增加所述 索引值數(shù)目包括:使所配備的索引值數(shù)目加倍。13. 根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)設(shè)備控制器,其中識(shí)別特定索引值的陪伴索引值包括: 將所配備的索引值集合中的所配備索引值數(shù)目的一半添加到所述特定索引值,將所配備的 索引值集合中的所配備索引值數(shù)目取模。14. 根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備控制器,其中所述至少一個(gè)處理器被進(jìn)一步配置 為:生成所述地址表。15. -種存儲(chǔ)指令的有形計(jì)算機(jī)可讀介質(zhì),所述指令在由一個(gè)或多個(gè)計(jì)算處理器執(zhí)行 時(shí),使得所述一個(gè)或多個(gè)計(jì)算處理器: 提供包括條目集合的地址表,其中: 所述地址表具有的條目數(shù)目少于或等于所配備的索引值集合中的索引值數(shù)目,并且其 中每個(gè)所述條目被指派給相應(yīng)的所配備索引值以及所述分布式服務(wù)的實(shí)例;以及 通過(guò)以下操作將新的服務(wù)實(shí)例添加到所述地址表: 通過(guò)(1)在所配備的索引值集合中識(shí)別存在的、未指派的索引值,或通過(guò)(2)在所配備 的索引值集合中增加索引值數(shù)目并選擇新配備的索引值,來(lái)獲取可指派的索引值,以指派 給所述新的服務(wù)實(shí)例; 由所述網(wǎng)絡(luò)設(shè)備控制器識(shí)別所指派的索引值,所指派的索引值是所獲取的索引值的陪 伴索引值; 將與所述陪伴索引值相關(guān)聯(lián)的分組源地址集合分為第一地址子集和第二地址子集;以 及 將所述第一地址子集指派給所述地址表中與所指派的陪伴索引值相關(guān)聯(lián)的所述服務(wù) 實(shí)例條目,并將所述第二地址子集指派給所述地址表中與所獲取的索引值以及所述新添加 的服務(wù)實(shí)例相關(guān)聯(lián)的條目。16. 根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),所述指令包括使得所述一個(gè)或多個(gè)處理 器執(zhí)行以下操作的指令: 通過(guò)以下操作從所述地址表移除服務(wù)實(shí)例: 對(duì)于要被移除的所述服務(wù)實(shí)例,識(shí)別第三地址子集,所述第三地址子集被指派給所述 地址表中與所述第一索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目; 識(shí)別第四地址子集,所述第四地址子集被指派給所述地址表中與第二索引值相關(guān)聯(lián)的 服務(wù)實(shí)例條目,所述第二索引值是所述第一索引值的陪伴索引值; 將組合地址子集指派給所述地址表中與所述第二索引值相關(guān)聯(lián)的服務(wù)實(shí)例條目,所述 組合地址子集包括所述第三地址子集和所述第四地址子集;以及 從所述表中清除與所述第一索引值相關(guān)聯(lián)的所述服務(wù)實(shí)例條目。17. 根據(jù)權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),所述指令包括使得所述一個(gè)或多個(gè)處理 器執(zhí)行以下操作的指令: 確定所述第一索引值小于所述第二索引值; 將所述地址表中與所述第二索引值相關(guān)聯(lián)的所述服務(wù)實(shí)例條目的所述關(guān)聯(lián)從與所述 第二索引值的關(guān)聯(lián)改變?yōu)榕c所述第一索引值的關(guān)聯(lián)。18. 根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其中所配備的索引值集合中的所配備索 引值數(shù)目是2的冪。19. 根據(jù)權(quán)利要求18所述的計(jì)算機(jī)可讀介質(zhì),其中在所配備的索引值集合中增加索引 值數(shù)目包括:將所配備的索引值數(shù)目加倍。20. 根據(jù)權(quán)利要求18所述的計(jì)算機(jī)可讀介質(zhì),其中識(shí)別特定索引值的陪伴索引值包括: 將所配備的索引值集合中的所配備索引值數(shù)目的一半添加到所述特定索引值,將所配備的 索引值集合中的所配備索引值數(shù)目取模。
【文檔編號(hào)】H04L29/08GK106063228SQ201480076610
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2014年11月10日
【發(fā)明人】莫尼亞·戈巴第, 亞歷山大·施瑞爾
【申請(qǐng)人】谷歌公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
北海市| 北川| 西安市| 永修县| 滁州市| 格尔木市| 玉门市| 云霄县| 台中市| 高唐县| 体育| 达州市| 固原市| 若羌县| 博野县| 杨浦区| 苍南县| 宁河县| 自治县| 固原市| 东乌珠穆沁旗| 上杭县| 江城| 桂东县| 新野县| 徐闻县| 大连市| 新干县| 六盘水市| 寿光市| 夹江县| 五峰| 明水县| 南雄市| 镇安县| 财经| 迁安市| 房山区| 南投县| 新余市| 永胜县|