CN101155116A - 对通常读出事务进行工作负载管理的设备和方法 - Google Patents
对通常读出事务进行工作负载管理的设备和方法 Download PDFInfo
- Publication number
- CN101155116A CN101155116A CNA2007101021166A CN200710102116A CN101155116A CN 101155116 A CN101155116 A CN 101155116A CN A2007101021166 A CNA2007101021166 A CN A2007101021166A CN 200710102116 A CN200710102116 A CN 200710102116A CN 101155116 A CN101155116 A CN 101155116A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- outdated
- request
- client
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/964—Database arrangement
- Y10S707/966—Distributed
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明描述了用于对网络服务器上通常读出数据的访问进行改善的设备和方法。通过尽可能地在主服务器和所有复制服务器上对客户机请求进行工作负载管理,以改善对网络服务器的数据访问性能,从而,优选实施例更有效地使用复制数据服务器,以使服务器响应时间最短。在优选实施例中,负载均衡器通过在主服务器和所有复制服务器上对客户机请求进行负载管理,为通常读出数据事务提供最新数据,同时使服务器利用率最高。在负载管理器中,通过负载均衡器对客户机请求进行管理。当路由表(过时数据标记列表)表示数据处于安全期间时,由负载均衡器将客户机请求发送到复制服务器。仅在数据更新期间,将客户机仅引导至主服务器。
Description
技术领域
本发明通常涉及计算机服务器,更具体而言,涉及通过工作负载管理有效处理计算机服务器环境中的通常读出(mostly read)、在使服务器利用率最大的同时保持数据完整性的设备和方法。
背景技术
数据的及时可用性对计算机性能而言是至关重要的。计算机系统通常使用通过网络相连的服务器向多个客户机提供数据文件和软件应用程序文件。同样的数据被复制到多个服务器上,以实现高可用性、系统可伸缩性和更高性能。高可用性表示,通过在多个服务器上对数据进行分片和复制,即便出现因升级引起的预期中断,或因硬件或软件失效引起的意外中断,也能保持可用性。
在HA系统以及其他计算机系统中,将复制数据存储在多个服务器上,以便及时响应来自多个不同客户机的请求。通常来讲,具有分配器的工作负载管理器用于对客户机请求的工作负载进行管理,以便确保对服务器的有效利用,以使服务器的性能最大化。通常可将服务器上存储的数据划分成以下四种类型中的一种:1)读出/写入数据,2)具有特定更新时期的通常读出数据,3)更新时间不特定的通常读出数据,和4)只读数据。如果在服务器上存储的数据为只读数据,则工作负载管理能够简单引导客户机请求以访问任何服务器。图2显示出,对于只读事务214,客户机210可如何访问在任何服务器212上的数据。由于只读数据在所有服务器上都是最新的(current),能够将对于只读数据的请求路由到主服务器216以及复制服务器218,220。
然而,如果存储在服务器上的数据属于类型1,2或3,则仅主服务器216上的数据总是有效和最新的。对于这些其他类型的数据,例如,读出/写入事务数据和通常读出数据,在不同数据更新期间,存储在不同服务器中的数据可能不同。因此,对于这些类型的数据事务222,将所有客户机数据请求仅引向主服务器,所有复制服务器不用于这样的操作。图3说明了工作负载管理器(未示出)将所有客户机212的数据请求222引导到主服务器216。此外,图3说明了在HA系统中的典型情形,其中,所有访问都是针对主服务器的,并且以延迟方式实现其他服务器的复制。在客户机访问利用率方面而言,这些复制服务器是浪费的。复制服务器仅在当主服务器失效时才被使用,但由于主服务器很少失效,导致这些服务器不能很好地利用。
在现有技术中,当存储在服务器上的数据为通常读出数据时,必须使用主服务器以确保数据是最新(不过时)的。由于多达80%的普通数据库包含有很少进行更新且进行大量读出的通常读出数据,使大量服务器资源被浪费,使可伸缩性和性能大大减小。由于通常读出数据的更新并不频繁,当复制服务器最新且数据不过时时,可更好地利用复制服务器。对于通常读出数据,在不能更有效利用服务器的情况下,计算机产业仍将受到网络服务器的较慢响应和低效利用的影响。
发明内容
根据优选实施例,描述了用于有效利用复制数据服务器,以便使服务器响应时间最短,而且能够实现更大可伸缩性以支持多个并发客户机的设备和方法。在优选实施例中,负载均衡器通过对主服务器和所有复制服务器上的客户机请求进行负载管理,为通常读出数据事务提供最新数据,同时使服务器利用率最高。在负载管理器中,通过负载均衡器对客户机请求进行管理。当路由表(过时数据标记列表)表明数据处于安全期间时,由负载均衡器将客户机请求发送到复制服务器。仅在数据更新期间,才将客户机仅引导至主服务器。
尽管此处所述优选实施例针对的是WebSphere服务器环境,然而此处所提出的实施例显然包括其他网络服务器环境及其相关体系结构和文件。
参照附图,通过以下关于本发明的优选实施例的更具体的描述,将清楚地理解本发明的上述以及其他特征和优点。
附图说明
下面,将结合附图,描述本发明的优选实施例,其中,相同的附图标记表示相同的元件:
图1表示根据本发明优选实施例的设备的框图;
图2表示根据现有技术由客户机对网络服务器的只读事务的框图;
图3表示根据现有技术由客户机对网络服务器的通常读出以及读出/写入事务的框图;
图4表示根据优选实施例由客户机对网络服务器的通常读出事务的框图;
图5a表示根据优选实施例由多个客户机通过单个客户机服务器对网络服务器的只读事务的框图;
图5b表示根据优选实施例由客户机通过不同负载管理器访问网络服务器的只读事务的另一框图;
图6表示根据优选实施例的过时数据标记列表的内容的框图;
图7表示根据优选实施例的请求流程处理方法的流程图;
图8表示根据优选实施例用于创建和更新过时数据标记列表的方法的流程图;
图9表示根据优选实施例,在客户机端和服务器端之间将路由表和过时数据标记列表的版本进行比较的方法的流程图;
图10表示根据优选实施例用于转发关于最新改变数据的请求的方法的流程图;以及
图11表示根据优选实施例在复制时间之后清除过时数据标记列表表项的方法的流程图。
具体实施方式
本发明涉及应用服务器,具体而言,WebSphere应用服务器用于所示示例。下面,为不熟悉WebSphere和应用服务器的技术人员,提供关于背景信息的简要概述,这将有助于帮助读者理解本发明。
2.概述
在WebSphere环境中的WebSphere应用服务器
WebSphere是IBM的软件产品品牌,其设计用于一起工作以便提供用于将人、系统和应用与内部和外部资源连接的动态电子商务解决方案。软件产品的WebSphere环境包括应用服务器。WebSphere是基于为动态电子商务而设计的基础结构软件(中间件)。它提供了安全可靠的软件包。支持WebSphere产品的技术是JavaTM。在过去数年间,许多软件提供商已在一组服务器端应用编程技术方面进行合作,其有助于构建Web可访问、分布式、平台中性的应用。将这些技术一起称为Java 2平台企业版(J2EE)。其与Java 2标准版(J2SE)平台相对应,J2SE是大多数用户所熟悉的。J2SE通过丰富的图形用户接口(GUI)支持客户端应用的开发。J2EE平台构建在J2SE平台的顶部。J2EE由用于定义业务逻辑和访问企业资源的应用技术组成,所述企业资源诸如数据库、企业资源计划(ERP)系统、消息传递系统、电子邮件服务器等。Enterprise JavaBeans(EJB)技术是用于Java平台企业版(Java EE)的服务器端组件体系结构。EJB技术允许基于Java技术快速而简单地开发出分布式、事务处理型、安全和便携的应用。
2.详细描述
根据本发明的优选实施例,描述了一种设备和方法,用于有效利用复制数据服务器,以便使服务器响应时间最短,以及使得能够实现更大可伸缩性,以便支持多个并发客户机。此处所述优选实施例使得能够在所有服务器(主服务器和复制服务器)上对数据请求进行有效的工作负载管理,同时又确保数据完整性和数据最新。
参看图1,计算机系统100为根据本发明优选实施例的设备的一种合适的实现。计算机系统100为IBM eSever iSeries计算机系统。然而,本领域技术人员应该理解,本发明的机制和设备同样应用于任何计算机系统,而与该计算机系统是否为复杂的多用户计算设备,单用户工作站,或嵌入控制系统无关。如图1所示,计算机系统100包括处理器110,主存储器120、大容量存储设备接口130、显示器接口140和网络接口150。这些系统部件利用系统总线160进行互连。大容量存储设备接口130用于将大容量存储设备,例如直接访问存储设备155,与计算机系统100相连。一种特殊类型的直接访问存储设备155为可读和可写CD RW驱动器,它可将数据存储到CD RW 195,以及从CD RW 195读出数据。
根据优选实施例的主存储器120包含数据121、操作系统122、客户机服务器123和数据服务器127。数据121表示用作为对计算机系统100中任何程序的输入以及来自它的输出的任何数据。操作系统122为在业界熟知为i5/OS的多任务操作系统;不过,本领域技术人员应该理解,本发明的精神和范围并不局限在任何一种操作系统。客户机服务器123和数据服务器127为在许多方面与本领域所熟知的系统类似的软件系统,不过也有本领域不知道的附加特征。客户机服务器123包括工作负载管理器124,用于如以下所述对关于数据的客户机请求进行管理。在优选实施例中,数据服务器123包括与路由表126结合使用的过时数据标记列表125。数据服务器127还包括与路由表129结合使用的过时数据标记列表128。下面,将进一步描述优选实施例的这些部分。
计算机系统100使用众所周知的虚拟编址机制,其允许计算机系统100的程序的行为如同它们仅访问大型、单个存储实体而不是访问多个更小存储实体(例如,主存储器120和DASD设备155)那样。因此,尽管将数据121、操作系统122、客户机服务器123和数据服务器127显示为驻留在主存储器120中,本领域技术人员应该理解,并没有必要在主存储器120中同时将这些项都完全包含在内。实际上,客户机服务器123和数据服务器127最有可能如以下所述驻留在不同计算机系统中。还应注意,此处术语“存储器”通常用来指计算机系统100的全部虚拟存储器,并可包括与计算机系统100相连的其他计算机系统的虚拟存储器。
处理器110可由一个或多个微处理器和/或集成电路构成。处理器110执行在主存储器120中存储的程序指令。主存储器120存储有处理器110可访问的程序和数据。当计算机系统100启动时,处理器110最初执行构成操作系统122的程序指令。操作系统122是对计算机系统100的资源进行管理的高级程序。这些资源的其中一些是处理器110、主存储器120、大容量存储设备接口130、显示器接口140、网络接口150和系统总线160。
尽管将计算机系统100显示为包含单个处理器和单个系统总线,本领域技术人员应该理解,可使用具有多个处理器和/或多个总线的计算机系统实现本发明。此外,在优选实施例中使用的接口均包括单独的、完全编程的微处理器,用于从处理器110分担计算密集型处理。然而,本领域技术人员应该理解,本发明同样可应用于仅使用I/O适配器以执行类似功能的计算机系统。
显示器接口140用于直接将一个或多个显示器165与计算机系统100相连。可以为非智能(即,哑)终端或完全可编程工作站的这些显示器165被用于使系统管理员和用户能够与计算机系统100进行通信。然而,注意,尽管设置了显示器接口140以支持与一个或多个显示器165的通信,但计算机系统100并非必须需要显示器165,这是因为所有与用户的必需交互以及其他处理可通过网络接口150实现。
网络接口150用于在网络170上将其他计算机系统和/或工作站(例如,图1所示175)与计算机系统100相连。不管计算机系统100与其他计算机系统和/或工作站将如何连接,同样可应用本发明,这与是否使用目前模拟和/或数字技术或通过某些未来联网机制来实现网络连接170无关。此外,可使用许多不同网络协议实现网络。这些协议是允许计算机在网络170上进行通信的专用计算机程序。TCP/IP(传输控制协议/网际协议)是合适网络协议的示例。
这里,重要的是要注意,尽管在完全功能计算机系统的场境中描述了以及将继续如此描述本发明,然而本领域技术人员应该理解,本发明能够作为程序产品以各种形式发布,而且,本发明的应用同样与实际执行发布的计算机可读介质无关。适宜的计算机可读介质的示例包括:可记录型介质,例如,软盘和CD RW(例如,图1所示195),传输类型介质,例如,数字和模拟通信链路。注意,优选的计算机可读介质是有形的。
此外,重要的是要指出,在计算机系统100内存在网络接口150表明计算机系统100可与网络170上的一个或多个其他计算机系统或工作站进行协同处理。当然,这进而表明,所示在主存储器120中的程序和数据无需都要驻留在计算机系统100上。例如,所示在主存储器120中的一个或多个部分可驻留在另一系统上,以及与驻留在计算机系统100上的一个或多个对象或程序进行协同处理。该协同处理可使用诸如远程过程调用(RPC)之类众所周知的客户机服务器机制中的一种来实现。
根据优选实施例,描述了用于有效利用复制数据服务器以便使服务器响应时间最小的设备和方法。此处所述优选实施例使得能够在主和复制服务器上对数据请求进行有效工作负载管理,同时又确保数据完整性和数据最新。图4表示根据优选实施例对客户机请求进行引导以便更有效利用复制数据服务器的计算机网络系统400。客户机计算机410,412能够访问最新数据以便进行通常读出数据事务,同时通过监视在服务器上数据何时最新或过时,在主服务器和所有复制服务器上对客户机请求进行工作负载管理,以使服务器利用率最高。当复制服务器上的数据过时时,仅从主服务器416为数据请求提供所请求的数据(通常读出事务414)。在复制服务器上的通常读出类型数据在更新和复制期间是过时的。当在复制服务器上的数据为过时时,如图4实线所示,通常读出事务414仅被引向主服务器。在其他时间,当未进行更新从而在其他服务器上复制的数据是最新数据时,在所有服务器416,418和420上对数据请求进行工作负载管理,如来自客户机410,412的虚线所示。
在优选实施例中,服务器416,418和420均具有过时数据标记列表422,423,424,其对应于图1的数据服务器124中所示的过时数据标记列表。过时数据标记列表422,423,424指示哪些数据是过时或非最新的。然后,系统能够确定何时仅对主服务器416进行访问或何时可按如上所述方式在所有服务器上对最新数据进行工作负载管理。在列表422,423,424中的过时数据标记类似于用于计算机存储器缓存中的脏位(dirty bit)。过时数据标记列表与路由表结合使用,以便确定在何处访问数据。可将过时数据标记列表视为路由表的扩展。路由表包含有具有数据的所有端点的列表,包括主服务器和复制服务器。路由表由工作负载管理器结合过时数据列表一起使用,以确定在何处访问数据。当对于数据的请求由工作负载管理器进行处理时,对过时数据标记列表进行检查,以查看被请求的数据是否具有过时数据列表中的表项。在过时数据标记列表422中对过时的或在复制服务器中正处在更新处理中的任何数据进行标记,使得请求该数据的任何客户机被路由到主服务器,以确保数据完整性。在优选实施例中,对于与过时数据相关联的每个表项,过时数据标记列表都具有关键字,如以下所述。
图5a说明了根据优选实施例,用于实现如图4所述功能以使复制服务器的效率最大的系统拓扑。客户机1410和客户机2412访问在如上所述主服务器(数据服务器)127a和复制服务器127b,127c上的数据。客户机1和客户机2执行的数据访问通过客户机服务器123实现。客户机服务器123包括工作负载管理器124。工作负载管理器124和客户机服务器123在操作上类似于对针对复制服务器的只读数据请求进行工作负载管理的现有技术工作负载管理技术。与现有技术相比,优选实施例的工作管理器124使用过时数据标记列表125,128a,128b,128c,对针对复制服务器的通常读出数据请求进行工作负载管理,如此处所述。过时数据标记列表128a,128b和128c是对过时数据标记列表125的本地复制。过时数据标记列表128a,128b和128c是更新过的,包含有时间戳,如以下所述。
图5b说明了根据优选实施例,用于实现使复制服务器的效率最大以访问通常读出数据的设备的另一拓扑。在图5b中的系统以与以上参照图5a所述的系统相似的方式操作。客户机1410和客户机2412访问在如上所述主服务器(数据服务器1)127a和复制服务器127b,127c上的数据。在该系统中,将工作负载管理器包括在系统的客户机端,如所示包含在客户机410,412中。在优选实施例中,客户机410,412为Java虚拟机(JVM)。客户机1410包含具有过时数据列表125a的工作负载管理器124a,客户机2412包含具有过时数据列表125b的工作负载管理器124b。通过后面参照图11所述的相应工作负载管理器分别对过时数据标记列表124a,124b进行更新。以此方式,如以下所述,能够支持来自不同机器或不同JVM的许多客户机,以便对在复制服务器上通常读出数据进行工作负载管理。
图5a和5b的两个拓扑说明了对于不同拓扑,如何将工作负载管理器设置在目标服务器前面的一级。在多层体系结构的优选实施例中,工作负载管理器处在WebSphere边缘服务器中,以便对http服务器请求进行工作负载管理。在另一实施例中,工作负载管理器处在http服务器中,以便对进入WebSphere应用服务器Web容器中的servlet请求进行工作负载管理。在另一实施例中,工作负载管理器处在WebSphere应用服务器servlet容器中,以便对针对WebSphere应用服务器EJB容器的请求进行工作负载管理。在另一实施例中,工作负载管理器可处在EJB容器中,以便对针对不同数据库服务器的请求进行工作负载管理。一个服务器可充当另一服务器的客户机。在如图5b所示客户机模式中,例如,java客户机或客户客户机即时(on the fly)下载路由表(过时数据标记列表)以便将请求引导到不同服务器。
图6说明了根据优选实施例的过时数据标记列表422的更多细节。过时数据标记列表422包含过时数据标记612的列表,其中,每个过时数据标记作为列表中的表项。在优选实施例中,每个过时数据标记612具有关键字614以及一个或多个相应改变时间616和复制时间618或冷却(cool down)周期。关键字614最好为存储在数据服务器上可由客户机访问的数据集的索引关键字。该关键字可为用于标识服务器上数据的任何类型的指针或引用。每个关键字614的改变时间为将数据库中与数据关键字相对应的数据进行更新的时间。主服务器根据客户机请求(插入、更新或删除)对数据进行更新。通过用于对系统中数据更新进行监视的工作负载管理器的连续运行处理,将过时数据标记612设置在过时数据标记列表中。在改变时间616之后的复制时间618内,过时数据标记是有效的。当过时数据标记有效时,将过时数据标记612设置在过时数据标记列表中。通过以下要描述的另一处理,从过时数据标记列表中清除无效过时数据标记。
在过时数据标记列表422中的复制时间618是计算的用于将数据改变从主服务器传到主服务器的所有各个复制所需的时间量。复制时间618是在改变时间616之后且在统计上(statistically)能够安全访问在复制服务器上与各自关键字614相对应的数据之前等待的时间。复制时间618为对于1求和(sigma)、2求和、3求和或对于要从主服务器传到复制服务器的一定百分率数据进行统计计算的传播时间。在优选实施例中,求和级别或百分率是用户可定义的。因此,在改变时间处开始并且在改变时间加上复制时间之前是不安全的时期,其中,由于数据可能是过时的,从复制服务器访问相应数据是不安全的。在改变时间加上传播时间之后和下一改变时间之前的任何时间,是客户机从复制服务器访问数据的安全时期。对于不频繁更新的通常读出数据而言,存在大量安全时期。例如,如果每天对通常读出数据更新24次,且在数据中心之间的地理复制时间占2分钟,则有58分钟安全时期用来从所有复制服务器访问数据,仅有2分钟的不安全时期。在不安全时期期间,将客户机请求仅路由到主服务器,以确保数据完整性和最新。以此方式,可大大提高可伸缩性和服务器利用率,在该示例中,超过95%。
现在参看图7,此处,显示出根据优选实施例的方法700。方法700表示,根据优选实施例,用于实现工作负载管理器以使用过时数据标记列表中的关键字访问数据库中的数据的方法。该方法开始于工作负载管理器接收对于数据的客户机请求(步骤710)。然后,从请求中提取关于客户机请求的数据的数据关键字(步骤720)。如果由于相应关键字不处在过时数据列表中从而数据不过时(步骤730=否),则负载均衡器通过将数据请求路由到所有服务器(步骤750)对数据请求进行工作负载管理,并且方法结束。如果数据是过时的(数据关键字处在过时数据列表中)(步骤730=是),则将数据仅路由到主服务器(步骤740),并且方法结束。
现在参看图8,所示方法800用于根据优选实施例创建和广播过时数据标记列表。如图4所示,在每个数据服务器中保持有优选实施例中的过时数据标记列表,以确保当数据有效(不过时)时实现对复制服务器上的数据的访问。在优选实施例中,工作负载管理器对数据访问进行监视,以更新过时数据标记列表的内容,然后,将更新广播到过时数据标记列表的每个服务器拷贝。方法800描述用于维护过时数据标记列表的这个过程。工作负载管理器监视着对数据库的数据访问(插入、删除、更新)(步骤810)。从对数据库的客户机访问中提取出传播时间(步骤820)。传播时间为用于对复制数据库服务器进行更新以使这些服务器中的数据与主服务器中的数据保持最新所用的实际时间量。传播时间用于计算要存储在过时数据标记列表中的复制时间(步骤830)。针对与关键字相对应的数据,确定复制时间和改变时间,并更新过时数据标记列表(步骤840)。将过时数据标记列表复制到主和复制服务器(步骤850)。然后,结束该方法。
在优选实施例中,使用纪元日期(epoch)或时间戳维护和协调路由表和过时数据标记列表。在客户机服务器中的工作负载管理器将反映路由表和过时数据标记列表的状态的时间戳,插入到向数据服务器发送的数据请求中。当客户机接收响应时,该响应携带类似时间戳。如果该响应时间戳是更新的,则客户机服务器接收对路由表和过时数据标记列表的更新。在数据服务器端,当接收到对数据的请求时,将数据请求的时间戳与本地路由表和过时数据标记列表的时间戳进行比较。如果时间戳不匹配,则将请求转发到具有更新路由表和过时数据标记列表的服务器,并且如果需要的话,根据数据请求,将路由表和过时数据标记列表的新版本发送到客户机服务器。下面,将参照图9和10描述这些操作。图9说明了在客户端的行为,用于维护路由表和过时数据标记列表。图10表示在数据服务器端的操作。
现在参照图9,所示方法900用于根据此处的优选实施例对服务器路由表和过时数据标记列表进行更新。在客户机服务器端的工作负载管理器将时间戳或纪元日期插入到向数据服务器发送的数据请求中(步骤910)。时间戳是过时标记列表在服务器端的最后更新时间。当接收到来自数据请求的响应后,工作负载管理器将响应中的时间戳与其本地路由表时间戳进行比较,以确定本地路由表和过时数据标记列表是否是最新的(步骤930)。如果时间戳不匹配,则本地过时数据标记列表不是最新的(步骤930=否),则利用源自服务器的包含其路由表和过时数据标记列表信息的响应对象,该服务器对其路由表和过时数据标记列表进行更新(步骤940)。如果时间戳匹配,则本地过时数据标记列表是最新的(步骤930=是),则结束该方法。
现在参照图10,所示方法1000用于根据此处的优选实施例对在服务器上的数据请求进行处理。数据服务器用服务器本地过时数据标记列表检查输入请求,以确保数据完整性。当数据发生改变而该改变没有被分配该请求的工作负载管理器即时检测到时,这就非常重要。在此情形中,服务器会通过将其本身的过时数据标记列表的版本与客户机插入的版本进行比较,来检测过时数据,如果它们不同,则将数据请求重新路由到主服务器,如参照方法1000所述。
方法1000开始于数据服务器将输入时间戳与本地路由表时间戳进行比较,以确定本地过时数据标记列表是否是最新的(步骤1010)。如果本地过时数据标记列表是最新的(时间戳相匹配)(步骤1020=是),则对数据请求进行本地处理(步骤1030),结束该方法。如果本地过时数据标记列表不是最新的(时间戳不匹配)(步骤1020=否),且服务器为主服务器(步骤1040=是),则对数据请求进行本地处理,并在响应流中将路由表和过时数据标记列表的新版本发送到客户机服务器(步骤1050)。如果时间戳不匹配(步骤1020=否),服务器不是主服务器(步骤1040=否),并且请求的数据不是在路由表和过时数据标记列表中的改变数据(步骤1060=否),则对数据请求进行本地处理,在响应流中将路由表和过时数据标记列表的新版本发送到客户机服务器(步骤1050)。如果时间戳不匹配(步骤1020=否),服务器不是主服务器(步骤1040=否),并且请求的数据是路由表和过时数据标记列表中的改变数据(步骤1060=是),则将数据请求转发到主服务器(步骤1070),结束该方法。主服务器将通过该同样方法对请求进行处理,这将导致在响应流中要向客户机服务器发送路由表和过时数据标记列表的新版本(步骤1050)。
现在参看图11,所示方法1100用于根据此处优选实施例对过时数据标记列表进行处理和更新。在优选实施例中,在主服务器上定期运行根据该方法的软件,以使过时数据标记列表保持最新。选择在过时数据标记列表中下一个过时数据标记以便进行更新(步骤1110)。如果经过时间大于在过时数据标记列表中相应的复制时间(步骤1120=是),则从过时数据标记列表清除具有该关键字的过时数据标记(步骤1130)。如果经过时间不大于在过时数据标记列表中的相应复制时间(步骤1120=否),则进行到检查下一个数据标记(步骤1140)。如果在列表中存在更多标记(步骤1140=是),则跳到步骤1110。如果在列表中没有更多的标记(步骤1140=否),则结束该方法。
以上描述了用于对网络服务器上通常读出数据的访问进行改善的设备和方法。通过尽可能地在主服务器和所有复制服务器上对客户机请求进行工作负载管理,以改善对网络服务器的数据访问性能,从而,优选实施例更有效地使用复制数据服务器,以使服务器响应时间最短。
本领域技术人员应该理解,在本发明的范围内可进行多种改变。从而,尽管参照其优选实施例具体示出和描述了本发明,本领域技术人员应该理解,在不偏离本发明精神和范围的条件下,此处可进行形式和细节方面的这些以及其他改变。
Claims (12)
1.一种计算机设备,包括:
至少一个处理器;
与所述至少一个处理器相连的存储器;
在所述存储器中的客户机服务器程序,由从客户机接收数据请求的所述至少一个处理器执行,所述客户机服务器程序包括:
过时数据标记列表,具有与在复制服务器上的过时数据相对应的过时数据标记;以及
工作负载管理器,当在过时数据标记列表中存在与请求的数据相对应的表项时,其将数据请求仅路由到主服务器,其中,当在过时数据标记列表中不存在与请求的数据相对应的表项时,工作负载管理器对针对主服务器和一个或多个复制服务器的数据请求进行工作负载管理。
2.根据权利要求1的计算机设备,其中,客户机服务器程序与进行数据请求的客户机驻留在同一计算机硬件上。
3.根据权利要求1的计算机设备,还包括驻留在第二计算机设备上的数据服务器程序,所述第二计算机设备从客户机服务器接收数据请求,其中,所述数据服务器程序还包括第二过时数据标记列表,所述第二过时数据标记列表指示驻留在第二计算机系统上的过时数据。
4.根据权利要求1的计算机设备,其中,过时数据标记包括与过时数据相对应的关键字。
5.根据权利要求1的计算机设备,其中,过时数据标记包括数据改变时间和复制时间。
6.根据权利要求5的计算机设备,其中,由工作负载管理器使用改变时间和复制时间来确定在服务器上的数据何时变得过时。
7.根据权利要求1的设备,其中,所述客户机服务器为WebSphere的一部分。
8.一种用于对通常读出事务进行工作负载管理的计算机方法,所述方法包括步骤:
(A)客户机服务器从客户机接收数据请求;
(B)从数据请求中提取关键字;
(C)如果与关键字相对应的数据过时,则将数据请求路由到主服务器;以及
(D)如果与关键字相对应的数据未过时,则将数据请求路由到复制服务器。
9.根据权利要求8的方法,还包括步骤:
(E)监视数据的改变;
(F)提取历史传播时间和改变时间;
(G)由传播时间计算复制时间;
(H)用复制时间更新过时数据标记;以及
(I)将过时数据标记复制到一个或多个复制数据服务器。
10.根据权利要求8的方法,还包括步骤:
(J)将过时数据标记的时间戳插入到针对数据服务器的数据请求中;
(K)数据服务器将该时间戳与本地过时数据标记列表的时间戳进行比较;以及
(L)如果时间戳不匹配,则将针对数据的请求转发到主服务器,如果时间戳匹配,则在本地数据服务器对针对数据的请求进行处理。
11.根据权利要求8的方法,还包括步骤:
(M)选择在过时数据标记列表中的下一个过时数据标记;
(N)通过将经过时间与复制时间进行比较,确定是否仍需要过时数据标记;以及
(O)如果经过时间大于复制时间,则从过时数据标记列表中清除过时数据标记。
12.根据权利要求8的方法,其中,客户机服务器为WebSphere的一部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/422,687 | 2006-06-07 | ||
US11/422,687 US7490111B2 (en) | 2006-06-07 | 2006-06-07 | Efficient handling of mostly read data in a computer server |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101155116A true CN101155116A (zh) | 2008-04-02 |
Family
ID=38823171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101021166A Pending CN101155116A (zh) | 2006-06-07 | 2007-04-26 | 对通常读出事务进行工作负载管理的设备和方法 |
Country Status (2)
Country | Link |
---|---|
US (4) | US7490111B2 (zh) |
CN (1) | CN101155116A (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8588420B2 (en) * | 2007-01-18 | 2013-11-19 | Panasonic Corporation | Systems and methods for determining a time delay for sending a key update request |
US8676760B2 (en) * | 2008-08-05 | 2014-03-18 | International Business Machines Corporation | Maintaining data integrity in data servers across data centers |
US8843630B1 (en) * | 2008-08-27 | 2014-09-23 | Amazon Technologies, Inc. | Decentralized request routing |
US8868889B2 (en) | 2010-03-12 | 2014-10-21 | Lsi Corporation | Instruction breakpoints in a multi-core, multi-thread network communications processor architecture |
US8537832B2 (en) * | 2010-03-12 | 2013-09-17 | Lsi Corporation | Exception detection and thread rescheduling in a multi-core, multi-thread network processor |
US8505013B2 (en) * | 2010-03-12 | 2013-08-06 | Lsi Corporation | Reducing data read latency in a network communications processor architecture |
US8910171B2 (en) * | 2009-04-27 | 2014-12-09 | Lsi Corporation | Thread synchronization in a multi-thread network communications processor architecture |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8935483B2 (en) * | 2009-04-27 | 2015-01-13 | Lsi Corporation | Concurrent, coherent cache access for multiple threads in a multi-core, multi-thread network processor |
US8514874B2 (en) * | 2010-03-12 | 2013-08-20 | Lsi Corporation | Thread synchronization in a multi-thread network communications processor architecture |
US7970861B2 (en) * | 2009-11-18 | 2011-06-28 | Microsoft Corporation | Load balancing in a distributed computing environment |
US8886602B2 (en) * | 2010-02-09 | 2014-11-11 | Google Inc. | Location assignment daemon (LAD) for a distributed storage system |
US8615485B2 (en) * | 2010-02-09 | 2013-12-24 | Google, Inc. | Method and system for managing weakly mutable data in a distributed storage system |
US9305069B2 (en) * | 2010-02-09 | 2016-04-05 | Google Inc. | Method and system for uploading data into a distributed storage system |
US8380659B2 (en) | 2010-02-09 | 2013-02-19 | Google Inc. | Method and system for efficiently replicating data in non-relational databases |
US8423517B2 (en) * | 2010-02-09 | 2013-04-16 | Google Inc. | System and method for determining the age of objects in the presence of unreliable clocks |
US8868508B2 (en) | 2010-02-09 | 2014-10-21 | Google Inc. | Storage of data in a distributed storage system |
US8341118B2 (en) * | 2010-02-09 | 2012-12-25 | Google Inc. | Method and system for dynamically replicating data within a distributed storage system |
US8874523B2 (en) * | 2010-02-09 | 2014-10-28 | Google Inc. | Method and system for providing efficient access to a tape storage system |
US8862617B2 (en) * | 2010-02-09 | 2014-10-14 | Google Inc. | System and method for replicating objects in a distributed storage system |
US9100330B1 (en) * | 2012-07-13 | 2015-08-04 | Emc Corporation | Introduction of read delay or write delay in servers of a geographically distributed data processing system so that clients read up-to-date data |
US9264486B2 (en) * | 2012-12-07 | 2016-02-16 | Bank Of America Corporation | Work load management platform |
US9948580B2 (en) * | 2015-06-19 | 2018-04-17 | Whatsapp Inc. | Techniques to replicate data using uploads from messaging clients |
CN104954474B (zh) * | 2015-06-19 | 2019-08-02 | 北京奇虎科技有限公司 | 负载均衡中数据更新的方法及装置 |
US9792108B2 (en) | 2015-08-12 | 2017-10-17 | Comcast Cable Communications, Llc | Scheme for managing last-modified information |
US10176241B2 (en) * | 2016-04-26 | 2019-01-08 | Servicenow, Inc. | Identification and reconciliation of network resource information |
US10999216B2 (en) * | 2018-07-13 | 2021-05-04 | EMC IP Holding Company LLC | Resource allocation and provisioning in a multi-tier edge-cloud virtualization environment |
US20230086203A1 (en) * | 2021-09-15 | 2023-03-23 | International Business Machines Corporation | Stale data recognition |
US12032593B2 (en) * | 2022-11-21 | 2024-07-09 | Bank Of America Corporation | Real-time data replication monitoring and management |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263360B1 (en) * | 1998-06-01 | 2001-07-17 | Sri International | System uses filter tree and feed handler for updating objects in a client from a server object list |
US20020010783A1 (en) * | 1999-12-06 | 2002-01-24 | Leonard Primak | System and method for enhancing operation of a web server cluster |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US6842773B1 (en) * | 2000-08-24 | 2005-01-11 | Yahoo ! Inc. | Processing of textual electronic communication distributed in bulk |
US20020059371A1 (en) * | 2000-11-16 | 2002-05-16 | Jamail John M. | Caching proxy streaming appliance systems and methods |
WO2002065328A1 (en) * | 2001-02-13 | 2002-08-22 | Duke University | System and method for optimizing efficiency of replicated network services |
US7376953B2 (en) * | 2001-10-29 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Apparatus and method for routing a transaction to a server |
US8069225B2 (en) | 2003-04-14 | 2011-11-29 | Riverbed Technology, Inc. | Transparent client-server transaction accelerator |
US7107293B2 (en) * | 2003-04-30 | 2006-09-12 | International Business Machines Corporation | Nested recovery scope management for stateless recovery agents |
US7100076B2 (en) * | 2003-05-09 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Minimum latency reinstatement of database transaction locks |
CN100547583C (zh) * | 2003-08-14 | 2009-10-07 | 甲骨文国际公司 | 数据库的自动和动态提供的方法 |
US7158991B2 (en) * | 2003-09-30 | 2007-01-02 | Veritas Operating Corporation | System and method for maintaining temporal data in data storage |
US7631091B2 (en) | 2005-02-18 | 2009-12-08 | Oracle International Corporation | Method and mechanism of improving system utilization and throughput |
US7685131B2 (en) | 2006-02-28 | 2010-03-23 | International Business Machines Corporation | Web services database cluster architecture |
-
2006
- 2006-06-07 US US11/422,687 patent/US7490111B2/en not_active Expired - Fee Related
-
2007
- 2007-04-26 CN CNA2007101021166A patent/CN101155116A/zh active Pending
-
2008
- 2008-07-16 US US12/174,071 patent/US20080275949A1/en not_active Abandoned
- 2008-07-16 US US12/174,096 patent/US20080275920A1/en not_active Abandoned
- 2008-07-16 US US12/173,975 patent/US8099388B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080275949A1 (en) | 2008-11-06 |
US20080275948A1 (en) | 2008-11-06 |
US20080275920A1 (en) | 2008-11-06 |
US7490111B2 (en) | 2009-02-10 |
US20070288524A1 (en) | 2007-12-13 |
US8099388B2 (en) | 2012-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101155116A (zh) | 对通常读出事务进行工作负载管理的设备和方法 | |
US20200372091A1 (en) | System and method for managing network traffic routing | |
CN100570607C (zh) | 用于多处理环境中的数据聚合的方法和系统 | |
US7937437B2 (en) | Method and apparatus for processing a request using proxy servers | |
US7680907B2 (en) | Method and system for identifying and conducting inventory of computer assets on a network | |
US9164806B2 (en) | Processing pattern framework for dispatching and executing tasks in a distributed computing grid | |
JP5193056B2 (ja) | 無線装置の最新データを維持するための方法及びシステム | |
US8856091B2 (en) | Method and apparatus for sequencing transactions globally in distributed database cluster | |
US8250102B2 (en) | Remote storage and management of binary object data | |
US20080172679A1 (en) | Managing Client-Server Requests/Responses for Failover Memory Managment in High-Availability Systems | |
US20050240625A1 (en) | Method and apparatus for scalable transport processing fulfillment system | |
JP5038902B2 (ja) | オン・デマンド・メッセージベースの金融ネットワーク統合ミドルウェア | |
CN102971707A (zh) | 为软件包安装配置计算机系统 | |
US8495557B2 (en) | Highly available large scale network and internet systems | |
US20090217289A1 (en) | Synchronization system for entities maintained by multiple applications | |
CN112905676A (zh) | 一种数据文件的导入方法及装置 | |
US7379989B2 (en) | Method for dual agent processes and dual active server processes | |
CN109145054A (zh) | 一种管理客户端数据的方法 | |
KR102598619B1 (ko) | 데이터베이스 관리 서비스 제공 시스템 | |
CA2619778C (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster with collision monitoring | |
CN100563233C (zh) | 一种公共对象请求代理结构应用中的容错性方法 | |
Davies et al. | Websphere mq v6 fundamentals | |
CN100476792C (zh) | 一种实现机群环境中数据有效性的方法 | |
KR100249777B1 (ko) | 객체지향 웹 어플리케이션 모델링 방법 | |
US20150319219A1 (en) | Small footprint node controller core in a grid communications system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080402 |