CN1791020A - 用于多层网络中的数据排队优先级区分的方法和系统 - Google Patents
用于多层网络中的数据排队优先级区分的方法和系统 Download PDFInfo
- Publication number
- CN1791020A CN1791020A CNA200510124671XA CN200510124671A CN1791020A CN 1791020 A CN1791020 A CN 1791020A CN A200510124671X A CNA200510124671X A CN A200510124671XA CN 200510124671 A CN200510124671 A CN 200510124671A CN 1791020 A CN1791020 A CN 1791020A
- Authority
- CN
- China
- Prior art keywords
- priority
- data
- client
- server
- network
- 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
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种用于在多层网络系统中进行数据优先级区分的方法、计算机程序产品和数据处理系统。具有多个处理器的服务器从客户端接收数据。然后,识别客户端的优先级。响应于识别优先级,将数据排入与该多个处理器的第一处理器相关联的第一多个队列中的一个队列。该队列是与第一处理器相关联的多个队列之一,并且与该优先级相关联。
Description
相关申请
本申请与共同转让且共同未决的下列申请相关:发明名称为“SYSTEM AND METHOD FOR REQUEST PRIORITY TRANSFERACROSS NODES IN A MULTI-TIER DATA PROCESSING SYSTEMNETWORK”的美国专利申请序列号__(律师事务所案号AUS920040470US1);以及发明名称为“SYSTEM AND METHOD FORCONNECTION CAPACITY REASSIGNMENT IN A MULTI-TIER DATAPROCESSING SYSTEM NETWORK”的美国专利申请序列号__(律师事务所案号AUS920041049US1),在此将这两个申请引作参考。
技术领域
本发明一般涉及一种改进的数据处理系统,具体涉及一种用于在多层网络系统中进行数据队列优先级区分(prioritization)的机制。更具体地说,本发明提供一种用于基于每个处理器而对在连网数据处理系统中经过优先级区分的客户端数据进行排队的机制。另外,本发明提供一种用于在多层网络中在网络层动态调整中间层与后端数据服务器之间的持久性连接的优先级的机制。
背景技术
用于对网络业务(traffic)进行排队和过滤的各种连网数据处理系统业务控制方案用于提供服务级别协定(SLA)业务优先级区分。例如,Linux网络栈具有用于业务控制的基础结构,其具有排队规程(queuingdiscipline,qdisc)和过滤器。qdisc的分级结构可以与类分级结构联合构造,以支持服务质量(QoS)特性。业务可以通过采用与分组首标域相匹配的过滤器而被传递(route)到不同的类。
对于接收侧,即多层网络中的服务器侧,基于连接而提供优先级区分。例如,当建立进入连接时,可以基于一个或多个优先级过滤器而对该连接进行优先级区分,以将该连接排入分配给不同优先级类的多个队列之一。然而,这样的排队机制依赖于连接优先级区分。例如,在使用传输控制协议/网际协议(TCP/IP)的网络中,在完成典型地被称作三向握手的三阶段处理之后建立连接。在这样的系统中,优先级区分局限于基于客户端优先级级别以及例如诸如业务负载的网络计量(metrics)而准予或拒绝连接。
在仅在连接级强制优先级区分的实现中,当同时服务多个优先级客户端时,根据进入连接的到达来强制优先级。例如,如果连接的到达是高和低优先级连接的混合,则在服务低优先级连接之前服务高优先级连接。然而,在建立了连接之后,则毫无区别地对待所有连接。
另外,SLA业务优先级区分有时可能导致低效利用总体网络系统传送容量。例如,网络系统传送容量可以被划分成分别分配给不同业务优先级类的容量。在一个业务优先级类经受重负载的情况下,分配给该业务优先级类的网络系统容量可能变得饱和或耗尽。在第二业务优先级类经受低于分配给第二业务优先级类的容量的业务负载的情况下,第二业务优先级类容量的空闲部分将未被使用,而同时第一优先级类的业务可能由于第一业务优先级类的饱和而被阻止传送。在这样的情形下,总体网络传送容量未被充分利用。
将有利的是,提供一种用于网络级优先级区分的机制,其用于在向具有不同优先级的客户端提供连接性的服务器处提供入站(inbound)业务的SLA优先级区分排队。还将有利的是,提供一种用于在多层网络的多处理器系统中提供网络级优先级区分的机制,其用于基于每个处理器而进行进入业务的优先级排队。还将有利的是,提供一种在以业务数据的SLA优先级区分为特征的网络中更高效地利用网络传送容量的机制。
发明内容
本发明提供了一种用于在多层网络系统中进行数据优先级区分的方法、计算机程序产品和数据处理系统。具有多个处理器的服务器从客户端接收数据。然后,识别客户端的优先级。响应于识别优先级,将数据排入与该多个处理器的第一处理器相关联的第一多个队列中的一个队列。该队列是与第一处理器相关联的多个队列之一,并且与该优先级相关联。
附图说明
被认为是本发明特征的新颖特性在所附权利要求中加以阐述。然而,通过参考下面结合附图阅读的对说明性实施例的详细描述,将最佳地理解本发明本身、以及其优选使用方式及其另外的目的和优点,其中:
图1示出了可以实现本发明优选实施例的多层数据处理系统网络的图示;
图2是根据本发明优选实施例的可以被实现为所示服务器的数据处理系统的方框图;
图3是示出根据本发明优选实施例的可以具有被优先级区分的数据的客户端数据处理系统的方框图;
图4是根据本发明优选实施例的用于在网络级强制数据优先级区分的服务器配置的示意图;
图5是根据本发明优选实施例的用于在多层网络中的多处理器服务器上进行服务级别协定优先级区分的数据队列配置图;
图6是根据本发明优选实施例的在服务器上运行的数据排队例程的流程图;
图7A是根据本发明优选实施例的实现了请求优先级传输的多层网络系统的示意图;
图7B是根据本发明优选实施例的被配置成帮助多层网络中的数据处理优先级区分传输的优先级区分数据队列的示意图;
图7C是示出根据本发明优选实施例的帮助跨越多层数据处理系统网络中的多个节点传输请求优先级类的优先级过滤器的示意图;
图8是根据本发明优选实施例的由优先级过滤器执行以便跨越多层网络中的多个节点传输请求优先级的运行时处理的流程图;
图9A是根据本发明优选实施例的帮助在连接优先级类之间动态再指派连接容量的优先级过滤器的示意图;
图9B是根据本发明优选实施例的在连接优先级类之间再指派连接容量之后图9A所示的优先级过滤器的示意图;
图9C是根据本发明优选实施例的万维网服务器、万维网应用服务器和后端数据库服务器以及它们之间的连接的示意图,其中可以在优先级类之间再指派连接容量;
图9D是根据本发明优选实施例的在执行了优先级类之间的连接容量再指派之后图9C所示的万维网服务器、万维网应用服务器和后端数据库服务器以及它们之间的连接的示意图;
图10是根据本发明优选实施例的用于在不同优先级类之间再指派连接容量的连接优先级再指派例程的流程图;以及
图11是根据本发明优选实施例的用于再分配先前被再指派到另一个连接优先级类的连接容量的连接优先级再分配例程的流程图。
具体实施方式
现在参照附图,图1示出了可以实现本发明的多层数据处理系统网络的图示。网络数据处理系统100是可以实现本发明的计算机网络。网络数据处理系统100包含网络102,其是用来在网络数据处理系统100内连接在一起的各个设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤缆线的连接。在所示例子中,万维网服务器104随同存储单元107一起连接到网络102。另外,客户端108、110和112连接到网络102。这些客户端108、110和112可以例如是个人计算机或网络计算机。在所示例子中,万维网服务器104可以被实现为HTTP服务器,其响应于从例如在客户端108-112上运行的浏览器接收到HTTP请求,向客户端108-112发送网页。另外,万维网服务器104可以向客户端108-112提供除了HTTP数据之外的其它数据,例如应用程序。客户端108、110和112是万维网服务器104的客户端。万维网服务器104与万维网应用服务器105接口和通信。万维网应用服务器105处理发出由客户端108-112发出的请求的浏览器与由数据仓库(data store)106维护的后端应用或数据库之间的应用操作,其中数据仓库106例如为后端数据库系统,其与万维网应用服务器105接口。
网络数据处理系统100可以包括另外的服务器、客户端、以及未示出的其它设备。在所示例子中,网络数据处理系统100是因特网,其中网络102表示使用传输控制协议/网际协议(TCP/IP)协议集相互通信的网络和网关的全球集合。因特网的心脏处是主节点或主机计算机之间的高速数据通信线的中枢,其由成千上万的传递数据和消息的商业、政府、教育和其它计算机系统组成。当然,网络数据处理系统100也可以被实现为多种不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。图1旨在作为示例,而不作为对本发明的架构限制。
参照图2,示出了根据本发明优选实施例的可以被实现为服务器如图1中的万维网服务器104或万维网应用服务器105的数据处理系统的方框图。数据处理系统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扩展槽或内插连接器。与图1中的客户端108-112的通信链路可以通过调制解调器218和网络适配器220来提供,其中调制解调器218和网络适配器220通过内插连接器连接到PCI本地总线216。
另外的PCI总线桥222和224为另外的PCI本地总线226和228提供接口,由此可以支持另外的调制解调器或网络适配器。以这种方式,数据处理系统200允许连接到多个网络计算机。存储器映射图形适配器230和硬盘232也可以如图所示直接或间接地连接到I/O总线212。
本领域的普通技术人员应当理解,图2所示的硬件可以变化。例如,作为对所示硬件的增添或替代,也可以使用其它外围设备如光盘驱动器等。所示例子不旨在暗含对本发明的架构限制。
图2所示的数据处理系统可以例如是运行高级交互执行(AIX)操作系统或LINUX操作系统的IBM eServer pSeries系统,其是位于纽约、阿芒克的国际商业机器公司的产品。
现在参照图3,示出了可以实现本发明的数据处理系统的方框图。数据处理系统300是客户端计算机如图1所示的客户端108的例子。数据处理系统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”是太阳微系统公司的商标。操作系统、面向对象的编程系统以及应用程序或程序的指令位于存储设备如硬盘驱动器326上,并且可以被装载到主存储器304中,以便由处理器302执行。
本领域的普通技术人员应当理解,图3中的硬件可以根据实现而变化。作为图3所示的硬件的增添或替代,可以使用其它内部硬件或外围设备如快闪只读存储器(ROM)、等效非易失性存储器或光盘驱动器等。另外,本发明的处理可被应用于多处理器数据处理系统。
作为另一个例子,数据处理系统300可以是被配置成是可引导的而不依赖于某种网络通信接口的独立系统。作为另一个例子,数据处理系统300可以是个人数字助理(PDA)设备,其配置有ROM和/或快闪ROM,以便提供非易失性存储器来存储操作系统文件和/或用户生成的数据。
图3所示的例子和上述例子不旨在暗含架构限制。例如,除了采取PDA的形式之外,数据处理系统300也可以是笔记本计算机或手持计算机。数据处理系统300也可以是信息站(kiosk)或万维网设备(webappliance)。
客户端如客户端108发起与万维网服务器104的通信连接。在这里提供的说明性例子中,客户端和服务器之间的通信连接是参考TCP/IP协议集来描述的,但是也可以适宜地将其替换为其它通信协议。本发明的实现不局限于任何特定协议,并且提供所述协议仅仅是为了帮助理解本发明。
图4是根据本发明优选实施例的用于在网络级强制数据优先级区分的服务器配置的示意图。服务器400是数据处理系统如图2所示的数据处理系统200的例子,其提供与具有不同优先级类的客户端的连接性,并且被实现为多处理器数据处理系统。客户端如客户端108将通过首先参加与服务器400的握手来发起与服务器400的通信连接。为了建立连接,客户端将帧402定址到服务器400,并且将帧402施加到网络介质410例如10baseT、100baseT或者其它适合的网络介质。帧402包括各种封装的首标。在本例中,客户端和服务器在因特网上连接,因此帧402包括链路首标402a例如以太网首标、网络层首标402b例如IP首标、以及传输层首标402c例如TCP首标。例如,帧402可以封装同步(SYN)段,其包括具有用于发起与服务器400的握手的声称同步标志的传输层首标402c。服务器400通过网络接口卡420例如以太网卡接收帧402,其中网络接口卡420将帧传达到网络栈430的链路层431例如以太网驱动程序。链路层431从该帧中解封装或解复用IP数据报,并且将IP数据报传给网络栈430的网络层432。网络层432从IP数据报中解复用TCP段,并且将TCP段传给网络栈430的传输层433。
根据本发明的优选实施例,过滤器440另外接收经过解复用的IP数据报,以便对即将发生的连接进行优先级过滤。过滤器440优选地包括用于确定发起了数据的客户端的优先级级别的逻辑装置。例如,过滤器440可以基于从帧402中的网络层首标402b读取的源地址例如IP源地址和端口号而确定客户端的优先级级别。通过比较来自帧402的一个或多个数据值与在过滤器440中编码或者由其访问的预设标准来进行优先级级别的确定。在说明性例子中,过滤器440包括(或者与其接口)表441,其例如根据客户端所订购的服务级别协定(SLA),关联或映射客户端地址例如IP网络地址和与客户端相关联的优先级级别。表441仅仅是说明性的,并且可以适宜地将其替换为关联客户端标识符例如网络地址和优先级级别的各种其它数据结构。如图1所示,客户端108-112具有各自的IP地址IP-A、IP-B和IP-C,并且表441分别将低、低和高的优先级级别与客户端108-112相关联。在识别了客户端优先级之后(或者与之同时),万维网服务器和客户端例如通过完成三向握手而完成连接。根据本发明的优选实施例,根据在客户端与服务器的连接时识别的客户端优先级,基于每个处理器而在网络层对在与客户端建立了连接之后由万维网服务器接收的业务进行优先级过滤。
图5是根据本发明优选实施例的用于在多层网络中的多处理器服务器上进行服务级别协定优先级区分的数据队列配置图。数据队列配置510可以被实现为计算机可读指令,其被存储在存储器如本地存储器209中,并且由处理单元如图2所示的处理器202或204从中取出。在说明性例子中,假定万维网服务器104是包括n个中央处理单元(被指定为CPU0-CPUn)的对称多处理器系统。在说明性例子中,每一个处理器CPU0-CPUn各自具有向其分配的用于双级别优先级区分的两个队列。具体地说,处理器CPU0具有两个队列500a和500b,其用于对由万维网服务器104从具有向其分配的两个优先级级别之一的客户端接收的数据进行双级别优先级区分排队。在本例中,队列500a被分配用于从具有第一(max)优先级的客户端接收的数据,而队列500b被分配用于从具有低(max-1)优先级的客户端接收的帧。在说明性例子中,示出了每处理器两优先级队列。然而,在本例中提供的双级别优先级区分仅是说明性的,并且选择其是为了帮助理解本发明,并且可以将所示配置替换为任意数目的处理器队列和对应的客户端优先级级别。
以类似的方式,万维网服务器内的其它处理器具有类似配置的队列。在说明性例子中,处理器CPU1具有队列501a和队列501b,其中队列501a被分配用于从高优先级客户端接收的数据,而队列501b被分配用于从低优先级客户端接收的数据。同样地,处理器CPUn具有被分配用于从高和低优先级客户端接收的各自数据的队列502a-502b。
图6是根据本发明优选实施例的在服务器如图4所示的服务器400上运行、向客户端提供经过优先级区分的服务的数据排队例程的流程图。图6所示的优先级排队例程在例如图4所示的网络栈430内的网络层执行。该例程开始并且等待数据的接收。当接收到数据(步骤602)时,例如通过评测网络层首标402b中的目的地址,进行评测以确定数据的目标是该接收系统(步骤604)。在数据不发向该接收系统的情况下,将数据丢到位桶(bit bucket)中,或者丢弃它(步骤606),并且数据排队例程循环结束(步骤626)。
再次回到步骤604,在数据发向该接收系统的情况下,则进行评测,以确定数据是否包括现有连接的业务(步骤607)。例如,可以读取数据的源地址和端口号,并且与现有连接套接字进行比较。如果数据不是现有连接的一部分,则识别发起了数据的客户端的优先级级别,并且建立与客户端的连接(步骤609)。然后,数据排队例程循环根据步骤626结束。
再次回到步骤607,如果数据是现有连接的业务,则进行评测,以确定数据是否与系统CPU中的任一个具有姻亲关系(affinity)(步骤608)。如这里所提到的那样,当处理器或者与处理器相关联的资源如高速缓存系统等保存了处理数据所需的数据如上下文数据时,则认为该数据与该处理器具有姻亲关系。如果数据被识别为与系统处理器中的任一个具有姻亲关系,则识别数据的优先级(步骤610)。例如,可以读取网络层首标402b的源地址,并且将其与由图4所示的过滤器440定义或访问的预定义标准进行比较,其中该标准关联源地址和优先级级别。然后,进行优先级的评测(步骤612)。在步骤612数据优先级被评测为低的情况下,将数据放置在该帧被识别为与其具有姻亲关系的处理器的低优先级队列中(步骤614),然后优先级区分例程循环根据步骤626结束。可选地,如果在步骤612数据被评测为高优先级数据,则将数据放置在该数据被识别为与其具有姻亲关系的处理器的低优先级队列中(步骤616)。然后,优先级区分例程循环根据步骤626结束。
再次回到步骤608,如果数据不被识别为与任何系统处理器具有姻亲关系,则检查帧的优先级级别(步骤618),然后,进行评测,以确定数据是否来源于具有低优先级的客户端(步骤620)。如果确定了数据来源于具有低优先级的客户端,则选择一个CPU,并且将数据放置在所选CPU的低优先级队列中(步骤624)。例如,可以通过循环选择例程进行CPU选择以便对数据进行排队。可以适宜地将其替换为其它调度机制。一旦将数据放置在CPU的低优先级队列中,则优先级区分例程循环根据步骤626结束。
再次回到步骤620,在数据被识别为来源于高优先级客户端(也就是,在步骤620,客户端优先级未被识别为低优先级)的情况下,例如通过选择在其各自的高优先级队列中具有最低任务数的处理器,将数据放置在系统处理器之一的高优先级队列中(步骤622)。然后,优先级区分例程循环根据步骤626结束。
然后,基于队列优先级从处理器队列检索数据,以便跨越网络传送数据。例如,根据数据优先级区分,也就是,以相对于较低优先级请求向较高优先级请求提供处理优先权的方式,将在图1所示的万维网服务器104处基于每个处理器而排队的数据从万维网服务器104传送到万维网应用服务器105,其中该数据包括要在数据仓库106上执行的数据库事务。
这样,根据客户端优先级类进行在多层网络中部署的多处理器数据处理系统中处理事务的期间的数据传送。通过在TCP/IP网络栈中的数据队列级允许多个排队机制,并且关联连接优先级和数据优先级,确保了较高优先级客户端的请求在较低优先级客户端之前被服务。
根据本发明的另一个实施例,提供了一种用于在多层网络系统中的节点之间扩展或传输请求优先级的机制。图7A是根据本发明优选实施例的实现了数据优先级传输的多层网络系统的示意图。在说明性例子中,被实现为HTTP服务器的万维网服务器704响应于从客户端708和709接收到HTTP请求而通过各自的客户端连接710和711向客户端708和709发送网页或其它数据。另外,万维网服务器704可以向客户端708和709提供除了HTTP数据之外的其它数据,例如应用程序。万维网服务器704与万维网应用服务器705接口和通信。万维网应用服务器705处理发出由客户端708和709发出的请求的浏览器与后端应用或数据库如后端数据库服务器706之间的应用操作,其中后端数据库服务器706与万维网应用服务器705接口,并且执行数据库702上的数据库事务。
一般而言,将客户端708和709与万维网服务器704之间的各自连接710和711建立为动态或短期连接。分别互连万维网服务器704与万维网应用服务器705以及万维网应用服务器705与后端数据库服务器706的连接715a-715b和720a-720b是持久性连接。根据本发明的优选实施例,如上所述由万维网服务器704识别在万维网服务器704处接收的由客户端提交的事务请求的优先级。然后,将该优先级传播到与后端数据库服务器706的持久性连接。为此,在与万维网应用服务器705建立持久性连接715a-715b的期间,万维网服务器704向连接715a-715b分配优先级。同样地,在与后端数据库服务器706建立持久性连接720a和720b的期间,万维网应用服务器705向连接720a和720b分配优先级。在说明性例子中,每个连接715a-715b和720a-720b代表一个或多个类似连接。例如,连接715a可以被实现为各自地被分配(或者共同地被分配)了共同优先级的多个连接的池。在本例中,连接715a和720a分别代表一个或多个具有第一优先级类即高(HI)的连接,而连接715b和720b分别代表一个或多个具有第二较低优先级类即低(LO)的连接。
通过跨越处理客户端请求所涉及的所有节点传输或扩展优先级处理来提供经过优先级区分的客户端请求处理。处理事务所涉及的每个节点例如万维网服务器704、万维网应用服务器705和后端数据库服务器706在处理数据时提供优先权。例如,当从客户端接收到数据时,万维网服务器704例如通过上面关于图4所述的机制而识别客户端数据的优先级。然后,根据与由万维网服务器704识别的客户端优先级级别相对应的数据优先级,在万维网服务器704处对数据进行排队和处理。例如,假定万维网服务器704接收到要由后端数据库服务器706处理的、来自高优先级客户端的事务请求的高优先级数据,以及要由后端数据库服务器706处理的、来自低优先级客户端的事务请求的低优先级数据,并且对其进行了排队。由于提供给高优先级客户端的处理优先权,因此在传送低优先级数据之前将高优先级数据传送到万维网应用服务器705。接下来,万维网应用服务器705根据客户端数据优先级处理从万维网服务器704接收的数据。根据本发明的一个实施例,万维网应用服务器705根据在万维网应用服务器705处接收数据的连接对数据进行优先级处理。在说明性例子中,通过高优先级连接715a由万维网应用服务器705接收的数据被放置在优先级过滤器731(或者与其接口)的高优先级队列731a中,而通过低优先级连接715b由万维网应用服务器接收的数据被放置在优先级过滤器731(或者与其接口)的低优先级队列731b中。从而,由万维网服务器704以高于低优先级数据的优先权处理和传送的高优先级数据同样地被万维网应用服务器705提供了处理优先权。接下来,万维网应用服务器705以高于低优先级数据的优先权将高优先级数据传送到后端数据库服务器706。这样,后端系统(本例中的后端数据库服务器706)可以以高于较低优先级数据的优先权对高优先级数据进行排队和处理。在说明性例子中,后端数据库服务器706将高优先级数据放置在过滤器707(或者与其接口)的高优先级队列707a中,而将低优先级数据放置在优先级过滤器707(或者与其接口)的低优先级队列707b中。这样,通过配置每个节点以便基于接收数据的连接而识别数据优先级,跨越多层数据处理系统网络中的事务处理所涉及的每层提供经过优先级区分的处理。
在多层网络700中反向地提供处理数据的优先级。也就是,由万维网应用服务器705通过高优先级类连接720a从后端数据库服务器706接收的数据(例如,通过后端数据库服务器706执行数据库事务而得到的返回数据)被万维网应用服务器705提供了高于通过低优先级类连接720b接收的事务的处理优先权。同样地,由万维网服务器704通过高优先级连接715a从万维网应用服务器705接收的数据被提供了高于由万维网服务器704通过低优先级连接715b从万维网应用服务器705接收的数据的处理优先权。这样,在事务请求和事务返回消息传递期间,在多层网络700中提供了事务处理的优先级区分。
现在参照图7B,示出了根据本发明的优选实施例的被配置成帮助多层网络中的数据处理优先级区分传输的优先级区分数据队列的示意图。数据队列760a-760b可被实现为计算机可读指令,其被存储在存储器如本地存储器中、并且由被部署为多层网络700中的前端节点的服务器系统的处理单元从中取出。数据队列760a-762b优选地在优先级过滤器如由万维网服务器704运行的优先级过滤器730内实现,或者与其接口。数据队列760a-762b是针对每个处理器的数据队列的例子,如图5所示的队列500a-500b,其用于如上所述的帧级数据排队。
在本例中,高优先级队列760a、761a和762a被逻辑映射到高优先级连接715a,而低优先级队列760b、761b和762b被逻辑映射到低优先级连接715b。用于关联各个队列760a-762b与具有特定优先级的连接的逻辑映射770a-772b可以例如通过链接表、关系数据库或者任何其它适合的数据结构实现。这样,要被传送到万维网应用服务器705的在高优先级队列760a-762a中排队以便通过高优先级连接715a传送的数据被提供了高于在低优先级队列760b-762b中排队以便通过低优先级连接715b传送的数据的优先权。在说明性例子中,示出了两个优先级类的队列和连接。然而,在本例中提供的双级别优先级区分仅仅是说明性的,并且选择其是为了帮助理解本发明,并且可以将所示配置替换为任意数目的队列和连接优先级级别。
为了帮助跨越多层网络700的多个节点传输处理优先级,在处理事务所涉及的每个节点中实现优先级过滤器。现在参照图7C,示出了根据本发明的优选实施例的将客户端连接映射到后端连接以便跨越多层数据处理系统网络中的多个节点传输优先级类的优先级过滤器的示意图。优先级过滤器731优选地被实现为一组计算机可读指令,并且可以在运行优先级过滤器731的主机服务器例如万维网应用服务器705的网络栈中实现,或者与其接口。
在中间节点即接收要被处理的数据并且必须将数据转发到多层网络700中的另一个节点的节点中,通过前端和后端服务器地址之间的逻辑映射来帮助优先级类的传输。在说明性例子中,万维网应用服务器705具有通过其可以与万维网服务器704进行前端连接的两个网络地址,即IP地址9.3.192.7和9.3.192.9,并且万维网应用服务器705具有通过其可以与后端数据库服务器706进行后端连接的两个网络地址,即IP地址9.3.190.7和9.3.190.9。根据本发明的实施例,通过经过优先级区分的连接之间的映射,经由多层网络700的中间服务器,将优先级类从请求实体传输到目标实体。为此,万维网应用服务器前端地址和后端地址之间的关联由过滤器731定义。在说明性例子中,表740定义了由万维网应用服务器705例如从代表客户端708和709的万维网服务器704接收数据的前端(目的)地址、以及这些前端地址的对应优先级。具体地说,表740的记录741为由万维网应用服务器705接收的、具有目的地址9.3.192.7的请求定义高优先级类,并且表740的记录742为由万维网应用服务器705接收的、具有目的地址9.3.192.9的请求定义低优先级类。另一个表750定义万维网应用服务器705与后端数据库服务器706连接的源(后端)地址、以及这些后端地址的对应优先级。具体地说,表750的记录751为通过万维网应用服务器源地址9.3.190.7与后端数据库服务器706建立的连接定义高优先级类,并且表750的记录752为通过万维网应用服务器源地址9.3.190.9与后端数据库服务器706建立的连接定义低优先级类。这样,当识别出由万维网应用服务器705接收的数据的优先级时,可以通过在具有对应优先级的连接上发送该请求而将请求优先级传输到后端数据库。例如,假定数据库查询请求由客户端708发出,并且由万维网应用服务器705从万维网服务器704接收。分析该请求,以确定该请求被定向的目的地址。当识别出该请求的目的地址时,基于目的地址与优先级类的关联而确定该请求的优先级。可选地,可以通过由万维网应用服务器705接收数据的连接来识别请求优先级。例如,万维网应用服务器705可以简单地将在连接715a上接收的任何数据识别为高优先级数据,并且将在连接715b上接收的任何数据识别为低优先级数据。
当识别出数据优先级时,则识别与所确定的优先级类相对应的源地址,并且通过具有对应优先级的源地址将该请求传达到后端服务。
作为例子,假定通过万维网服务器704将来自客户端708的请求发送到万维网应用服务器705,以及万维网服务器704通过将请求定址到万维网应用服务器705的低优先级前端地址(9.3.192.9)而与万维网应用服务器705连接。例如,在将客户端708识别为具有低优先级SLA之后,万维网服务器704可以在端接于万维网应用服务器705的低优先级前端地址的低优先级连接715b上与万维网应用服务器705连接。这样的对客户端708的识别可以由识别客户端优先级SLA的过滤器机制例如在图4中示出和描述的过滤器441进行。当万维网应用服务器接收到请求数据时,将该请求提供给优先级过滤器731,并且读取由万维网应用服务器705接收数据的前端地址。在本例中,优先级过滤器731读取该请求被定址的万维网应用服务器705的前端地址,并且通过在记录742中定义的前端目的地址与优先级关联将该请求识别为低优先级地址。
当将该请求识别为低优先级请求时,万维网应用服务器705则将该请求传达到后端数据库服务器706。具体地说,万维网应用服务器705在该请求中包括低优先级源地址(9.3.190.9),并且将该请求提供给低优先级连接720b,以便传达到后端数据库服务器706。
从而,通过在后端数据库服务器706中实现根据请求优先级对请求进行排队的优先级过滤器,后端数据库服务器706可以根据预定义的优先级类来处理请求,其中该优先级类最初在多层网络700的前端节点例如万维网服务器704处识别出,并且通过将事务请求传达到后端数据库服务器706所涉及的每个节点传播。在说明性例子中,后端数据库服务器706包括优先级过滤器707,其向在高优先级连接720a上接收的请求提供高于在低优先级连接720b上接收的请求的优先权。具体地说,优先级过滤器707包括高优先级队列707a和低优先级队列707b,或者与其接口,其中在相应的高优先级连接720a和低优先级连接720b上接收的请求被排入高优先级队列707a和低优先级队列707b。从而,可以根据在数据处理系统网络中的多层之间传输的优先级分类来执行在后端数据库服务器706处接收的请求的处理。
图8是根据本发明优选实施例的由优先级过滤器执行以便跨越数据处理系统网络中的多个节点根据请求优先级来传输请求的运行时处理的流程图。在流程图800中示出的运行时例程处理优选地由被实现为过滤器如优先级过滤器730的计算机可读指令实现,其中该过滤器由数据处理系统如万维网应用服务器705处理,并且用来从优先级区分队列中调度排队数据。
运行时优先级过滤器例程例如在系统引导或者其它调用时开始,并且等待接收请求如数据库事务请求或者其它后端服务事务。当接收到请求(步骤802)时,例如,当从队列中调度时,由优先级过滤器进行请求优先级的评测(步骤804)。具体地说,对该请求进行评测,以确定该请求是否是低优先级请求。在该请求被评测为低优先级请求的情况下,运行时优先级过滤器例程前进到评测是否存在用于低优先级请求的连接(步骤806)。如果不存在低优先级连接,则建立一个(步骤808),然后该例程继续到在新建立的低优先级连接上发送该请求(步骤810)。如果在步骤806,确定了已经存在低优先级连接,例如图7A中的低优先级连接720b,则运行时优先级过滤器例程继续到根据步骤810在低优先级连接上发送该请求。在通过低优先级连接发送该请求之后,运行时优先级过滤器循环则完成(步骤818)。
再次回到步骤804,如果该请求未被评测为低优先级请求,则进行评测,以确定是否存在高优先级连接(步骤812)。如果不存在高优先级连接,则建立一个(步骤814),然后该例程继续到在新建立的高优先级连接上发送该请求(步骤816)。如果在步骤812,确定了已经存在高优先级连接,例如高优先级连接720a,则运行时优先级过滤器例程继续到根据步骤816在该高优先级连接上发送该请求。在通过高优先级连接发送该请求之后,运行时优先级过滤器循环则根据步骤818完成。
这样,通过在后端服务处例如在过滤器707中实现数据优先级区分,可以在多层网络中向具有不同优先级的客户端提供数据处理优先级。例如,过滤器707可以包括高优先级队列707a和低优先级队列707b,以便向在高优先级连接720a和低优先级连接720b上接收的数据提供处理优先权。
应当理解,双优先级请求过滤和优先级传输的例子仅仅是说明性的,并且本发明的教导可以扩展到具有任意数目的请求优先级类的系统。
正如所述,本发明的实施例提供了用于跨越数据处理系统网络中的多个节点传输请求优先级的机制。通过跨越数据处理系统网络中的多个节点传输请求优先级,在多层数据处理系统网络中传达或处理事务所涉及的任何节点中确保了请求处理的优先权。
根据本发明的另一个实施例,两个网络节点之间的连接可以具有动态再指派的优先级,以便帮助高效利用网络传送容量。再次参照图7A和7B,高优先级连接715a和720a优选地包括多个各自的连接,其通信性地连接万维网服务器704与万维网应用服务器705以及万维网应用服务器705与后端数据库服务器706,用于在它们之间传达被分类为高优先级的数据。低优先级连接715b和720b优选地包括多个连接,其通信性地连接万维网服务器704与万维网应用服务器705以及万维网应用服务器705与后端数据库服务器706,用于在它们之间传达被分类为低优先级的数据。也就是,高优先级连接720a和低优先级连接720b中的每一个包括高和低优先级的各自连接池。
高优先级连接715a和720a以及低优先级连接715b和720b的数目受限于网络基础结构容量,例如端接高优先级连接715a和720a以及低优先级连接715b和720b的特定网络接口卡、万维网应用服务器705和后端数据库服务器706的各自处理容量等。这样,分配给高优先级连接715a和720a以及低优先级连接715b和720b的有限连接数可以分别被定义为表示可以由此支持的最大同时连接数。
根据本发明的优选实施例,可以在连接优先级类之间动态地再指派连接,以便帮助优化利用服务经过优先级区分的数据传输的多层网络中的网络传送容量。在优选实施例中,优先级过滤器可以基于优先级而定义最大连接数。例如,在高优先级连接715a上可同时维持的最大连接数以及在低优先级连接715b上可同时维持的最大连接数可以在由万维网服务器704运行的优先级过滤器730中以及在由万维网应用服务器705运行的优先级过滤器731中定义。同样地,在高优先级连接720a上可同时维持的最大连接数以及在低优先级连接720b上可同时维持的最大连接数可以在由万维网应用服务器705运行的优先级过滤器731中以及在后端数据库服务器过滤器707中定义。
如这里所提及的那样,可以在一组具有共同优先级的连接上维持的最大连接数被称作连接容量。根据本发明的优选实施例,具有第一优先级的连接的容量的一部分可以被再指派到具有另一个优先级的连接的容量,以帮助优化多层网络系统中的网络传送容量。例如,如果正被用于事务传送的高优先级连接的数目超过饱和阈值,其中该饱和阈值是总可用高优先级连接的预定义部分,则可以尝试将低优先级连接的子集再指派到高优先级连接。将低优先级连接的子集再指派到高优先级连接优选地视以下情况而定,即正被用于低优先级数据传送的低优先级连接的数目低于空闲阈值,其中该空闲阈值是总可用低优先级连接的预定义部分。也就是,如果足够的低优先级连接容量空闲或者未被使用,则可以进行对低优先级连接容量的一部分的再指派。这样,在高优先级连接上正被传输的高优先级数据量接近高优先级连接的容量的情况下,可以通过将被指定为低优先级的连接再指派到高优先级连接池来增大高优先级连接的容量。将低优先级连接再指派到高优先级连接例如可以通过将低优先级连接的子集再指定为高优先级连接来进行。
现在参照图9A,示出了根据本发明优选实施例的帮助在连接优先级类之间动态再指派连接容量的优先级过滤器或者其模块的示意图。优先级过滤器950优选地被实现为一组计算机可读指令,并且可以在运行优先级过滤器950的主机服务器的网络栈中实现,或者与其接口。优先级过滤器950是由端接网络连接的网络节点运行的优先级过滤器的例子,如图7A和7B所示的优先级过滤器730。
在本例中,优先级过滤器950由具有两个网络地址的服务器运行,其中通过这两个网络地址可以与另一个网络节点进行连接。具体地说,优先级过滤器950表示由图7所示的万维网服务器704运行的优先级过滤器,其中万维网服务器704与万维网应用服务器705建立连接。在说明性例子中,优先级过滤器950被实现为具有记录951和952的表,这两个记录分别定义了两个IP地址9.3.194.7和9.3.194.9,运行优先级过滤器950的网络节点通过其与万维网应用服务器705建立各自的高和低优先级连接715a和715b。另外,在记录951和952中定义了以各自的地址建立的连接的容量。在说明性例子中,过滤器950的记录951为要在具有源地址9.3.194.7的连接上传送的数据事务定义高优先级类,并且过滤器950的记录952为要在具有源地址9.3.194.9的连接上传送的数据事务定义低优先级类。在图9A所示的过滤器配置中,高优先级连接和低优先级连接中的每一个分别被分配了100的连接容量。一般而言,分配给高优先级连接和低优先级连接的连接容量包括运行优先级过滤器950的网络节点的总体传送容量的子集或部分。连接容量可以例如包括连接池中的连接数、连接介质上的逻辑信道数等。这样,在所示配置中,高优先级连接和低优先级连接中的每一个具有相等的容量用于传送高和低优先级类的各自数据。
根据本发明的优选实施例,可以将一个连接优先级类的容量再指派到另一个连接优先级类。例如,可以在识别预定义的网络计量如在各个高和低优先级连接上识别的业务负载时进行再指派。例如,假定相对于低优先级客户端的大量高优先级客户端正在与万维网服务器704连接。这样,端接于源地址9.3.194.7的高优先级连接将经受较高负载,而端接于源地址9.3.194.9的低优先级连接将经受较低负载。在这样的情形下,将低优先级连接的容量动态再指派到高优先级连接。
图9B是在将连接容量从低优先级连接优先级类再指派到高优先级连接容量类之后图9A所示的优先级过滤器950的示意图。在说明性例子中,原始连接容量(100)的一半(50)从低优先级连接已被再指派到高优先级连接,从而导致150的高优先级连接容量和50的低优先级连接容量。优选地,优先级过滤器包括监测请求与万维网服务器704连接的客户端的连接优先级的业务评测模块,或者与其接口。例如,优先级过滤器730可以包括用于累积(accumulate)表示高和低优先级客户端的相对负载的业务计量的模块。
为了帮助连接容量再指派,将再指派传播到多层网络中的每个节点。例如,当检测到导致万维网服务器704将低优先级连接容量再指派到高优先级连接容量的业务状态时,万维网服务器704向万维网应用服务器705发出再指派命令,从而引导万维网应用服务器705根据容量再指派而配置高优先级连接715a和低优先级连接715b的端接。在上面参照图9A和9B提供的例子中,万维网服务器704将向万维网应用服务器705发出再指派指示,其引导万维网应用服务器705将端接于万维网应用服务器高优先级地址9.3.192.7的高优先级连接的容量增大50个连接,并且将端接于万维网应用服务器低优先级地址9.3.192.9的低优先级连接的容量减小50个连接。
以类似的方式,万维网应用服务器705增大互连万维网应用服务器705与后端数据库服务器706的高优先级连接720a的容量,并且减小互连万维网应用服务器705与后端数据库服务器706的低优先级连接720b的容量。将低优先级连接720b的容量再指派到高优先级连接720a优选地以与在万维网服务器704和万维网应用服务器705之间进行的再指派成对应比例的方式执行。以同样的方式,万维网应用服务器705向后端数据库服务器706发出指示,以便根据在万维网应用服务器705进行的再指派来配置高优先级连接720a和低优先级连接720b的端接。这样,响应于由此检测的业务状态而在万维网服务器704处调用的连接容量再指派通过中间节点传播到后端数据库服务器706。
图9C是在再指派连接容量之前的万维网服务器704、万维网应用服务器705和后端数据库服务器706以及它们之间的连接的示意图。在说明性例子中,连接715a-715b和720a-720b中的虚线各自代表50的连接容量。从而,高优先级连接715a和720a中的每一个被配置了100的连接容量。如在图9D中示意性地示出的那样,在上述示例性再指派之后,50的连接容量从低优先级连接715b已被再指派到高优先级连接715a,并且从低优先级连接720b已被再指派到高优先级连接720a。
现在参照图10,示出了根据本发明优选实施例的用于在不同优先级类之间再指派连接的连接优先级再指派例程的流程图。图10所示的连接优先级再指派例程优选地被实现为计算机可读指令,其被实现为由多层网络系统中的数据处理系统如图7所示的万维网服务器704处理的优先级过滤器,或者与其接口。
连接优先级再指派例程例如在系统引导或者由用户如系统管理员调用时开始,并且测量高优先级连接负载(步骤1002)。可以作为在高优先级连接如图7所示的高优先级连接715a上正被使用的当前连接数、在万维网服务器704处对在预定义的间隔上接收的高优先级客户端请求的数目的测量,或者通过其它适合的用于识别经过优先级区分的业务负载的机制来确定高优先级连接负载。可选地,高优先级连接负载可以是与万维网服务器704的管理员签定了SLA的高优先级客户端的计数。
然后,将高优先级连接负载与饱和阈值进行比较(步骤1004)。饱和阈值是定义这样的高优先级连接负载级别的值,其中,在该级别,将尝试从另一个连接优先级级别增加另外的高优先级连接容量。如果高优先级连接负载不超过饱和阈值,则连接优先级再指派例程结束(步骤1016)。然而,如果确定了高优先级连接负载级别超过饱和阈值,则测量低优先级连接负载(步骤1006)。例如,可以通过读取低优先级连接的当前负载、在预定义的间隔上测量低优先级连接的平均负载、对具有由万维网服务器704服务的低优先级SLA的客户端进行计数,或者通过其它适合的机制来进行低优先级连接负载的测量。
然后,将低优先级连接负载与空闲阈值进行比较(步骤1008)。空闲阈值是定义这样的低优先级连接负载级别的值,其中,在该级别之下,可以将低优先级连接的容量再指派到高优先级连接,而不会过度地影响低优先级连接的传送性能。例如,空闲阈值可以被定义为总体低优先级连接容量的百分之十五。这样,如果低优先级连接的当前负载级别小于低优先级连接容量的百分之十五,则可以将低优先级连接容量的一部分再指派到高优先级连接。
如果在步骤1008确定了低优先级连接负载不小于空闲阈值,则连接优先级再指派例程评测是否达到了对高优先级连接的资源限制(步骤1009)。如果达到了对高优先级连接的资源限制,则连接优先级再指派例程根据步骤1016结束。如果在步骤1009确定了未达到资源限制,则可以将未被指派到任何连接优先级级别的附加容量增加到高优先级连接(步骤1011)。然后,进行评测,以确定是否存在另外的下游节点(步骤1013)。如果不存在下游节点,则连接优先级再指派例程循环根据步骤1016结束。如果存在下游节点,则向下游节点发出向高优先级连接增加附加容量的指示(步骤1015),然后连接优先级再指派例程循环根据步骤1016结束。
再次回到步骤1008,如果在步骤1008确定了低优先级连接负载小于空闲阈值,则连接优先级再指派例程循环将低优先级连接容量的一部分再指派到高优先级连接容量(步骤1010)。然后,进行评测,以确定是否存在另一个的下游节点要根据连接容量再指派而再配置(步骤1012)。如果不存在下游节点,则连接优先级再指派例程循环根据步骤1016结束。如果在步骤1012确定了存在下游节点,则该节点向下游节点发出引导下游节点根据连接容量再指派而再配置连接的指示(步骤1014),然后,连接优先级再指派例程循环根据步骤1016结束。
现在参照图11,示出了根据本发明优选实施例的用于再分配先前被再指派到另一个连接优先级类的连接容量的连接优先级再分配例程的流程图。图11所示的连接优先级再分配例程优选地被实现为计算机可读指令,其被实现为由多层网络系统中的数据处理系统如图7所示的万维网服务器704处理的优先级过滤器,或者与其接口。
连接优先级再分配例程例如在系统引导或者由用户如系统管理员调用时开始,并且评测是否有任何低优先级连接容量先前已被再指派到高优先级连接容量(步骤1102)。如果没有任何低优先级连接容量先前已被再指派到高优先级连接容量,则连接优先级再分配例程循环结束(步骤1114)。如果确定了有任何低优先级连接容量先前已被再指派到高优先级连接容量,则进行低优先级连接负载的测量(步骤1104)。
然后,进行评测,以确定低优先级连接是否超过最小备用容量阈值(步骤1106)。如这里所提及的那样,最小备用容量阈值定义要将先前被再指派的低优先级连接容量(或者其一部分)再分配到低优先级连接容量的低优先级连接负载级别。如果低优先级连接负载不超过最小备用容量阈值,则连接优先级再分配例程循环根据步骤1114结束。如果在步骤1106确定了低优先级连接负载超过最小备用容量阈值,则将先前被再指派到高优先级连接容量的低优先级连接容量(或者其一部分)再分配到低优先级连接容量(步骤1108)。然后,进行评测,以确定是否存在另一个下游节点要根据连接容量再分配而再配置(步骤1110)。如果不存在下游节点,则连接优先级再分配例程循环根据步骤1114结束。如果在步骤1110确定了存在下游节点,则该节点向下游节点发出引导下游节点根据连接容量再分配而再配置连接的指示(步骤1112),并且连接优先级再分配例程循环根据步骤1114结束。
正如所述,本发明提供了一种用于将连接容量从一个优先级类再指派到另一个优先级类的机制,以便帮助优化利用多层网络中的传送容量。当一个优先级类的连接容量接近饱和时,可以将备用的容量从另一个类再指派到接近饱和的优先级类,并且贯穿多层网络传播连接容量再指派。另外,提供了用于将先前被再指派的连接容量再分配到最初从其再指派该容量的优先级类的连接的机制。
值得注意的是,虽然本发明是在全功能数据处理系统的上下文中描述的,但是本领域的普通技术人员应当理解本发明的处理能够以包含指令的计算机可读介质的形式和各种形式来分发,并且本发明与实际上用来执行分发的信号承载介质的具体类型无关地同等适用。计算机可读介质的例子包括诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM的可记录型介质和诸如数字和模拟通信链路、采用各种传输形式例如射频和光波传输的有线或无线通信链路的传输型介质。计算机可读介质可以采取为在特定数据处理系统中实际使用而译码的编码格式的形式。
本发明的描述是为了示例说明和描述的目的而提供的,而不旨在是穷举性的或者将本发明局限于所公开的形式。对于本领域的普通技术人员而言,很多修改和变动将是显然的。选择和描述实施例是为了最佳地说明本发明的原理、实际应用,并使得本领域的其他普通技术人员能够理解本发明,从而考虑具有各种修改的各种实施例来适用于具体应用。
Claims (20)
1.一种在多层网络系统中提供优先级区分的方法,该方法包括以下计算机实现的步骤:
由服务器从客户端接收数据;
识别该客户端的优先级;以及
响应于识别该优先级,将该数据排入与第一处理器相关联的第一多个队列中的一个队列中,其中该队列与该优先级相关联,并且第一处理器是各自具有多个与其相关联的队列的多个处理器之一。
2.如权利要求1所述的方法,其中由与服务器的网络栈接口的过滤器执行识别步骤。
3.如权利要求1所述的方法,其中数据包括具有客户端地址的封装网际协议数据报。
4.如权利要求1所述的方法,还包括:
响应于接收到数据,评测该数据是否与该多个处理器中的任一个具有姻亲关系。
5.如权利要求4所述的方法,其中响应于确定数据与处理器具有姻亲关系,执行对数据的排队。
6.如权利要求1所述的方法,其中响应于将第一处理器识别为具有该多个处理器的最低负载,执行对数据的排队。
7.如权利要求1所述的方法,其中客户端包括万维网客户端,并且服务器包括万维网服务器。
8.一种用于在多层网络系统中提供优先级区分的计算机程序产品,该计算机程序产品包括:
第一指令,由服务器从客户端接收数据;
第二指令,识别该客户端的优先级;以及
第三指令,响应于第二指令识别该优先级,将该数据排入与第一处理器相关联的第一多个队列中的一个队列中,其中该队列与该优先级相关联,并且第一处理器是各自具有多个与其相关联的队列的多个处理器之一。
9.如权利要求8所述的计算机程序产品,其中第二指令包括与服务器的网络栈接口的过滤器。
10.如权利要求8所述的计算机程序产品,其中数据包括具有客户端地址的封装网际协议数据报。
11.如权利要求8所述的计算机程序产品,还包括:
第四指令,响应于第一指令接收到数据,评测该数据是否与该多个处理器中的任一个具有姻亲关系。
12.如权利要求11所述的计算机程序产品,其中响应于第四指令确定数据与处理器具有姻亲关系,第三指令对数据进行排队。
13.如权利要求8所述的计算机程序产品,还包括:
第四指令,将第一处理器识别为具有低于该多个处理器中的任何其它处理器的负载,其中响应于由第四指令识别第一处理器,第三指令对数据进行排队。
14.如权利要求8所述的计算机程序产品,其中客户端包括万维网客户端,并且服务器包括万维网服务器。
15.一种用于在多层网络系统中提供数据优先级区分的数据处理系统,包括:
网络接口卡,用于从客户端接收数据;
多个处理单元;
总线,连接该多个处理单元中的每一个与该网络接口卡;以及
存储器,包含多个队列组,其中每一个与该多个处理单元之一相关联,并且每一个各自包括多个队列,并且包含用于将该数据排入该多个队列组之一中的一个队列的一组指令,其中这组指令在被执行时识别该客户端的优先级,并且将该数据排入该多个队列组之一中的一个队列,其中该队列与该优先级相关联。
16.如权利要求15所述的数据处理系统,其中每个队列组中的该多个队列的每一个与优先级相关联。
17.如权利要求15所述的数据处理系统,其中存储器包含网络栈,并且这组指令包括与该网络栈接口的过滤器。
18.如权利要求15所述的数据处理系统,其中数据包括具有客户端地址的封装网际协议数据报。
19.如权利要求18所述的数据处理系统,其中存储器包含将地址与优先级相关联的数据结构。
20.如权利要求15所述的数据处理系统,其中该多个队列组中的每一个包括N个队列,并且其中将客户端的优先级识别为N个优先级区分级别之一。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/014,069 | 2004-12-16 | ||
US11/014,069 US7512706B2 (en) | 2004-12-16 | 2004-12-16 | Method, computer program product, and data processing system for data queuing prioritization in a multi-tiered network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1791020A true CN1791020A (zh) | 2006-06-21 |
Family
ID=36698339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200510124671XA Pending CN1791020A (zh) | 2004-12-16 | 2005-11-14 | 用于多层网络中的数据排队优先级区分的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7512706B2 (zh) |
CN (1) | CN1791020A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102325100A (zh) * | 2011-10-31 | 2012-01-18 | 太仓市同维电子有限公司 | 基于ip地址优先级实现网关设备的网络连接接入管理方法 |
CN110784888A (zh) * | 2018-07-31 | 2020-02-11 | 中国移动通信集团山东有限公司 | 多层网络的识别方法及装置 |
CN110867104A (zh) * | 2018-08-27 | 2020-03-06 | 北京新鼎峰软件科技有限公司 | 一种网络教学交互系统和方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7460558B2 (en) * | 2004-12-16 | 2008-12-02 | International Business Machines Corporation | System and method for connection capacity reassignment in a multi-tier data processing system network |
US8243595B2 (en) * | 2005-08-05 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Prioritization of network traffic sent to a processor by using packet importance |
US20070184903A1 (en) * | 2006-02-08 | 2007-08-09 | Derek Liu | Network-based game system capable of serving massive number of game players |
US7695370B2 (en) * | 2006-02-08 | 2010-04-13 | Gaia Interactive Inc. | Massively scalable multi-player game system |
US7865895B2 (en) * | 2006-05-18 | 2011-01-04 | International Business Machines Corporation | Heuristic based affinity dispatching for shared processor partition dispatching |
US7870551B2 (en) * | 2006-05-18 | 2011-01-11 | International Business Machines Corporation | Optimization of thread wake up for shared processor partitions |
US20080019376A1 (en) * | 2006-07-21 | 2008-01-24 | Sbc Knowledge Ventures, L.P. | Inline network element which shares addresses of neighboring network elements |
US8873474B2 (en) * | 2008-10-17 | 2014-10-28 | Telefonaktiebolaget L M Ericsson (Publ) | Method and mobile terminal providing priority-based uplink scheduling information |
GB2473023A (en) * | 2009-08-27 | 2011-03-02 | Intergrated Security Mfg Ltd | Monitoring system |
KR101433420B1 (ko) * | 2010-11-16 | 2014-08-28 | 한국전자통신연구원 | 플로우 기반 데이터 병렬 처리 장치 및 방법 |
KR101440122B1 (ko) * | 2010-11-17 | 2014-09-12 | 한국전자통신연구원 | 다계층 데이터 처리 장치 및 방법 |
US9178771B2 (en) * | 2012-08-23 | 2015-11-03 | Hewlett-Packard Development Company, L.P. | Determining the type of a network tier |
KR101892920B1 (ko) * | 2015-11-13 | 2018-08-30 | 한국전자통신연구원 | 플로우 기반 병렬 처리 방법 및 장치 |
CN109522101B (zh) * | 2017-09-20 | 2023-11-14 | 三星电子株式会社 | 用于调度多个操作系统任务的方法、系统和/或装置 |
US11036522B2 (en) | 2017-12-19 | 2021-06-15 | Citrix Systems, Inc. | Remote component loader |
JP7180362B2 (ja) * | 2018-12-19 | 2022-11-30 | 富士通株式会社 | 情報処理装置、情報処理プログラムおよび情報処理システム |
KR102195609B1 (ko) * | 2020-07-20 | 2020-12-29 | 주식회사 크라우드웍스 | 인공지능 학습 데이터 생성을 위한 크라우드소싱 기반 프로젝트의 티어 자료 구조를 활용한 작업 다중 할당 방법 |
EP4086826A4 (en) * | 2020-07-20 | 2023-08-09 | Crowdworks, Inc. | METHOD FOR MULTI-TASK ASSIGNMENT USING A CROWD-BASED PROJECT-LEVEL DATA STRUCTURE FOR GENERATING ARTIFICIAL INTELLIGENCE LEARNING DATA, ASSOCIATED APPARATUS AND ASSOCIATED COMPUTER PROGRAM |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2000701A (en) * | 1933-03-18 | 1935-05-07 | A J & K Company Inc | Container for lip sticks and the like |
US6334219B1 (en) * | 1994-09-26 | 2001-12-25 | Adc Telecommunications Inc. | Channel selection for a hybrid fiber coax network |
US6633916B2 (en) * | 1998-06-10 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for virtual resource handling in a multi-processor computer system |
US6717949B1 (en) * | 1998-08-31 | 2004-04-06 | International Business Machines Corporation | System and method for IP network address translation using selective masquerade |
US6760308B1 (en) * | 1999-02-26 | 2004-07-06 | Bitbytebit Information Services, Inc. | Adaptive transmission in multi-access asynchronous channels |
US6741559B1 (en) * | 1999-12-23 | 2004-05-25 | Nortel Networks Limited | Method and device for providing priority access to a shared access network |
US6754716B1 (en) * | 2000-02-11 | 2004-06-22 | Ensim Corporation | Restricting communication between network devices on a common network |
US6658449B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
DE10110578B4 (de) * | 2000-03-29 | 2004-06-03 | International Business Machines Corporation | Hierarchisches Prioritätsfilter mit integrierter Serialisierung |
US7093288B1 (en) * | 2000-10-24 | 2006-08-15 | Microsoft Corporation | Using packet filters and network virtualization to restrict network communications |
WO2002069575A1 (en) * | 2001-02-28 | 2002-09-06 | Gotham Networks, Inc. | Methods and apparatus for network routing device |
US7024482B2 (en) * | 2001-02-28 | 2006-04-04 | Sharp Laboratories Of America, Inc. | Pseudo-random dynamic scheduler for scheduling communication periods between electronic devices |
US7042877B2 (en) * | 2001-04-27 | 2006-05-09 | The Boeing Company | Integrated analysis of incoming data transmissions |
US7024460B2 (en) * | 2001-07-31 | 2006-04-04 | Bytemobile, Inc. | Service-based compression of content within a network communication system |
US6944678B2 (en) * | 2001-06-18 | 2005-09-13 | Transtech Networks Usa, Inc. | Content-aware application switch and methods thereof |
WO2003001318A2 (en) * | 2001-06-26 | 2003-01-03 | Allot Communications Ltd. | Method for filter selection and array matching |
US9087319B2 (en) * | 2002-03-11 | 2015-07-21 | Oracle America, Inc. | System and method for designing, developing and implementing internet service provider architectures |
US7941149B2 (en) | 2002-05-13 | 2011-05-10 | Misonimo Chi Acquistion L.L.C. | Multi-hop ultra wide band wireless network communication |
US7840696B2 (en) * | 2003-07-25 | 2010-11-23 | Broadcom Corporation | Apparatus and method for classifier identification |
CN1604551B (zh) * | 2003-09-10 | 2012-04-25 | 达创科技股份有限公司 | 无线区域网路的负载平衡决策方法 |
US20050270993A1 (en) * | 2004-06-07 | 2005-12-08 | Krishnan Rajamani | Efficient partitioning of MAC (media access control) functions |
-
2004
- 2004-12-16 US US11/014,069 patent/US7512706B2/en active Active
-
2005
- 2005-11-14 CN CNA200510124671XA patent/CN1791020A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102325100A (zh) * | 2011-10-31 | 2012-01-18 | 太仓市同维电子有限公司 | 基于ip地址优先级实现网关设备的网络连接接入管理方法 |
CN102325100B (zh) * | 2011-10-31 | 2014-05-14 | 太仓市同维电子有限公司 | 基于ip地址优先级实现网关设备的网络连接接入管理方法 |
CN110784888A (zh) * | 2018-07-31 | 2020-02-11 | 中国移动通信集团山东有限公司 | 多层网络的识别方法及装置 |
CN110867104A (zh) * | 2018-08-27 | 2020-03-06 | 北京新鼎峰软件科技有限公司 | 一种网络教学交互系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060168217A1 (en) | 2006-07-27 |
US7512706B2 (en) | 2009-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1791020A (zh) | 用于多层网络中的数据排队优先级区分的方法和系统 | |
CN1791092A (zh) | 多层数据处理系统网络中用于连接容量再指派的系统和方法 | |
CN100417092C (zh) | 跨越多层网络中的多个节点传输请求优先级的系统和方法 | |
CN100343810C (zh) | 任务调度的方法、系统和设备 | |
CN1138207C (zh) | 使用远程java对象分配程序的方法和装置 | |
CN100348003C (zh) | 用于可编程调度器的设备和系统及用于可编程调度的方法 | |
CN1280725C (zh) | 分区处理环境中的资源平衡的计算系统和方法 | |
CN1206600C (zh) | 一种全分布式的集群网络服务器系统 | |
CN1567266A (zh) | 面向应用的自动连接系统和方法 | |
CN1642172A (zh) | 为多层网络接口控制器操作传输调度的方法和系统 | |
JP2008542871A (ja) | 複数のデータ・センタ中で選択的に作業負荷をオフロードするための方法および装置 | |
CN1960287A (zh) | 用于在网络上调度作业的方法和设备 | |
CN1855940A (zh) | 数据处理的方法和系统 | |
US20060080457A1 (en) | Computer system and bandwidth control method for the same | |
CN101076978A (zh) | 交换式以太网上的定向PPPoE会话启动 | |
CN1921449A (zh) | 稳定的、最小歪斜资源流控制方法与系统 | |
CN1638376A (zh) | 用于共享网络上的服务的设备和方法 | |
CN1691632A (zh) | 基于优先级的消息发送队列重新排序 | |
CN1773935A (zh) | 用于为执行Web应用控制通信的计算机和方法 | |
CN100351824C (zh) | 总线系统和用于连接到总线的总线接口 | |
CN1300968C (zh) | 分散处理系统及其中代理节点与用户端节点并相关方法 | |
CN109361749A (zh) | 报文处理方法、相关设备及计算机存储介质 | |
CN1344082A (zh) | 根据服务质量确定用户费用的通信系统和方法 | |
CN101043446A (zh) | 数据转发处理的方法和装置 | |
CN1255737C (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 |