用於管理dns請求的方法和數據處理系統的製作方法
2023-04-24 09:43:41 1
專利名稱:用於管理dns請求的方法和數據處理系統的製作方法
技術領域:
本發明總體涉及改進的數據處理系統,尤其涉及用於處理數據的方法和裝置。更具體地,本發明涉及用於分配DNS轉換請求的方法、裝置和計算機指令。
背景技術:
通常,網際網路用戶通過在瀏覽器中輸入域名或統一資源定位器(URL)來訪問特定的Web站點。從用戶的角度看,該URL被輸入至客戶端瀏覽器,隨後,客戶端瀏覽器接收從支持該Web站點的伺服器返回的內容。例如,用戶可以通過在客戶端的瀏覽器中鍵入「ibm.com」,來訪問由國際商業機器公司所維護的Web站點。
然而,計算機不能直接使用字母數字混合表示的URL到達Web站點。而是,為了找到含有所需Web站點內容的主伺服器,瀏覽器需要用數字表示的網際網路協議(IP)地址。IP位址的一個實例為12.345.678.90。
為了獲得Web站點的IP位址,客戶端瀏覽器接收URL到適當的IP位址的轉換。目前,域名系統(DNS)被維護來適應這種轉換。DNS是允許URL被轉化為IP位址以及IP位址被轉換為URL的資料庫和數據處理系統的系統。
當將URL輸入到客戶端瀏覽器時,客戶端瀏覽器將該URL發送至DNS伺服器,通常,該伺服器位於遠程的地理位置。DNS伺服器將URL轉換為IP位址,並將該IP位址發送回客戶端瀏覽器。然後,客戶端瀏覽器使用該IP位址訪問主伺服器。
由於大多數客戶端使用域名系統,所以DNS伺服器每天處理大量的事務。因此,維護DNS伺服器的業務經常維護大批的DNS伺服器。
通常,DNS轉換請求(DNS請求)到達DNS伺服器組中的第一個DNS伺服器。如果第一個DNS伺服器太忙而無法處理該請求,即處理該DNS請求的時間超過預定值,則該DNS請求超時。然後,該DNS請求被傳遞至伺服器的順序表中的下一個伺服器。持續該過程,直到該DNS請求到達這樣一個DNS伺服器,該伺服器具有足夠短的輸入隊列,而能夠在該DNS請求超時之前處理該DNS請求。
與處理DNS請求的方法相關的一個問題是,列表中更加向下的DNS伺服器未被充分利用,而在列表頂端的DNS伺服器則負擔過重。結果,DNS伺服器組可用的資源並未充分利用,並且任何給定的DNS請求可能耗費比進行處理所需的時間要長的時間。這樣,具有一種用於在DNS伺服器組中的各個DNS伺服器之中分配DNS轉換請求工作負荷的改進的方法、裝置和計算機指令將是有利的。
發明內容
本發明提供一種用於管理髮送至DNS伺服器組的域名系統(DNS)轉換請求的方法,設備和計算機指令。當組內的第一個DNS伺服器接收到DNS請求時,確定第一個DNS伺服器上輸入隊列的長度。如果輸入隊列的長度超過一個預定值,則在將該DNS請求添加至第一輸入隊列之前,將該DNS請求發送至第二DNS伺服器的第二輸入隊列,以便將DNS請求發送至組內具有最短隊列長度的DNS伺服器。
在所附的權利要求中,提出了被認為是本發明的新穎性特徵的特徵。然而,結合附圖,參考以下示例性實施例的詳細說明,將會更好的理解本發明自身、應用的優選模式及其進一步的目的和優點。
圖1示出了本發明可以實現於其中的數據處理系統的網絡的圖形表示;
圖2是可被實現為伺服器的數據處理系統的框圖,其中本發明可實現於該伺服器中;圖3是示出本發明可以實現於其中的數據處理系統的框圖;圖4是將DNS請求發送至DNS伺服器組的已知客戶端數據處理系統的框圖;圖5是根據本發明的優選實施例,將DNS請求發送至DNS伺服器組的客戶端數據處理系統的框圖;以及圖6是根據本發明的優選實施例,示出在DNS伺服器組處管理DNS請求的方法的流程圖。
具體實施例方式
現在參照附圖,圖1示出了本發明可以實現於其中的數據處理系統的網絡的圖形表示。網絡數據處理系統100是本發明可以實現於其中的計算機網絡。網絡數據處理系統100包含網絡102,其是用於提供網絡數據處理系統100內相互連接的各種裝置和計算機之間的通信鏈路的媒介。網絡102可以包括諸如有線、無線通信鏈路或光纖電纜之類的連接。
在所示出的實例中,伺服器104與存儲器106一起連接至網絡102。此外,客戶機108、110和112連接至網絡102。這些客戶機108、110和112可以是,例如,個人計算機或網絡計算機。在所示出的實例中,伺服器104向客戶機108-112提供數據,諸如引導文件、作業系統映像和應用。客戶機108、110和112是伺服器104的客戶端。網絡數據處理系統100可以包括其他伺服器、客戶機和其他未示出的裝置。在所示出的實例中,網絡數據處理系統100是網際網路,而網絡102代表使用傳輸控制協議/網際網路協議(TCP/IP)組彼此進行通信的網絡和網關的全球集合。在網際網路核心的是主要節點或主計算機之間的高速數據通信線路的主幹,包括數千個傳送數據和消息的商業、政府、教育和其他計算機系統。當然,網絡數據處理系統100也可以實現為多種不同類型的網絡,例如,內聯網、區域網(LAN)或廣域網(WAN)。圖1旨在作為一個實例,而並不旨在作為對本發明的體系結構限制。
參照圖2,其根據本發明的優選實施例,示出了可以實現為諸如圖1中的伺服器104的伺服器的數據處理系統的框圖。數據處理系統200可以是對稱多處理器(SMP)系統,包括連接至系統總線206的多個處理器202和204。可選地,可以使用單處理器系統。同樣連接至系統總線206的是存儲器控制器/高速緩存208,其提供至本地存儲器209的接口。I/O總線橋210連接至系統總線206,並提供至I/O總線212的接口。如同所示出的,存儲器控制器/高速緩存208和I/O總線橋210可以集成為一體。
連接至I/O總線212的外設部件互連(PCI)總線橋214提供至PCI局部總線216的接口。多個數據機可連接至PCI局部總線216。典型的PCI總線實現將支持四個PCI擴展槽或外加連接器。可通過經由外加連接器連接至PCI局部總線216的數據機218和網絡適配器220,來提供到附圖1中的客戶機108-112的通信鏈路。
附加的PCI總線橋222和224提供用於附加的PCI局部總線226和228的接口,通過這些附加的PCI總線橋,附加的數據機或網絡適配器可以得到支持。按照這種方式,數據處理系統200允許至多個網絡計算機的連接。如同所示出的,存儲器映射的圖形適配器230和硬碟232也可以直接或間接連接至I/O總線212。
本領域的普通技術人員將理解,附圖2中所示出的硬體可以變化。例如,其他外設裝置,諸如光碟驅動器等等,也可以用於附加於或代替所示出的硬體。所示出的實例並不意味著對於本發明的體系結構限制。
圖2中所示出的數據處理系統可以是,例如,IBM eServer pSeries系統,其是位於紐約Armonk的國際商業機器公司的、運行先進的交互執行程序(AIX)作業系統或LINUX作業系統的一個產品。
現在參照圖3,其示出了本發明可以實現於其中的數據處理系統的框圖。數據處理系統300是客戶端計算機的一個實例。數據處理系統300使用外設部件互連(PCI)局部總線體系結構。雖然所示出的實例使用了一個PCI總線,但是,也可以使用諸如圖形加速埠(AGP)和工業標準體系結構(ISA)之類的其他總線體系結構。處理器302和主存儲器304通過PCI橋308連接至PCI局部總線306。PCI橋308也可以包括集成的存儲器控制器和用於處理器302的高速緩衝存儲器。通過直接部件互連或通過外加板,可以實現至PCI局部總線306的附加連接。在所示出的實例中,區域網(LAN)適配器310、小型計算機系統接口(SCSI)主機總線適配器312和擴展總線接口314通過直接部件連接,連接至PCI局部總線306。相反,音頻適配器316、圖形適配器318和音頻/視頻適配器319,均通過插入到擴展槽的外加板,連接至PCI局部總線306。擴展總線接口314提供用於鍵盤和滑鼠適配器320、數據機322和附加存儲器324的連接。SCSI主機總線適配器312,提供對於硬碟驅動器326、磁帶驅動器328和CD-ROM驅動器330的連接。典型的PCI局部總線實現將支持三個或四個PCI擴展槽或外加連接器。
作業系統運行於處理器302上,並用於協調及提供對圖3中的數據處理系統300內的各部件的控制。該作業系統可以是可購買到的作業系統,諸如Windows XP,其是微軟公司所提供的。諸如Java之類的面向對象的程序設計系統,可以結合該作業系統來運行,並提供從在數據處理系統300上執行的Java程序或應用對該作業系統的調用。「Java」是SunMicrosystem有限公司的商標。用於該作業系統的指令、面向對象的程序設計系統以及應用或程序,位於諸如硬碟驅動器326之類的存儲設備上,並可以被加載至主存儲器304,以由處理器302來執行。
本領域的普通技術人員將理解,圖3中的硬體可以依據實現而變化。其他內部硬體或外設裝置,諸如快閃只讀存儲器(ROM)、等效非易失性存儲器或光碟驅動器等,可以被用於附加於或代替圖3中所示出的硬體。此外,本發明的處理可以應用於多處理器數據處理系統。
作為另一個實例,數據處理系統300可以是被配置為不依靠某種類型的網絡通信接口即可引導的獨立系統。作為進一步的實例,數據處理系統300可以是個人數字助理(PDA)設備,其配置有ROM和/或快閃ROM,以便提供用於存儲作業系統文件和/或用戶生成的數據的非易失性存儲器。
圖3中所示出的實例以及上述實例,並不意味著體系結構限制。例如,除了採用PDA的形式之外,數據處理系統300也可以是筆記本計算機或手持計算機。數據處理系統300也可以是信息亭或Web裝置。
本發明提供用於管理被發送至DNS伺服器組的域名系統(DNS)轉換請求的方法、裝置和計算機指令。當該組內的第一個DNS伺服器接收到DNS請求時,確定第一個DNS伺服器處的輸入隊列的長度。如果該輸入隊列的長度超過預定值,則在該DNS請求被添加至第一輸入隊列之前,將該DNS請求發送至第二個DNS伺服器處的第二輸入隊列。從而,本發明的機制用於將DNS請求發送至該組內具有最短隊列長度的DNS伺服器,並在整個DNS伺服器組上均衡DNS請求。
圖4是向DNS伺服器組發送DNS請求的已知客戶端數據處理系統的框圖。客戶端數據處理系統400可以是諸如圖1中的客戶機108、110和112之類的數據處理系統,也可以是諸如圖2中的客戶機200之類的系統。DNS請求402可以由任何適合的裝置通過任何適合的介質發送,這些介質包括圖1中的網絡102或網際網路。每一個DNS伺服器406、408、410和412可以是適用於處理DNS請求的任何數據處理系統,可以是圖1中的伺服器104或圖3中的伺服器300。
在用於轉換DNS請求的已知方法中,客戶端數據處理系統400向DNS伺服器組404發送DNS請求402。DNS伺服器組可以包括DNS伺服器1406、DNS伺服器2408、DNS伺服器i410以及DNS伺服器N412中的一個、幾個或全部。這樣,DNS伺服器組404包括具有N個DNS伺服器的多個DNS伺服器,其中DNS伺服器i410是一個具體的DNS伺服器號。在客戶機400處,使用已知的軟體或硬體技術來執行DNS請求402的生成。同樣,在這些實例中,使用已知的軟體和硬體技術,來執行DNS請求402的發送。在以下的實例中,使用已知的硬體和軟體技術,在DNS伺服器組404處執行DNS請求402的處理。
繼續已知的實例,DNS伺服器1406接收DNS請求402,並將DNS請求402添加至第一DNS伺服器的第一輸入隊列414。如果DNS請求402在第一輸入隊列414中等待的時間超過一個預定時間值,諸如8秒,則DNS請求402將「超時」,並被從第一輸入隊列414中撤銷。然後,DNS請求402將被傳送至DNS伺服器408中的第二輸入隊列416。再次,如果DNS請求402在第二輸入隊列416中等待的時間超過一個預定時間值,則DNS請求402將被傳送至下一個DNS伺服器中的輸入隊列。以這種方式,DNS請求402從一個伺服器的輸入隊列被傳遞至下一個伺服器的輸入隊列,諸如輸入隊列418,直到到達DNS伺服器N 412的輸入隊列420。如果DNS請求402在DNS伺服器N 412的輸入隊列420中等待的時間超過一個預定時間,則該請求被傳送回至DNS伺服器1406,或被從DNS伺服器組404徹底撤銷。在後一種情況下,可將失敗的DNS請求的通知發送回至客戶機400。然而,如果DNS請求402被成功處理,則DNS轉換被發送回客戶機400。
當前使用的上述方法,在DNS伺服器1406上加諸了很重的工作負荷,而在隨DNS伺服器列表向下的每一個隨後的DNS伺服器上,該工作負荷遞減。DNS伺服器1406的工作負荷最重,DNS伺服器2408的工作負荷低於DNS伺服器1406,DNS伺服器i410的工作負荷低於DNS伺服器2408,而DNS伺服器N 412的工作負荷最少。因此,這種已知方法未能利用DNS伺服器列表中更加向下的DNS伺服器上的可用資源。隨DNS伺服器列表向下的每一個隨後的DNS伺服器相繼均未被充分利用,從而DNS伺服器N 412可能根本未被使用。這樣,具有一種用於在DNS伺服器組404中均勻分配DNS請求的總工作負荷的方法、裝置和計算機指令將是有利的。
圖5是根據本發明的優選實施例向DNS伺服器組發送DNS請求的客戶端數據處理系統的框圖。客戶端數據處理系統500可以是諸如圖1中的客戶機108、110和112的數據處理系統,也可以是諸如圖2中的客戶機200之類的系統。DNS請求502可以由任何適合的裝置通過任何適合的介質進行發送,這些介質包括圖1中的網絡102或網際網路。每一個DNS伺服器506、508、510和512可以是適用於處理DNS請求的任何數據處理系統,可以是圖1中的伺服器104、圖3中的伺服器300、或圖4中所示的任一DNS伺服器。
在本發明的一個示例性實例中,客戶端數據處理系統500向DNS伺服器組504發送DNS請求502。DNS伺服器組504可以包括DNS伺服器1506、DNS伺服器2508、DNS伺服器i510以及DNS伺服器N512中的一個、多個或全部。這樣,DNS伺服器組504包括具有N個DNS伺服器的多個DNS伺服器,其中DNS伺服器i510是一個具體的DNS伺服器號。在客戶機500處,使用已知的軟體或硬體技術來執行DNS請求502的生成。同樣,在這些實例中,使用已知的軟體和硬體技術來執行DNS請求502的發送。一旦DNS請求502通過輸入隊列併到達一個特定的DNS伺服器,便使用已知的硬體和軟體技術來執行DNS請求502的轉換。
與圖4中示出的已知方法相比,提供DNS請求處理器522來管理DNS請求502。如圖5中所描述的過程,客戶機500發送DNS請求502,其將發送至DNS伺服器組504。然而,DNS請求處理器522執行以下所描述的任務,來管理DNS請求502。可以使用諸如多路轉換器、數據處理系統、路由器、交換機、腳本、程序或其他應用之類的任何適合的硬體或軟體,來實現DNS請求處理器522。在優選的示例性實施例中,每一個DNS伺服器506、508、510和512均包括一個單獨的DNS請求處理器。每一個DNS伺服器通過其自己的DNS請求處理器來接收傳入的數據包,並判斷是否接受所傳入的DNS請求502。在其他的實施例中,DNS請求處理器522可以與DNS伺服器組504分離,或與DNS伺服器組504中的一個DNS伺服器集成。這樣,DNS請求處理器522可以在DNS請求502到達任一DNS伺服器之前,截取DNS請求502,或者可以在每一個DNS伺服器處由一個單獨的DNS處理器對DNS請求502進行處理。
一旦DNS請求502到達,DNS請求處理器522便檢查DNS伺服器1506的輸入隊列1514的長度。然後,DNS請求處理器522判斷輸入隊列1514的長度是否大於預定值。如果已度量出DNS請求502的最短超時值和DNS請求502的平均處理時間,則DNS請求處理器522可以通過度量處理輸入隊列1514所需要的時間長度,或通過對輸入隊列1514中待處理的DNS請求的數目進行計數,來進行上述判斷。
如果輸入隊列1514的長度小於預定值,則DNS請求處理器522將DNS請求502添加至輸入隊列1514。另一方面,如果輸入隊列1514的長度大於預定值,則DNS請求處理器522將DNS請求502傳送至DNS伺服器組504中的另一個DNS伺服器。例如,DNS請求處理器522可以將DNS請求502傳送至輸入隊列2516、輸入隊列i518或輸入隊列i520之一。為了節省時間,該傳送發生於DNS請求502被添加至輸入隊列1514之前。在另一個示例性實施例中,該傳送發生於DNS請求502被添加至輸入隊列1514之後,但DNS請求502超時之前。
DNS請求處理器522可以選擇DNS伺服器組504中任一未被嘗試的DNS伺服器。在一個示例性實施例中,DNS請求處理器522維護DNS伺服器的列表,並偶而線性地或順序地嘗試將DNS請求502指派給一個DNS伺服器。這樣,DNS請求處理器522試圖將DNS請求502從輸入隊列1514,順序傳送至輸入隊列2516、最後是輸入隊列i518、最終是輸入隊列N520,如果所有其他輸入隊列的長度均過長的話。在另一個示例性實施例中,DNS請求處理器522主動監控每一個DNS伺服器的輸入隊列的長度,並基於具有最短輸入隊列長度的DNS伺服器,或基於某些其他參數,動態選擇下一個輸入隊列。
圖6是根據本發明的優選實施例示出在DNS伺服器組處管理DNS請求的方法的流程圖。圖6中所示出的方法可以實現於圖4或圖5所示的系統、圖1的伺服器104、圖3的伺服器300、DNS伺服器、或適用於處理DNS請求的任何數據處理系統中。
可以使用任何適用的軟體或硬體技術,來實現該示例性方法。在該示例性實施例中,使用採用諸如腳本、指令集、或計算機可讀程序代碼之類的軟體;諸如路由器、多路轉換器、交換機或處理器之類的硬體;或軟體和硬體的組合的形式的DNS請求處理器,來實現該方法。軟體駐留於數據處理系統的存儲器中,且處理器執行該軟體。該軟體可以安裝在DNS伺服器組的DNS伺服器上,或安裝在可操作地連接至DNS伺服器組的單獨的數據處理系統上。同樣,硬體可以是DNS伺服器的一部分,或可以是可操作地連接至DNS伺服器組的單獨的硬體。
該處理的進行如下所述。客戶端數據處理系統向DNS伺服器組發送DNS請求(步驟600)。一旦該DNS請求到達DNS伺服器組,則DNS請求處理器檢查該DNS伺服器組中第一個DNS伺服器處的輸入隊列的長度(步驟602)。然後,該DNS請求處理器判斷第一個DNS伺服器處的輸入隊列的長度是否大於預定值(步驟604)。如果已度量出DNS請求的最短超時值和DNS請求的平均處理時間,則DNS請求處理器通過度量處理輸入隊列所需要的時間的長度,或通過對輸入隊列中待處理的DNS請求的數目進行計數,來進行這一判斷。
如果第一個DNS伺服器處的輸入隊列的長度小於預定值,則DNS請求處理器將該DNS請求添加至第一個DNS伺服器的輸入隊列(步驟606)。另一方面,如果第一個DNS伺服器處的輸入隊列的長度大於預定值,則DNS請求處理器判斷該DNS請求處理器是否已經試圖了將該DNS請求置於DNS伺服器組內的所有DNS伺服器中(步驟608)。如果該DNS請求處理器仍未試圖將該DNS請求置於組內的至少一個DNS伺服器的輸入隊列中,則DNS請求處理器將該DNS請求傳送至該DNS伺服器組中的另一個DNS伺服器(步驟610)。為了節省時間,該傳送發生於將該DNS請求添加至第一個伺服器的輸入隊列之前。在另一個示例性實施例中,該傳送發生於將DNS請求添加至輸入隊列之後,但在該DNS請求超時之前。然後重複上述過程,返回至步驟602.
DNS請求處理器可以選擇DNS伺服器組中任一其他未被嘗試的DNS伺服器。在一個示例性實施例中,DNS請求處理器維護DNS伺服器的列表,並偶而線性地或順序地試圖將DNS請求指派給一個DNS伺服器。在另一個實施例中,DNS請求處理器主動監控每一個DNS伺服器的輸入隊列的長度,並基於具有最短輸入隊列長度的DNS伺服器或基於某些其他參數,動態選擇下一個DNS伺服器。
返回步驟608,如果DNS請求處理器未能將該DNS請求置於每一個DNS伺服器的隊列中,則DNS請求處理器選擇具有最短輸入隊列長度的DNS伺服器(步驟612)。然後,該DNS請求處理器允許該DNS請求被置於該DNS伺服器的輸入隊列中。在另一個示例性實施例中,DNS請求處理器可以持續試圖安置DNS請求,直到該DNS請求處理器找到具有足夠短的輸入隊列長度的DNS伺服器。例如,DNS請求處理器可以試圖將DNS請求順序安置在DNS伺服器組內的每一個隨後的DNS伺服器中。在又一個示例性實施例中,DNS請求處理器可以將DNS請求安置在一個隨機的DNS伺服器的輸入隊列中。在又一個示例性實施例中,DNS請求處理器可以撤銷未被指派的請求,並將失敗的請求信號發送給客戶機。
在DNS請求處理器將DNS請求指派給一個DNS伺服器的輸入隊列之後,在步驟606或步驟612期間,相關DNS伺服器監控DNS請求在輸入隊列中所耗費的時間。然後,該相關DNS伺服器或DNS請求處理器評估該DNS請求是否超時(步驟614)。如果該DNS請求在該隊列中所耗費的時間超過預定值,則該請求超時。在這種情況下,該DNS伺服器或DNS請求處理器將指示該請求已超時並已被撤銷的信號發送至客戶機(步驟618)。否則,DNS伺服器完成該DNS請求,並將適當的響應發送至客戶機(步驟616)。無論該DNS請求是被撤銷還是被完成,該過程此後均終止。
在一個示例性實例中,DNS伺服器組包括3個DNS伺服器,A、B和C。DNS請求的最短超時值是一秒。處理一個DNS請求的平均時間是20毫秒。因此,如果每一個DNS伺服器的輸入隊列中有大於1/(20*10-3)=50的數據包待處理,則該特定的數據包將超時。
客戶端生成DNS請求,並將該DNS請求發送至DNS伺服器組。DNS請求處理器試圖將該DNS請求安置在DNS伺服器A的輸入隊列中。DNS請求處理器檢測到DNS伺服器A的輸入隊列中有50個數據包待處理。由於如果被安置在DNS伺服器A的輸入隊列中,該DNS請求將超時,所以,DNS請求處理器並不將該DNS請求發送至伺服器A。取而代之,該DNS伺服器試圖將該DNS請求安置在伺服器B中。DNS請求處理器檢測到DNS伺服器B的輸入隊列中有50個數據包待處理。因此,該DNS請求處理器試圖將該DNS請求安置在DNS伺服器C中。DNS伺服器C在其輸入隊列中具有40個數據包待處理。在這種情況下,DNS請求處理器將傳入的DNS請求指派給DNS伺服器C的輸入隊列。
如果DNS伺服器C在其輸入隊列中具有50個數據包,則DNS請求處理器將再次相繼地度量DNS伺服器A和B的輸入隊列中的數據包數目。如果任一隊列中有少於50的數據包,則DNS請求處理器將相應地指派該DNS請求。否則,DNS請求處理器可以採取某些其他動作,諸如將該DNS請求隨機指派給DNS伺服器A、B和C之一、在DNS請求到達任一DNS伺服器之前撤銷該DNS請求、或執行任何其他期望動作。
本發明的機制與用於處理DNS請求的當前可用方法相比,具有多個優點。例如,DNS請求工作負荷是在DNS伺服器組內的所有DNS伺服器之中平均分配的,從而增加處理DNS請求的速度,並更好的利用可用的伺服器資源。此外,可以在伺服器側執行實現本發明所需的所有改進,這意味著不需要對客戶端數據處理系統進行任何配置,本發明便可發揮作用。這樣,本發明的機制相對更容易實現。
重要的是,應該指出,儘管在完全功能的數據處理系統的情境下描述了本發明,但本領域的普通技術人員將理解,本發明的處理能夠以指令的計算機可讀介質及多種形式進行發布,而且不論實際用於執行該發布的信號承載介質的特定類型如何,本發明都同樣應用。計算機可讀介質的實例包括諸如軟盤、硬碟驅動器、RAM、CD-ROM、DVD-ROM之類的可記錄類型介質,以及諸如數字和模擬通信鏈路的傳輸類型介質,使用諸如射頻和光波傳輸的傳輸類型的有線或無線通信鏈路。計算機可讀介質可以採用編碼的格式的形式,該編碼的格式在特定的數據處理系統中被解碼以便實際應用。
本發明可採用完全的硬體實施例,完全的軟體實施例或含有硬體和軟體組件的實施例的形式。在優選實施例中,本發明在軟體中實現,該軟體包括但不局限於固件、常駐軟體、微碼等。
此外,本發明可採用可由計算機可用或計算機可讀介質訪問的電腦程式產品的形式,該電腦程式產品提供由計算機或任何指令執行系統使用或與它們結合的程序代碼。基於本說明書的目的,計算機可用或計算機可讀介質可以是能夠包含、存儲、通信、傳播或傳送由指令執行系統、裝置或設備使用或與它們結合的程序的任何裝置。
該介質可以是電子、磁、光、電磁、紅外線或半導體系統(或裝置或設備)或傳播介質。計算機可讀介質的實例包括半導體或固態存儲器、磁帶、可移動計算機磁碟、隨機存儲器(RAM)、只讀存儲器(ROM)、硬磁碟和光碟。光碟的當前實例包括光碟只讀存儲器(CD-ROM)、光碟讀/寫(CD-R/W)和DVD。
適用於存儲和/或執行程序代碼的數據處理系統將包括至少一個通過系統總線直接或間接連接至存儲器元件的處理器。該存儲元件可包括在程序代碼的實際執行期間使用的本地存儲器、大容量存儲器、以及高速緩衝存儲器,其提供至少一些程序代碼的臨時存儲,以便減少執行過程中必須從大容量存儲器中獲得的編碼的次數。輸入/輸出或I/O裝置(包括但不局限於鍵盤、顯示器、指示器)能夠直接或通過介入I/O控制器而連接至該系統。
網絡適配器也可以連接至該系統,以使該數據處理系統能夠通過介入專用或公共網絡而連接至其他數據處理系統或遠程印表機或存儲設備。數據機、電纜數據機以及乙太網卡都僅僅是一些當前可用類型的網絡適配器。
本發明的描述是為了例示和說明的目的而呈現的,其並不意味著以所公開的形式窮舉或限制本發明。多種改進和變化對於本領域的普通技術人員來說將是顯而意見的。上述實施例是為了更好的解釋本發明的原理、實際應用並且使本領域的其他普通技術人員能夠理解本發明的具有適合於特定預期用途的各種改進的各種實施例而選出及描述的。
權利要求
1.一種數據處理系統中用於管理DNS請求的方法,所述方法包括在第一DNS伺服器接收DNS請求;確定第一DNS伺服器處的DNS請求的第一輸入隊列的長度;以及如果第一輸入隊列的長度超過預定值,則在上述DNS請求超時之前,將該DNS請求傳送至第二DNS伺服器。
2.如權利要求1所述的方法,進一步包括在將上述DNS請求傳送至第二DNS伺服器之後,確定第二DNS伺服器處的DNS請求的第二輸入隊列的長度;以及如果第二輸入隊列的長度超過預定值,則在該DNS請求超時之前,將該DNS請求傳送至第三DNS伺服器。
3.如權利要求1所述的方法,進一步包括在將上述DNS請求傳送至第三DNS伺服器之後,確定第三DNS伺服器處的DNS請求的第三輸入隊列的長度;以及如果第三輸入隊列的長度超過預定值,則在該DNS請求超時之前,通過執行從下述組中選出的任務來管理該DNS請求,該組包括將該DNS請求保留在第三DNS伺服器處、將該DNS請求傳送至第二DNS伺服器、及將該DNS請求傳送至第一DNS伺服器。
4.如權利要求3所述的方法,其中上述任務是通過執行以下操作選出的確定第一DNS伺服器處的上述隊列的當前長度、第二DNS伺服器處的上述隊列的當前長度、及第三DNS伺服器處的上述隊列的當前長度,以及其後根據哪個DNS伺服器具有最短的當前隊列來選擇該任務。
5.如權利要求4所述的方法,進一步包括如果第一DNS伺服器、第二DNS伺服器和第三DNS伺服器每一個均未能處理上述DNS請求,則撤銷該DNS請求。
6.如權利要求1所述的方法,進一步包括如果第一輸入隊列的長度小於或等於上述預定值,則在第一DNS伺服器處理上述DNS請求。
7.如權利要求1所述的方法,進一步包括如果第一輸入隊列的長度超過上述預定值,則在第二DNS伺服器處理上述DNS請求。
8.如權利要求1所述的方法,其中在上述DNS請求被添加至第一輸入隊列之前,執行上述傳送步驟。
9.一種電腦程式產品,包括計算機可用介質,其具有用於管理DNS請求的計算機可用程序代碼,所述電腦程式產品包括用於執行權利要求1-8中任意一項中的步驟的計算機可用程序代碼。
10.一種用於管理DNS請求的數據處理系統,所述數據處理系統包括總線;可操作地連接至上述總線的存儲器,其中該存儲器包含一組指令;可操作地連接至上述總線的處理器,其中該處理器執行該組指令以在第一DNS伺服器接收DNS請求;確定第一DNS伺服器處的DNS請求的第一輸入隊列的長度;以及如果第一輸入隊列的長度超過預定值,則在上述DNS請求超時之前,將該DNS請求傳送至第二DNS伺服器。
11.如權利要求10所述的數據處理系統,其中上述處理器進一步執行上述指令以在將上述DNS請求傳送至第二DNS伺服器之後,確定第二DNS伺服器處的DNS請求的第二輸入隊列的長度;以及如果第二輸入隊列的長度超過預定值,則在該DNS請求超時之前,將該DNS請求傳送至第三DNS伺服器。
12.如權利要求10所述的數據處理系統,其中上述處理器進一步執行上述指令以在將上述DNS請求傳送至第三DNS伺服器之後,確定第三DNS伺服器處的DNS請求的第三輸入隊列的長度;以及如果第三輸入隊列的長度超過預定值,則在該DNS請求超時之前,通過執行從下述組中選出的任務來管理該DNS請求,該組包括將該DNS請求保留在第三DNS伺服器處、將該DNS請求傳送至第二DNS伺服器、及將該DNS請求傳送至第一DNS伺服器。
13.如權利要求12所述的數據處理系統,其中上述處理器進一步執行上述指令以通過確定第一DNS伺服器處的上述隊列的當前長度、第二DNS伺服器處的上述隊列的當前長度、及第三DNS伺服器處的上述隊列的當前長度,以及其後根據哪個DNS伺服器具有最短的當前隊列選擇任務,來選出上述任務。
全文摘要
本發明提供了一種用於管理髮送至DNS伺服器組的域名系統(DNS)轉換請求的方法、裝置和計算機指令。當在該組中的第一DNS伺服器處接收到DNS請求時,確定第一DNS伺服器處的輸入隊列的長度。如果該輸入隊列的長度超過預定值,則在將該DNS請求添加至第一輸入隊列之前,將該DNS請求發送至第二DNS伺服器處的第二輸入隊列。從而,本發明的機制用於將DNS請求發送至該組中具有最短隊列長度的DNS伺服器,並在整個DNS伺服器組上均衡DNS請求。
文檔編號H04L29/12GK1878181SQ20061000763
公開日2006年12月13日 申請日期2006年2月15日 優先權日2005年6月6日
發明者R·納拉辛汗, N·赫格德 申請人:國際商業機器公司