專利名稱:分布式計算系統中路由信息的按需傳播的制作方法
技術領域:
本發明總體上涉及分布式計算系統,而且更具體地,涉及分布 式計算系統中用以請求路由器的路由信息的傳播。
背景技術:
分布式計算系統已經在許多不同的計算環境中得以應用,特別 是那些需要高性能和/或高可用性和容錯性的環境。在分布式計算系 統中,由網絡進行鏈接的多個計算機允許通信和/或分擔負載。分布 式計算系統幾乎支持所有類型的計算模型,包括點對點和客戶端_服 務器計算。
分布式計算系統的 一種特定類型稱為集群計算系統。"集群" 通常指多個計算機或節點相互聯網以協作執行計算機任務的計算機 系統組織。計算機集群的重要方面是集群中的所有節點呈現單一 系 統映像,也就是說,從客戶端或者用戶的角度,集群中的節點共同 呈現為單一的計算機或實體。在客戶端-服務器計算模型中,例如, 對于試圖訪問集群的任意客戶端,集群的節點共同呈現為單一的服 務器。
集群通常用于關注高性能和可靠性的、相對較大的多用戶計算 系統中。例如,集群可以用于提供冗余或容錯性,從而在集群中的 任意節點出現故障的情況下,將之前由該節點執行的操作轉交給集 群中的其它節點。由于多個節點通常能夠并行地處理多于單個計算 機的大量任務,超過單一計算機,還使用集群來提高整體性能。通 常,可以利用負載均衡確保在節點之間合理地分配任務,以防止單 個節點超載,并由此最大化整體系統性能。例如,集群的一個特定 應用是提供對諸如數據庫或存儲設備等共享資源的多用戶訪問,因為多節點能夠處理相對較大數目的用戶訪問請求,而且即使當集群 中的任意節點故障時,共享資源通常仍然對用戶可用。
隨著對集群以及其它分布式計算系統的需求與復雜度的增加, 對可擴展性和性能的關注不斷增加。期待分布式計算系統為潛在的 數百萬客戶端提供服務并非不合理,并且已經發現,隨著服務于這 些客戶端的分布式計算系統的復雜度增加,對于此類系統的穩定性 和性能而言,在服務器、節點或構成此類系統的其它計算機件之間 的負載分配變得越發關鍵。在分布式計算系統中,將客戶端請求路 由到恰當的計算機,(例如,服務器)是恰當地分配負載的關鍵。
從潛在的數百萬客戶端中有效地協調請求的路由,已經成為分 布式計算系統整體性能的關鍵因素。路由協議不僅需要在可用服務 器之間平均分配負載,還要能夠處理某些服務器不可用的情況,以 及僅在服務器的子集間進行分配。
集中式路由首先將所有客戶端請求發送到一個服務器或組件, 隨后將其路由到恰當的服務器予以處理,這種集中式路由可能是故
障的源頭和性能的瓶頸。在較大的分布式計算系統中,已經發現,
與集中式路由方法相關聯的許多障礙。在許多傳統設計中,自行進 行路由決策的客戶端稱為"智能客戶端。"
為了使客戶端做出將客戶請求路由到何處的正確決策,需要將 能夠用于進行可靠決策的路由信息提供給客戶端。典型地,對客戶 端而言,與監測分布式計算系統狀態相關聯的開銷過于高昂,而且 在一些情形中,客戶端可能無法訪問進行正確路由決策所需的一些 系統狀態信息,由于上述事實,即使是在客戶端-側路由方法中,路 由信息也是在服務器上或者在客戶端之外產生和更新的。由于路由 信息是集中更新的,因此路由信息繼而向外傳播到客戶端,以更新 存儲在每個客戶端中的本地路由信息。
許多傳統設計使用"推送(push)"或周期式方法,每當服務器
上的路由信息發生變化時,便由服務器或其它中央組件來啟動路由信息向客戶端的傳播。通過如此操作,確保了客戶端在大部分時間 內都可獲得最新的路由信息。
分布式計算系統變得更加復雜、強大和動態,然而,這些系統 中維護的路由信息本質上變得明顯更加動態。服務器可能死機或變 得停機,其他服務器可能上線,可能增加或移除服務,或是移動到 不同的服務器上。由于可能許多服務器竟爭有限的系統資源,單個 服務器的工作負荷可能改變。服務器還可能經歷資源使用(例如,
未決請求,線程,CPU使用,存儲器使用,1/0使用,數據鎖使用,
等等)的變化以及配置的變化。因此,分布式計算系統的最佳路由 信息持續地處于變遷狀態。
在傳統協議下,由系統配置和操作狀況的變化所導致的路由信 息更新被傳播到所有的客戶端,由此,在服務潛在數百萬用戶的、 持續變化的復雜分布式計算系統中,將當前路由信息傳播到所有客 戶端的有關的外開銷可能無法承受的。
因此,本領域存在如下顯著需求,即,對在分布式計算系統中 傳播用于路由客戶請求的路由信息的、較為高效且低成本的方式。
發明內容
本發明提供了 一種利用路由信息的按需傳播來降低與在整個分 布式計算系統中分發路由信息相關聯的開銷的裝置、程序產品和方 法,其解決了與現有技術相關的這些及其它問題。特別地,在按照 本發明的許多實施方式中,基于針對需要重新路由的客戶端而發布 的客戶端請求的數目和/或頻率(其例如在響應于客戶端請求而回復 的響應中指示),測量用于路由針對該特定客戶端的客戶端請求的
路由信息的陳舊性(staleness)。 一旦客戶端請求的重新路由滿足預 期的傳播標準,則為客戶端請求更新的路由信息。由此,在許多情 形中,相比推送類型的方法,分布式計算系統中為客戶端傳播路由 信息的相關開銷顯著降低,并且傳播更側重于為最需要最新路由信 息的那些客戶端分配路由信息。按照本發明的一個方面,例如,通過以下方式在分布式計算系
統中路由客戶端請求跟蹤按照與客戶端相關聯的路由信息而路由 的、來自該客戶端的客戶端請求的重新路由,并且基于所跟蹤的客 戶端請求的重新路由,選擇性地啟動更新路由信息的傳播。
表征本發明特征的這些和其它優點以及特性在所附權利要求中 記載,并形成其另一部分。然而,為了更好理解本發明以及使用它 所能實現的優點和目標,應該參照附圖以及描述了本發明示例性實 施方式的補充描述內容。
圖1是包含有按需路由信息傳播的集群計算系統的結構圖; 圖2是包含有按需路由信息的客戶端-服務器計算系統的結構
圖3是包含有客戶端和服務器處理之間的按需路由信息傳播的 分布式計算系統的結構圖4是包含有按需路由信息傳播的基于網關的分布式計算系統 的結構圖;以及
圖5是示出了能夠被圖1中集群計算系統中客戶端執行的示例 性請求處理程序的程序流程的流程圖。
具體實施例方式
下面描述的實施方式提供在分布式計算系統中按需傳播用于路 由客戶端請求的路由信息。與許多傳統路由信息傳播技術不同,按 需傳播顯著地降低開銷,因此改進整體系統性能,而且在許多情形 中降低系統反應時間。在如下意義上,所示實施方式中的路由信息 傳播是按需的,即,當確定用于路由客戶端請求的路由信息需要更 新時,由客戶端或為客戶端啟動路由信息的傳播。
可以認為,按照本發明的路由信息實際上包括反映察覺到的 客戶端請求向多個可用服務器中特定服務器的最佳路由的任意信息。在許多實施方式中,路由信息將包含在路由表中,當然,在其 他實施方式中可以使用其它路由信息,例如,端點、端點可用性、 由每個端點提供的服務、以及每個端點中的服務作用(具有諸如服
務器權重、CPU使用、存儲器使用,操作歷史等附加信息)。分配
給或傳播到客戶端的路由信息可以在所有客戶端中保持一致,而且 可以與每個服務器中維護的信息相同。在備選方案中,客戶端上維
護的路由信息可能僅僅反映服務器中所維護信息的子集,并且還可 能限于與該特定客戶端相關的路由信息。當由客戶端或為客戶端利 用路由信息進行路由決策時,該路由信息與特定客戶端相關聯。
如上所述,路由信息是為客戶端按需傳播的,即,響應于確定 路由信息需要更新。典型地,基于跟蹤請求的重新路由來做出該確 定,所述請求例如如下請求,該請求被確定為已由服務器誤傳,并 且由此,不正確的服務器向請求客戶端(或其代理)返回針對該請 求的、指明該情況的響應。例如,可以跟蹤重新路由請求的數目和/ 或頻率,以確定為客戶端更新路由信息的需求。
在這些圖示說明的實施方式中,例如,重新路由的請求是通過 計數器來跟蹤的,對于接收到指示該請求需要被重新路由的響應的 每個請求,該計數器遞增。利用第二計數器來跟蹤請求的全部數目, 存儲在這些計數器中的數值被比較以得到重新路由比。如果重新路
由比超過預定閾值(例如,2%),則認為客戶端的路由信息過時, 而且由客戶端或為客戶端"推送"更新的路由信息。然而,可以意 識到,在備選方式中,可以跟蹤其它重新路由統計,而且可以由這 些跟蹤信息來計算其它度量,以確定是否需要為客戶端更新路由信 息。還可以使用備選閾值或策略作為確定何時需要更新的傳播標準。
另外,為客戶端啟動更新路由信息傳播的方式可以有多種不同 的實施方式,例如,經由對維護路由信息的服務器或服務的任意數 目類型的請求。對受益于當前披露的本領域技術人員,其它變形將 是易見的。
轉到附圖,貫穿附圖,相同的數字表示相同的部分。圖l示出了示例性分布式計算系統10,此處實施為集群計算系統,其適于實
施與本發明一致的按需路由信息傳播。具體地,圖l示出了集群計
算系統10中的多個節點12,其通過網絡18耦合到多個客戶端16。 典型地,節點12駐留在單個物理計算機上,例如,服務器類型的計 算機,可以意識到,在許多實施方式中,也可以是多個節點駐留在 相同的物理計算機上,例如,在經過邏輯分區計算機中。此處使用 的術語"節點,,和"服務器"可以互換,而且同樣地,可以意識到, 可以認為集群計算系統中的給定計算機在特定集群環境中作為 一個 或多個節點或服務器的主機。
例如,每個節點12典型地實施為多種多用戶計算機中的任意一 種,諸如網絡服務器、中程計算機、主機等。同樣,每個客戶端16 典型地實施為多種單用戶計算機中的任意一種,諸如工作站、桌上 型計算機、便攜式計算機等。然而,可以意識到,備選地,節點12 或者客戶端16可以使用各種多用戶或單用戶計算機來實現,同樣可 以實現在諸如手持計算機、機頂盒、移動電話等各種其它可編程電 子設備中。特別地,當在面向服務架構或效用計算架構中使用時, 在實踐中,在按照本發明的集群計算環境中可以使用能夠訪問和/或 提供計算服務的任意網絡設備。
一般地,每個客戶端16包括中央處理單元(CPU) 20,其包 括一 個或多個系統處理器,并且通常通過一級或多級高速緩沖存儲 器(未示出)耦合至存儲器或主存22。另外,CPU20可以經由用戶 接口 26耦合到其他外圍組件,例如,大容量存儲設備24 (例如, DSAD或者一個或多個磁盤驅動器)、各種輸入/輸出設備(例如, 控制板、顯示器、鍵盤、鼠標、揚聲器、麥克風,和/或專用工作站 等),以及經由網絡接口 28耦合到一個或多個網絡18。同樣,每個 節點12典型地包括與每個客戶端相似配置的CPU30、存儲器32、 大容量存儲設備34、用戶接口 36和網絡接口 38,當然,其通常是 更適合于服務器類型或者多用戶負載的組件。在備選方案中,客戶 端或節點都可以采用任意數目的備選計算機架構。每個客戶端16和節點12進一步配置用于容納各種與集群相關 的軟件組件,這些軟件組件用于為每個客戶端提供集群相關的服務。 例如,客戶端16包含請求處理機組件40,其用于處理由客戶端中的 一個或多個客戶端應用或服務42、 44啟動的集群相關的請求。相應 地,每個節點12包括集群基礎結構組件50,其與每個客戶端中的請 求處理機40通信,以向客戶端提供對各種集群主機應用和/或服務 52、 54的訪問。可以在客戶端或節點內通過多種方式來實現請求處 理機40和集群基礎結構50,例如,實現在內核或操作系統內、中間 件組件內、設備驅動器內,或本領域技術人員受益于本公開將易見 的其它方式。
以下討論將側重于用于實施上面描述的策略管理功能的特定例 程。被執行以實施本發明實施方式的例程,無論其被實現為操作系 統的一部分還是特定應用、組件、程序、目標、模塊或指令序列, 在此均稱為"計算機程序代碼"或簡稱為"程序代碼"。計算機程 序代碼通常包括在各個時刻駐留在計算機的各種存儲器或存儲設備 中的一個或者多個指令,而且,當被計算機中的一個或多個處理器 讀取或執行時,該指令使得計算機執行實現本發明多個方面所需執 行的步驟或組件。而且,雖然已經和將要在完整功能計算機及計算 系統的上下文中描述本發明,但是本領域技術人員可以意識到,本 發明的各種實施方式能夠作為各種形式的程序產品來發布,而且無
論實際上采用何種類型的計算機可讀信號承載介質來執行該發布, 本發明同樣適用。計算機可讀信號承載介質的實例包括但不局限于 諸如易失和非易失存儲器設備的物理可記錄類型介質、軟盤和其它 移動磁盤、硬盤驅動器、光盤(例如,CD-ROM或DVD等)以及其 它的,以及諸如數字和模擬通信鏈接的傳輸類型介質。
另外,下面描述的各種程序代碼可以基于應用或軟件組件被標
施。然而,應意識到,僅僅為了方便才使用下面的任意特定程序術 語,因此不應該局限到僅在由該術語標識和/或暗示的任意特定應用中使用本發明。而且,已知有無數種將計算機程序組成程序、步驟、 方法、模塊、目標等的典型方式,以及在駐留于典型計算機內的各
種軟件層(例如,操作系統,庫,API,應用,小應用程序等)之間 分配程序功能性的各種方式,可以意識到,本發明不局限于這里描 述的特定組織和程序功能性分配。
本發明還包括適當程序代碼的部署,以在分布式計算環境中實 施按需路由信息傳播。這種部署可以包括將程序代碼部署到一個或 多個服務器和/或一個個或多個客戶端,而且可以包括此類程序代碼 的自動化或自動安裝。例如,部署可以包括響應于客戶端嘗試連 接分布式計算機系統,在該客戶端中按需安裝程序代碼。部署還可 以包括程序代碼通過傳播介質的傳播和/或可以包含經由外部存儲設 備的程序代碼加載和安裝。
本領域技術人員將認識到,圖1示出的示例性環境并非意在限 制本發明。實質上,本領域技術人員將認識到,可以在不脫離本發 明范圍的情況下使用其它備選硬件和/或軟件環境。
特別地,在實踐中,按需路由信息傳播可以在如下任何計算環 境中使用,在這些計算環境中,用于路由客戶端請求的路由信息在 分布式計算系統的各個組件之間分布;特別地,按需路由信息傳播 可以在如下任何計算環境中使用,在這些計算環境中,路由信息的 生成、優化和管理獨立于路由信息在路由客戶端請求中的使用(例 如,在不同物理機器內,或甚至在駐留在相同物理機器中的不同進 程之中)。
例如,圖2-4分別示出可以使用按照本發明的按需路由信息傳播 的多個備選實現。
例如,如圖2所示,可以在除集群計算系統之外的多用戶分布 式計算環境中使用按需路由信息傳播。在這個實施中,客戶端計算 機100通過網絡104耦合到一組服務器102,其中,至少該服務器的 子集能夠為客戶端提供一個或多個服務。路由信息管理器106駐留 在一個或多個服務器102中,其管理主路由信息108。管理器106的功能包括創建和更新路由信息,以及路由信息向客戶端100的傳 播(例如,如方框110所示),以供請求路由器112用于將客戶端 100中發起的請求路由到適當的服務器102。
通常,服務器102中維護的路由信息本質上是高度動態的,例 如,基于服務器負載的變化、各種服務器的整體狀況、分布式計算 系統增加或移除服務器、服務和/或客戶端等。然而,轉發到每個客 戶端100的路由信息110 (可以包括全部或部分主路由信息108), 通常僅在由服務器轉發時才更新。路由信息向客戶端較為頻繁的傳 播通常將改進請求路由器112的精度,而且得到整體系統的更佳路 由性能。頻繁傳播的成本是與通信和更新每個客戶端中的路由信息 相關聯的附加通信和處理開銷。然而,路由信息較不頻繁的傳播通 常將增加請求路由器112的錯誤路由決策的次數,但是其傳播開銷 較低。
由于在 一 些情形中,作為客戶端操作的組件在其它情形中可以 操作為服務器,因此可以意識到,此處使用的術語"客戶端"和"服 務器"僅僅是相對而言的。
由此原因,可以認為客戶端包含能夠充當特定服務的"請求者" 或者"調用者,,的任何組件,而認為服務器包含能夠提供該特定服 務的任意組件,例如,作為"應答者"或"被調用者"。僅僅作為 一個實例,在n層分布式架構中,前層服務器經常充當后層服務器 的客戶端,其方式與充當web服務器客戶端的用戶計算機以及充當 數據庫服務器客戶端的web服務器相同。
而且,如圖3中最佳示出的,客戶端和服務器能夠組成不同的 進程或者組件,其可以駐留也可以不駐留在相同的物理機器內。圖3 示出了通過框架124耦合到多個服務器122的客戶端處理120,其中, 路由信息管理器126駐留在一個或多個服務器進程中,以創建和更 新主路由信息128,以及將路由信息(例如,路由信息130)傳播到 客戶端處理120以供請求路由器組件132使用。例如,在J2EE環境 中,客戶端代理可以充當servlet容器的客戶端,servlet容器可以充當EJB容器的客戶端,EJB容器可以充當后端數據庫服務器的客戶 端,等等。
另外,可以意識到,請求路由器和/或路由表管理器提供的功能 以及相應客戶端和主路由信息的位置,可以在不同實施方式中有所 變化,即,請求路由器和客戶端路由信息無需駐留在客戶端中,而 路由信息管理器和主路由信息無需駐留在服務器中。例如,如圖4 所示,在基于網關的架構中,客戶端140可以通過中間網關144與 多個服務器142對接,其中,中間網關144通過網絡146、 148 (例 如,WAN和LAN網絡)分別耦合至客戶端140和服務器142,從而 使所有客戶端請求初始發送到網關服務器,該網關服務器為多個客 戶端處理請求的路由。在這個情形中,路由信息管理器150和主路 由信息152可以維護在一個或多個服務器142上(或備選地,通過 與任意服務器142分離的組件),但是客戶端路由信息154和/或請 求路由器154可以維護在網關144中(網關144本身可以是分立組 件或可以是分布式設備)。在這方面還可以意識到,網關或其它代 理可以跟蹤針對多個客戶端的請求的重新路由,以及在恰當的情形 中為多個客戶端啟動路由信息的傳播。
在多數實現中,請求路由器使用路由信息將客戶端請求路由到 適當的服務器,該請求路由器與維護和更新路由信息的路由信息管 理器處于分離的進程中,從而使得該請求路由器無需感知發生在分 布式計算環境的服務器側的任何動態變化,例如,由于服務器負載、 服務器可用性、服務可用性、高速緩沖存儲器狀態、集群狀態、性 能等引起的動態變化。
現在回到圖1,在集群計算機系統10中,按需路由信息傳播是 使用駐留在每個客戶端16中的請求處理機40以及駐留在每個節點 或服務器的集群基礎結構50來實現的。在圖1中,與在請求處理機 40中實施按需路由信息傳播相關聯的功能被示為組件60-72,而由集 群基礎結構50實現的關聯功能被示為組件74-84。
請求處理機40包括請求路由器組件60,其接收每個客戶端請求以及確定將該請求路由到哪個集群或服務器。請求處理機40依靠于 路由信息,在這個實施中是客戶端路由信息表62,其包括來自此客 戶端的不同請求應該路由到的服務器的列表。可以意識到,客戶端 路由表可以具有任意數目的形式,而且路由信息可以采用路由表的 任意數目的可選形式。路由信息可以是特定于客戶端的,或者與其 它客戶端使用的相同,而且可以構成每個集群節點12上維護的全部 或者僅僅部分路由信息。
請求處理機40中還使用傳播管理器64,其不僅用于通過跟蹤客 戶端請求的重新路由來跟蹤客戶端路由表的功效或"新鮮度",還 用于在當前客戶端路由表被確定為次最優或陳舊時,啟動將更新客 戶端路由表傳播到客戶端。可以基于由傳播管理器64維護的傳播策
略66來確定客戶端路由信息表何時需要更新。在示出的實施方式中, 傳播策略可以基于重新路由比,其是根據在請求處理機40處理客戶
端請求時分別由傳播管理器更新的重新路由計數器68和請求計數器 70而計算的,例如,如果重新路由請求與所有請求的比超過諸如2% 的閾值,則啟動傳播。包含在傳播管理器64中的路由表更新器組件 72用于在傳播策略66認為需要時啟動客戶端路由表62的更新。
對于每個節點12上的集群基礎結構50,路由控制器74處理涉 及集群節點的傳入客戶端請求,這部分地包括檢驗客戶端的路由決 策是否恰當。路由控制器通常依賴于服務器路由表76,其對應于客 戶端路由表62,但是其根據集群計算機系統的當前操作狀況較為頻 繁地更新,而且因此比駐留在客戶端上的路由信息更加準確也更新。
如果路由控制器基于服務器路由表確定了該請求被誤路由,貝'J 請求重新路由器組件7 8確定應當將請求路由到哪個集群節點,并且 響應生成器組件80產生響應并將其返回給客戶端,指示該需求需要 被重新路由。如果客戶端的路由決策是正確的,則響應生成器80將 在訪問所請求的集群服務之后返回恰當的響應。
路由表管理器組件82管理服務器路由表76,基于當前集群配置 以及其它環境和負載狀況來更新該表。路由表傳播組件84響應于來自路由表更新器72的請求,從服務器路由表76分配路由信息到每 個客戶端。
請注意,在集群節點12中維護并由路由表管理器82管理的路 由信息通常分布在每個集群節點12中,從而使每個節點維護最佳路 由信息的當前拷貝。在其它實施方式中,路由信息的管理可以集中 到例如節點12之外的組件中。還將意識到,按照本發明,可以使用 用于生成和更新路由信息以最優化分布式計算系統的性能的任何已
知技術。
可以意識到,按照本發明,組件60-84中包含的功能在不同組件 中實現。因此本發明并不局限于在圖1中所公開的特定實現。
圖5的請求處理例程160進一步示出了請求處理機40處理客戶 端請求的操作。例程160響應于客戶端請求而啟動,并且開始于方 框162,其增加請求計數器以記錄請求的接收。接著,在方框164, 基于客戶端路由表中的路由信息,選擇目標服務器以處理該請求。 接著,在方框166,將請求轉發到選定的目標服務器,并且例程160 等待來自選定的服務器的響應,該響應在方框168中接收。
響應于該請求,該目標服務器可以選擇處理該請求,或者備選 地,基于節點或服務器中更多的當前路由信息,可以確定該目標服 務器不能或者不應該處理該請求。在前一種情形中,響應通常包括 任意所請求的數據以及該請求完成的指示。備選地,如果處理該請 求時檢測到錯誤,服務器還可以在響應中返回此類指示。然而,如 果目標服務器確定應該由其它服務器處理該請求,目標服務器將指 示該請求需要重新路由,附加包括正確服務器的標識。因此,例 程160的方框170根據該響應來確定是否該請求需要被重新路由。
如果不需要,控制進行到方框172,向客戶端中的請求器返回響 應,并且例程160完成。否則,方框170將控制進行到方框174,遞 增重新路由計數器,以記錄重新路由請求的出現。接著,在方框176, 通過將存儲在重新路由計數器中的數值除以存儲在請求計數器中的 數值來計算重新路由比。接著,方框178確定該重新路由比是否大于傳播閾值(例如,2%)。例如,傳播閾值可以存儲在傳播策略中, 并且在許多情形中可以是可配置的。
如果重新路由比不大于傳播閾值,則控制進行到方框180,將請 求重新路由至響應中所標識的服務器。接著控制進行到方框168,從 新服務器接收響應。否則,如果重新路由比大于傳播閾值,則方框 178將控制進行到方框182,從節點12之一請求更新的路由信息, 以有效地啟動更新的路由信息到客戶端的傳播。控制接著進行到方 框180,以上文描述的方式重新路由該請求。 一旦從恰當的服務器收 到適當響應,方框170將控制進行到方框172,將響應返回給客戶端 上的適當請求器,例程160完成。
在備選實施方式中,可以不在重新路由響應中標識正確的服務 器。在此類實例中,請求處理機可以啟動更新的路由信息的傳播, 并且此后使用更新的路由信息來重新路由該請求。對受益于當前公 開的本領域技術人員而言,其它變形是易見的。
由此,將會理解,示出的實施方式經常能夠顯著地降低在分布 式計算系統中向客戶端或其它客戶端請求處理機傳播路由信息的開 銷。在基于周期的系統中,路由信息響應于實踐中系統操作狀況的 每個變化而在服務器與客戶端之間進行同步,與此不同,在本發明 中,路由信息僅僅傳播到本地路由信息已經相當過時的客戶端請求 處理才幾。
可以不脫離本發明的精神和范圍,對示出的實施方式進行多種 變形。例如,在按照本發明的某些實施方式中,客戶端無需重新發 送已認定為重理由請求的請求。例如,在某些實施方式中,確定請 求應該路由到不同服務器的目標服務器可以將請求轉發到正確的服 務器,而且備選地,可以向客戶端發送獨立的響應以指示該請求已 經轉發。在備選方案中,由原始目標服務器向其轉發請求的服務器 可以在其響應中指示該請求被重新路由。在另一些實施方式中,不 應該接收請求的目標服務器仍然能夠服務于該請求,而且可以在響 應中指示該請求應該被路由到其它服務器。在后一種情況中,為了按需傳播路由信息,盡管該請求仍然由該服務器處理,但是可以將其認為是重新路由的請求。
其它變形對本領域技術人員是易見的。因此,本發明由所附權利要求限定。
權利要求
1.一種在分布式計算系統中路由客戶端請求的方法,所述方法包括響應于接收到所述客戶端中的請求基于駐留在所述客戶端中的路由表,從多個服務器中選擇一個服務器來處理所述請求;以及將所述請求發送給選定的服務器;以及響應于從所述選定的服務器接收到針對所述請求的響應確定所述響應是否指示所述請求需要重新路由;如果所述響應指示所述請求需要被重新路由,則更新重新路由統計;和如果所述重新路由統計滿足傳播標準,則為所述客戶端獲取所述路由表的更新拷貝。
2. —種在分布式計算系統中傳播路由信息的方法,所述方法包括跟蹤來自所述客戶端的客戶端請求的重新路由,其是按照與所述 客戶端相關聯的路由信息來路由的;以及基于所跟蹤的客戶端請求的重新路由,選擇性地啟動更新路由信息的傳播。
3. 根據權利要求2的方法,其中與所述客戶端相關聯的所述路 由信息駐留在所述客戶端中,并且其中跟蹤客戶端請求的重新路由 以及選擇性地啟動路由信息的傳播由所述客戶端來執行。
4. 根據權利要求3的方法,進一步包括在所述客戶端中,根 據駐留在所述客戶端中的所述路由信息來路由所述客戶端請求。
5. 根據權利要求4的方法,其中路由所述客戶端請求包括對 于第一請求,基于所述路由信息從多個服務器中選擇一個服務器來 處理所述第一請求,以及將所述第一請求轉發到選定的服務器。
6. 根據權利要求5的方法,其中所述多個服務器包括集群,并且其中所述客戶端是所述集群中的客戶端。
7. 根據權利要求5的方法,其中所述客戶端和所述多個服務器 中的每一個都包含進程。
8. 根據權利要求2的方法,其中與所述客戶端相關聯的所述路 由信息駐留在網關中,并且其中所述網關執行以下至少一個跟蹤 客戶端請求的重新路由,以及選擇性地啟動路由信息的傳播。
9. 根據權利要求2的方法,其中所述路由信息包括路由表。
10. 根據權利要求2的方法,其中跟蹤客戶端請求的重新路由包 括響應于接收到針對客戶端請求的、指示所述請求需要重新路由 的響應,遞增重新路由計凄t器。
11. 根據權利要求10的方法,進一步包括響應于接收到針對 客戶端請求的響應而遞增請求計數器,其中,基于所跟蹤的客戶端 請求的重新路由而為所述客戶端選擇性地啟動^各由信息的傳播包 括響應于重新路由計數器與請求計數器之間的比超過閾值,為所 述客戶端啟動路由信息的傳播。
12. 根據權利要求2的方法,其中基于所跟蹤的客戶端請求的重 新路由而為所述客戶端選擇性地啟動路由信息傳播包括響應于重 新路由比滿足傳播標準,為所述客戶端啟動路由信息的傳播。
13. 根據權利要求12的方法,其中所述傳播標準是所述客戶 端的重新路由比超過閾值。
14. 根據權利要求2的方法,其中基于所跟蹤的客戶端請求的重 新路由而為所述客戶端選擇性地啟動路由信息的傳播,是響應于接 收到針對客戶端請求的、指示所述請求需要重新路由的響應而執行。
15. 根據權利要求2的方法,其中為所述客戶端啟動路由信息的 傳播包括請求為所述客戶端下載路由表的更新拷貝。
16. 根據權利要求2的方法,進一步包括在第一進程中更新與 所述客戶端相關聯的所述路由信息,所述第一進程獨立于按照所述 路由信息來路由客戶端請求的第二進程,其中為所述客戶端啟動更 新路由信息的傳播包括將所述第 一進程中生成的更新路由信息獲取到第二進程中。
17. 根據權利要求16的方法,其中在所述第一進程中更新所述 路由信息包括基于以下至少 一 個來更新所述路由消息服務器負載、 服務器可用性、服務可用性、高速緩沖存儲器狀況、集群狀況和性 能。
18. —種裝置,包括 至少一個處理器;以及程序代碼,其配置為由所述處理器執行以實施任意前述權利要求 的步驟。
19. 一種程序產品,包括被配置為在分布式計算系統中傳播路由信息的程序代碼,當所述 程序代碼被處理邏輯執行時,導致執行權利要求2到17中任一項的 步驟。
全文摘要
一種裝置、程序產品和方法,其利用路由信息的按需傳播來降低與在整個分布式計算系統中分發路由信息相關聯的開銷。基于針對需要重新路由的客戶端而發布的客戶端請求的數目和/或頻率(其例如在響應于客戶端請求而回復的響應中指示),測量用于路由客戶端請求的路由信息的陳舊性。一旦客戶端請求的重新路由滿足預期的傳播標準,則為客戶端請求更新的路由信息。
文檔編號H04L29/08GK101652977SQ200880011147
公開日2010年2月17日 申請日期2008年3月26日 優先權日2007年4月6日
發明者沈金梅, 浩 王 申請人:國際商業機器公司