WO2004061648A1 - Affinization of transaction types - Google Patents
Affinization of transaction types Download PDFInfo
- Publication number
- WO2004061648A1 WO2004061648A1 PCT/US2003/000085 US0300085W WO2004061648A1 WO 2004061648 A1 WO2004061648 A1 WO 2004061648A1 US 0300085 W US0300085 W US 0300085W WO 2004061648 A1 WO2004061648 A1 WO 2004061648A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transaction
- type
- cpu
- central processing
- resource usage
- Prior art date
Links
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/5033—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 data affinity
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Definitions
- the present invention relates to a system and method for improving the efficiency of transaction processing systems .
- a common way to handle a large number of simultaneous user requests on a single computing system is to divide the requests either by software or by hardware, into separate "tasks" or “transactions” .
- this has become known as multi-tasking, a method whereby simultaneous user requests are placed in a queue, and executed in a sequential manner by a process.
- a transaction request will be understood to be a request generated by a software application, for some task to be performed by a computing system.
- a process will be understood to be a component (usually software) within an operating system which accepts a transaction request (hereinafter referred to as a "transaction"), queues the transaction, and then processes the transaction.
- processor caches are utilised by creating an affinity between the application processes that execute the business logic, and the central processing units (CPUs) that contain the caches .
- CPUs central processing units
- a particular application process may always interact with the same CPU.
- the creation of an affinity between an application process and a CPU ensures that whenever a particular application process executes, it always executes on the same CPU. This makes better use of a CPUs cache because, by always running a particular application process on the same CPU, there is a good chance that the CPU cache will contain the information relevant to the application process from a previous run.
- each application process continues to receive a mix of different types of transactions from the transaction processing system.
- every application process performs not one, but a number of different types of transactions.
- the transactions that an application process performs depends largely on the types of transactions requested by the users of the system. As users request various transactions to be performed, the transactions are randomly sent to any of the available application processes for execution.
- the present invention provides a method for processing a transaction in a transaction processing system, comprising the steps of, for a plurality of transaction types, associating each one of the plurality of transaction types with at least one central processing unit, and, on receipt of a transaction request from a client, determining the transaction request type, locating the associated central processing unit, and forwarding the transaction request to the associated central processing unit .
- the invention provides a method whereby similar types of transactions preferably do use the same CPU.
- the method is preferably achieved by affinitizing at least one transaction type to a CPU or set of CPUs, thereby minimizing the chance that the machine instructions of one transaction type overwrite the machine instructions of another transaction type in the CPU cache.
- affinization will be understood to mean any methodology whereby similar types of transactions are preferably allocated to a single CPU.
- the affinitization process preferably increases CPU cache performance and therefore also increases transaction throughput, resulting in an improved response time.
- the present invention ameliorates this problem by affinitizing a transaction type with a CPU. As similar transaction "types" are always executed on the same CPU, the need to overwrite the CPU cache is minimised, and consequently, the time taken to execute a transaction is minimised.
- the method comprises the further step of measuring the resource usage of a particular transaction type and utilising the resource usage data to allocate the transaction type to a central processing unit .
- the resource usage data includes data indicative of the number of transactions of a particular type that are processed relative to other transaction types .
- the resource usage data includes data indicative of the amount of computing resources required to process a transaction.
- a transaction processing system that can execute a plurality of transaction types.
- a transaction will be understood to mean a request from a user and/or another computing system to perform a task. This task may include the computation of a mathematical value, the manipulation of data, and/or any other task conventionally performed by the CPU of a computing system.
- the aforementioned transaction types are given as examples only, and should be construed as illustrative but not limiting the present invention.
- the computing system which runs the transaction processing system is comprised at least two CPU, but may comprise a multiple number of CPUs.
- One method employed by the applicant to ensure that the machine instructions of one transaction do not overwrite the machine instructions of another transaction in the CPU cache is to assign each transaction type to a particular CPU.
- the extra CPUs can have the most CPU intensive transaction types affinitized to them so as not to waste CPU resources unnecessarily.
- the most CPU intensive transaction types is may be affinitized to more than one CPU.
- the most CPU intensive transaction types would be allocated at least one CPU exclusively, while the less CPU intensive transaction types share a CPU.
- at least one less intensive transaction type shares processing time on a CPU with at least one another less intensive transaction type.
- the present invention provides a system for processing a transaction in a transaction processing system, comprising, association means arranged to associate each one of a plurality of transaction types with at least one central processing unit, and allocation means arranged, on receipt of a transaction request from a client, to determine the transaction request type, locate the associated central processing unit, and forward the transaction request to the associated central processing unit .
- the present invention provides a method for affinitizing a transaction type to a central processing unit, the method comprising the steps of, for each transaction type, providing resource usage data indicative of the amount of computing resources required to process a transaction type, and using the resource usage data to associate each transaction type to at least one central processing unit.
- a computer program arranged, when loaded on a computing system, to implement the method of the first aspect of the invention, or any dependent claim thereof.
- a computer readable medium providing a computer program in accordance with a fourth aspect of the invention.
- FIG. 1 is a flowchart outlining the steps necessary to manage a system in accordance with an embodiment of the invention
- Figure 2 is a schematic diagram illustrating the operation of an embodiment of the invention
- Figure 3 is a schematic diagram illustrating the operation of an embodiment of the invention.
- Figure 4 is a schematic diagram illustrating the operation of an embodiment of the present invention.
- FIG 1 there is shown a schematic diagram of a system in accordance with an embodiment of the present invention, comprising 4 CPUs.
- the system software contains a number of different transaction types.
- For each CPU there is a corresponding application process - namely HO, AH1, AH2 , and AH3.
- An application process is a software module arranged to receive transaction requests from an application gateway process, act as an interface between the transaction request and the CPU.
- EAE Enterprise Application Environment
- EAE is a proprietary fourth generation programming environment developed by Unisys Corporation. EAE is generally utilised to build and implement transaction processing systems, including the business logic components of a transaction processing system, the user interfaces of a transaction processing system, and the database schema of a transaction processing system. It will be understood that whilst the present invention is described with reference to the EAE environment, the present invention may be applied in any other suitable computing system.
- EAE in accordance with the prior art will affinitize every application process to one available CPU for all 4 available CPUs. That is, an affinity exists between an application process and a CPU. - 1 -
- EAE also incorporates an application gateway process which is responsible for routing the transaction requests to the application processes for execution.
- the application gateway process contains a function
- the application gateway process in one embodiment also contains second function "mapTransactionTypeToHost" which takes the transaction type and determines to which application host a transaction of this type should be routed.
- the algorithm mapping of the transaction type to a particular application host process preferably associates each transaction type with a separate CPU. Where there are more transaction types than CPUs (as in a later example) , the application gateway process uses its knowledge about the transaction type to minimize the cache contention. If possible, the application gateway process allocates more CPU-intensive transactions more exclusive use of the CPU.
- Step 1 A transaction request enters the application gateway lg.
- Step 2 The application gateway lg calls the "determineTransactionType" lg function to determine the transaction type.
- the application gateway lg calls the "mapTransactionTypeToHost" function to determine the most suitable application host, based on the information gathered with regard to the transaction type.
- the function map transaction type to host contains the algorithm that affinitizes transaction types to CPUs.
- the algorithm uses information with regard to the transaction type to choose which transactions to send to which CPUs, based upon the transaction type, so as to minimize cache contention and thereby preferably improve performance.
- Step 4 The application gateway forwards the transaction to the appropriate host process for processing.
- Step 5. The application host process executes the transaction on the CPU to which the host process is affinitized and returns the results to the application gateway.
- Step 6 The application gateway returns the results of the transaction to the user lu.
- FIG. 2 A first example of an embodiment of the present invention is illustrated in Figure 2, where there is provided a transaction processing system that can perform 8 different types of transactions labelled 21a,..., 21h.
- the computing system that executes the transaction processing system is comprised of 8 CPUs labelled 22a,..., 22h.
- a simple method to ensure that the machine instructions of one transaction do not overwrite the machine instructions of another transaction in the CPU cache is to assign each transaction type to a particular CPU (assignation denoted by arrows 23) .
- the CPUs as CPU1 , CPU2, ... ,CPU8 and the transaction types as Tl, T2 , ... , T8 , in the present embodiment, Tl will always ran on CPU1, T2 on CPU2 , and so on respectively for each of the 8 transaction types and CPUs .
- FIG. 3 there is shown a scenario in which there are more available CPUs than transaction types. There are 8 available CPUs labelled 32a,...;32h but only 6 different transaction types 31a,...,31f . If the aforementioned methodology was employed in this scenario (i.e. affinitizing each transaction type to one CPU), 2 CPUs would remain idle. Therefore, in order to avoid CPU resource wastage, the additional 2 CPUs have the most CPU intensive transaction types affinitized to them. Thus the most CPU intensive transaction types are affinitized to more than one CPU.
- transaction types T3 and 16 are executed very frequently and are allocated a large proportion of CPU resources compared to the other transaction types, the transaction type T3 could be assigned to CPU3 and CPU4 (via connector 34) , and transaction type T6 could be assigned to CPU7 (32g) and CPU8 (32h) .
- “intensity” of a transaction type may be determined in any suitable way. “Intensity” may be measured by any suitable method or means. For example, the average amount of time required to process a transaction type may be kept in a table of values, and the affinitization of a transaction type to a CPU may be based on the statistical values kept in the table. In other words, historical data with regard to the average time taken to process a transaction of a particular type may be employed to determine whether a transaction is classified as "more intensive” or "less intensive” . Any suitable methodology may be employed to differentiate transactions of different intensities.
- a third example of an embodiment of the present invention is as shown in Figure 4, which describes a situation where there are more transaction types than CPUs (which is commonly the case in many real world transaction processing systems) . If there are 4 available CPUs
- each CPU is assigned to at least one or more transaction types.
- the most CPU intensive transaction types would be allocated to at least one CPU exclusively, while the less CPU intensive transaction types may share a CPU.
- transaction type T4 is the most frequently executed transaction type and/or is the most CPU intensive transaction type, this transaction type T4 would be assigned to a single exclusive CPU (44) .
- transaction types T5 and T6 are found to be moderately CPU intensive, these transaction types would be assigned to another CPU (45) .
- the remaining 7 transaction types, which are not CPU intensive and are not executed frequently may be assigned to the remaining two CPUs (43 and 46) .
- Each transaction type should be affinitized to a CPU in such a manner as to minimize the overwriting of the machine instructions of one transaction type with the machine instructions of another transaction type.
- affinitization preferably requires a system or method for load management or load balancing, since different transaction types impose different loads on a CPU.
- each transaction type has different CPU resource requirements. Whilst there are exactly the same number of transaction types as available CPUs, some more intensive transaction types may require exclusive access to more than one CPU, while other less CPU intensive transaction types can share a CPU.
- EAE Enterprise Application Environment
- the affinitization of a transaction type to a CPU can be achieved indirectly by means of the application gateway and host processes.
- EAE provides an application host process for each available CPU in the computing system which can affinitize each of the host processes to a CPU.
- a transaction type may be indirectly affinitized to a CPU by sending transactions of a given type to the appropriate host process. Therefore, the affinitization process may be achieved in EAE by the use of the application gateway, in accordance with the following sequence of events:
- a transaction request enters the application gateway.
- the application gateway determines the transaction type.
- the application gateway determines the most appropriate application host process, based upon the transaction type (and upon a load management mechanism not described in this patent application) . 4. The application gateway forwards the transaction to the appropriate host process for processing.
- the application host process executes the transaction on the CPU to which the host process is affinitized and returns the results to the application gateway. 6.
- the application gateway returns the results of the transaction to the user.
- transaction types are affinitized to CPUs indirectly by means of the host processes, that are themselves, in turn, affinitized to the CPUs. That is, each transaction type would be affinitized to one or more host processes, and each host process will be affinitized to its own CPU. Modifications and variations as would be apparent to a skilled addressee are deemed to be within the scope of the present invention.
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2003/000085 WO2004061648A1 (en) | 2003-01-02 | 2003-01-02 | Affinization of transaction types |
US10/541,109 US20070011682A1 (en) | 2003-01-02 | 2003-01-02 | Affinization of transaction types |
AU2003217162A AU2003217162A1 (en) | 2003-01-02 | 2003-01-02 | Affinization of transaction types |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2003/000085 WO2004061648A1 (en) | 2003-01-02 | 2003-01-02 | Affinization of transaction types |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004061648A1 true WO2004061648A1 (en) | 2004-07-22 |
Family
ID=32710259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2003/000085 WO2004061648A1 (en) | 2003-01-02 | 2003-01-02 | Affinization of transaction types |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU2003217162A1 (en) |
WO (1) | WO2004061648A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5064999A (en) * | 1989-08-21 | 1991-11-12 | Hitachi, Ltd. | Advance transaction processing method |
US5202984A (en) * | 1988-07-14 | 1993-04-13 | Casio Computer Co., Ltd. | Apparatus and method for updating transaction file |
US5793861A (en) * | 1996-06-11 | 1998-08-11 | Executone Information Systems, Inc. | Transaction processing system and method |
US5943424A (en) * | 1996-06-17 | 1999-08-24 | Hewlett-Packard Company | System, method and article of manufacture for processing a plurality of transactions from a single initiation point on a multichannel, extensible, flexible architecture |
-
2003
- 2003-01-02 WO PCT/US2003/000085 patent/WO2004061648A1/en active Application Filing
- 2003-01-02 AU AU2003217162A patent/AU2003217162A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202984A (en) * | 1988-07-14 | 1993-04-13 | Casio Computer Co., Ltd. | Apparatus and method for updating transaction file |
US5064999A (en) * | 1989-08-21 | 1991-11-12 | Hitachi, Ltd. | Advance transaction processing method |
US5793861A (en) * | 1996-06-11 | 1998-08-11 | Executone Information Systems, Inc. | Transaction processing system and method |
US5943424A (en) * | 1996-06-17 | 1999-08-24 | Hewlett-Packard Company | System, method and article of manufacture for processing a plurality of transactions from a single initiation point on a multichannel, extensible, flexible architecture |
Also Published As
Publication number | Publication date |
---|---|
AU2003217162A1 (en) | 2004-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7299468B2 (en) | Management of virtual machines to utilize shared resources | |
US7281075B2 (en) | Virtualization of a global interrupt queue | |
US8032899B2 (en) | Providing policy-based operating system services in a hypervisor on a computing system | |
US8544005B2 (en) | Autonomic method, system and program product for managing processes | |
US7984445B2 (en) | Method and system for scheduling jobs based on predefined, re-usable profiles | |
US6732139B1 (en) | Method to distribute programs using remote java objects | |
US7743222B2 (en) | Methods, systems, and media for managing dynamic storage | |
US20060195715A1 (en) | System and method for migrating virtual machines on cluster systems | |
CN110795241B (en) | Job scheduling management method, scheduling center and system | |
US7458066B2 (en) | Computer system and method for transferring executables between partitions | |
US20080189714A1 (en) | Method, system, and storage medium for managing computer processing functions | |
US10505832B2 (en) | Resource coordinate system for data centers | |
US20030149716A1 (en) | Thread dispatch mechanism and method for multiprocessor computer systems | |
US20080229320A1 (en) | Method, an apparatus and a system for controlling of parallel execution of services | |
US20060143495A1 (en) | Workload balancing in environments with multiple clusters of application servers | |
JP2006048680A (en) | System and method for operating load balancers for multiple instance applications | |
US20060195845A1 (en) | System and method for scheduling executables | |
KR101770191B1 (en) | Resource allocation and apparatus | |
US6959264B2 (en) | Autonomous computing probe agent | |
JP5030647B2 (en) | Method for loading a program in a computer system including a plurality of processing nodes, a computer readable medium containing the program, and a parallel computer system | |
US6922832B2 (en) | Execution of dynamic services in a flexible architecture for e-commerce | |
US20030065702A1 (en) | Cache conscious load balancing | |
US7454749B2 (en) | Scalable parallel processing on shared memory computers | |
WO2019024235A1 (en) | Electronic device, server allocation control method and computer readable storage medium | |
US20070011682A1 (en) | Affinization of transaction types |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2007011682 Country of ref document: US Ref document number: 10541109 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase | ||
WWP | Wipo information: published in national office |
Ref document number: 10541109 Country of ref document: US |