CN1878181A - 用于管理dns请求的方法和数据处理系统 - Google Patents
用于管理dns请求的方法和数据处理系统 Download PDFInfo
- Publication number
- CN1878181A CN1878181A CNA2006100076345A CN200610007634A CN1878181A CN 1878181 A CN1878181 A CN 1878181A CN A2006100076345 A CNA2006100076345 A CN A2006100076345A CN 200610007634 A CN200610007634 A CN 200610007634A CN 1878181 A CN1878181 A CN 1878181A
- Authority
- CN
- China
- Prior art keywords
- dns
- dns server
- request
- dns request
- mentioned
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1036—Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种用于管理发送至DNS服务器组的域名系统(DNS)转换请求的方法、装置和计算机指令。当在该组中的第一DNS服务器处接收到DNS请求时,确定第一DNS服务器处的输入队列的长度。如果该输入队列的长度超过预定值,则在将该DNS请求添加至第一输入队列之前,将该DNS请求发送至第二DNS服务器处的第二输入队列。从而,本发明的机制用于将DNS请求发送至该组中具有最短队列长度的DNS服务器,并在整个DNS服务器组上均衡DNS请求。
Description
技术领域
本发明总体涉及改进的数据处理系统,尤其涉及用于处理数据的方法和装置。更具体地,本发明涉及用于分配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控制器而连接至该系统。
网络适配器也可以连接至该系统,以使该数据处理系统能够通过介入专用或公共网络而连接至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器以及以太网卡都仅仅是一些当前可用类型的网络适配器。
本发明的描述是为了例示和说明的目的而呈现的,其并不意味着以所公开的形式穷举或限制本发明。多种改进和变化对于本领域的普通技术人员来说将是显而意见的。上述实施例是为了更好的解释本发明的原理、实际应用并且使本领域的其他普通技术人员能够理解本发明的具有适合于特定预期用途的各种改进的各种实施例而选出及描述的。
Claims (13)
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服务器具有最短的当前队列选择任务,来选出上述任务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/146,440 | 2005-06-06 | ||
US11/146,440 US20060277278A1 (en) | 2005-06-06 | 2005-06-06 | Distributing workload among DNS servers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1878181A true CN1878181A (zh) | 2006-12-13 |
Family
ID=37495418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100076345A Pending CN1878181A (zh) | 2005-06-06 | 2006-02-15 | 用于管理dns请求的方法和数据处理系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060277278A1 (zh) |
CN (1) | CN1878181A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150442B (zh) * | 2007-10-25 | 2011-02-02 | 杭州华三通信技术有限公司 | 一种bss网络内sta的管理方法和设备 |
CN102438278A (zh) * | 2011-12-21 | 2012-05-02 | 优视科技有限公司 | 移动通信网络的负载分配方法及负载分配装置 |
CN103957283A (zh) * | 2011-09-29 | 2014-07-30 | 北京奇虎科技有限公司 | 一种域名系统dns的最优应用服务器选取方法和装置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
US8413155B2 (en) | 2004-03-13 | 2013-04-02 | Adaptive Computing Enterprises, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
JP4648674B2 (ja) * | 2004-10-01 | 2011-03-09 | 株式会社日立製作所 | 記憶制御装置、記憶制御システム及び記憶制御方法 |
WO2006053093A2 (en) | 2004-11-08 | 2006-05-18 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
WO2006107531A2 (en) | 2005-03-16 | 2006-10-12 | Cluster Resources, Inc. | Simple integration of an on-demand compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
CA2603577A1 (en) | 2005-04-07 | 2006-10-12 | Cluster Resources, Inc. | On-demand access to compute resources |
JP5244332B2 (ja) * | 2006-10-30 | 2013-07-24 | 株式会社日立製作所 | 情報システム、データ転送方法及びデータ保護方法 |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US9389926B2 (en) * | 2010-05-05 | 2016-07-12 | Red Hat, Inc. | Distributed resource contention detection |
US9003035B1 (en) * | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8868730B2 (en) * | 2011-03-09 | 2014-10-21 | Ncr Corporation | Methods of managing loads on a plurality of secondary data servers whose workflows are controlled by a primary control server |
CN104065761A (zh) * | 2011-09-29 | 2014-09-24 | 北京奇虎科技有限公司 | 应用服务器选取方法和网络连接方法 |
US9015274B2 (en) * | 2012-10-29 | 2015-04-21 | Comcast Cable Communications, Llc | Methods and systems for delivering content |
US10715377B2 (en) * | 2012-12-21 | 2020-07-14 | Comcast Cable Communications, Llc | Domain name services servers management to share data efficiently |
US9912634B2 (en) | 2015-03-12 | 2018-03-06 | General Motors Llc | Enhancing DNS availability |
US20170163727A1 (en) * | 2015-12-04 | 2017-06-08 | University Of Surrey | A network element system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
US6665702B1 (en) * | 1998-07-15 | 2003-12-16 | Radware Ltd. | Load balancing |
US6092178A (en) * | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
US20010039585A1 (en) * | 1999-12-06 | 2001-11-08 | Leonard Primak | System and method for directing a client to a content source |
US6754706B1 (en) * | 1999-12-16 | 2004-06-22 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US7020698B2 (en) * | 2000-05-31 | 2006-03-28 | Lucent Technologies Inc. | System and method for locating a closest server in response to a client domain name request |
US20020082820A1 (en) * | 2000-10-31 | 2002-06-27 | Glenn Ferguson | Data model for automated server configuration |
US7478148B2 (en) * | 2001-01-16 | 2009-01-13 | Akamai Technologies, Inc. | Using virtual domain name service (DNS) zones for enterprise content delivery |
US6738933B2 (en) * | 2001-05-09 | 2004-05-18 | Mercury Interactive Corporation | Root cause analysis of server system performance degradations |
FI20011651A (fi) * | 2001-08-15 | 2003-02-16 | Nokia Corp | Palveluklusterin kuormituksen tasapainoittaminen |
US7039916B2 (en) * | 2001-09-24 | 2006-05-02 | Intel Corporation | Data delivery system for adjusting assignment of connection requests to nodes based upon the tracked duration |
US20030079027A1 (en) * | 2001-10-18 | 2003-04-24 | Michael Slocombe | Content request routing and load balancing for content distribution networks |
US20040215823A1 (en) * | 2002-06-28 | 2004-10-28 | Kleinfelter Kevin P. | System and method for reducing DNS lookup traffic in a computer data network |
US20040103194A1 (en) * | 2002-11-21 | 2004-05-27 | Docomo Communicatios Laboratories Usa, Inc. | Method and system for server load balancing |
US20040249939A1 (en) * | 2003-05-23 | 2004-12-09 | International Business Machines Corporation | Methods and apparatus for dynamic and optimal server set selection |
-
2005
- 2005-06-06 US US11/146,440 patent/US20060277278A1/en not_active Abandoned
-
2006
- 2006-02-15 CN CNA2006100076345A patent/CN1878181A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150442B (zh) * | 2007-10-25 | 2011-02-02 | 杭州华三通信技术有限公司 | 一种bss网络内sta的管理方法和设备 |
CN103957283A (zh) * | 2011-09-29 | 2014-07-30 | 北京奇虎科技有限公司 | 一种域名系统dns的最优应用服务器选取方法和装置 |
CN102438278A (zh) * | 2011-12-21 | 2012-05-02 | 优视科技有限公司 | 移动通信网络的负载分配方法及负载分配装置 |
CN102438278B (zh) * | 2011-12-21 | 2014-07-16 | 优视科技有限公司 | 移动通信网络的负载分配方法及负载分配装置 |
Also Published As
Publication number | Publication date |
---|---|
US20060277278A1 (en) | 2006-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1878181A (zh) | 用于管理dns请求的方法和数据处理系统 | |
CN1151448C (zh) | 可扩缩的超高速缓存检索方法 | |
US7386633B2 (en) | Priority based differentiated DNS processing | |
CN1098488C (zh) | 基于动态时间间隔的负载平衡方法和装置 | |
US6922727B2 (en) | Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network | |
US7478122B2 (en) | Web server system and method | |
CN101699825B (zh) | 网络文件系统访问方法、装置及系统 | |
CN100345415C (zh) | 在存储区域网络上执行启动、维护和安装操作的方法和设备 | |
CN1520556A (zh) | 使用本地标识符的端节点分区 | |
EP1402364B1 (en) | Method and apparatus for wide-spread distribution of electronic content in a peer to peer fashion | |
US20040054793A1 (en) | System and method for high performance shared web hosting | |
EP2108228B1 (en) | Method, apparatus, and computer program for data upload in a computing system | |
US20060277303A1 (en) | Method to improve response time when clients use network services | |
JP2002169694A (ja) | ネットワーク上のpxeクライアントにdhcpサーバを介してブート・サーバを自動的に割り当てる方法とシステム | |
CN1878107A (zh) | 网格许可服务器和容错网格系统及使用方法 | |
CN1534949A (zh) | 用于获取网格中的状态信息的方法和设备 | |
CN101035123A (zh) | 生成cookie的方法和系统 | |
CN1701315A (zh) | 数据库访问控制方法、控制装置及代理处理服务器装置 | |
US8661138B2 (en) | Group based allocation of network bandwidth | |
US20040158637A1 (en) | Gated-pull load balancer | |
US7155727B2 (en) | Efficient data buffering in a multithreaded environment | |
US20020194338A1 (en) | Dynamic data buffer allocation tuning | |
US11102139B1 (en) | Shared queue management utilizing shuffle sharding | |
CN1475927A (zh) | 保证服务供应商所推荐的服务的可用性的方法和系统 | |
CN1452081A (zh) | 服务器、本地服务器访问系统和访问控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |