# US 9,882,967 B2 · Processing incoming transactions based on resource utilization status of backend systems in an appliance cluster

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,882,967 B2
- Document ID: US9882967B2
- Status: Granted
- Kind: B2
- Application number: 14/494,705
- Filed: 2014-09-24
- Published: 2015-04-02
- Granted: 2018-01-30
- Earliest claimed: 2013-09-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Chun-Fei Chang; Jeffrey C H Liu; Joey H Y Tseng; Hao-Ting Shih
- Web page: https://patentgrep.com/patent/US9882967B2

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 9/00: Arrangements for program control, e.g. control units (program control for peripheral devices G06F13/10)
- G06F 9/466: {Transaction processing}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/505: {considering the load}
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- G06F 2201/81: Threshold
- G06F 2201/87: Monitoring of transactions
- G06F 2201/88: Monitoring involving counting
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 63/0209: {Architectural arrangements, e.g. perimeter networks or demilitarized zones}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A processor-implemented method and/or computer program product negotiates the processing of incoming transactions based on resource utilization status of backend systems in an appliance cluster. An incoming transaction, which is a specialized function for an appliance, is received by a processor. The processor determines whether the incoming transaction can be processed by the appliance cluster based on a current threshold level and a current transaction count, and then identifies a target appliance from the appliance cluster as a negotiation device in response to determining that the incoming transaction cannot be processed.

## Claims

### Claim 1

A method of negotiating processing of incoming transactions in an appliance cluster, the method comprising:
receiving, by a receiving appliance in an appliance cluster, an incoming transaction from a client device via a network, wherein the incoming transaction is a specialized function for an appliance in the appliance cluster, and wherein all appliances in the appliance cluster share a same backend system that is in network communication with the appliance cluster;
determining, by one or more processors, whether the incoming transaction can be processed by the receiving appliance based on a current threshold level and a current transaction count of the receiving appliance, wherein the current threshold level is a sum of a first quantity of transactions that can be handled by a first appliance in the appliance cluster plus a second quantity of transactions that can be handled by a second appliance in the appliance cluster on behalf of the first appliance;
identifying, by one or more processors, a target appliance from the appliance cluster as a negotiation device in response to determining that the incoming transaction cannot be processed by the receiving appliance, wherein the negotiation device negotiates with another appliance in the appliance cluster to receive the incoming transaction; and
sending, from the negotiation device to a lending appliance in the appliance cluster, the incoming transaction, wherein the lending appliance is an original member of the appliance cluster, wherein the lending appliance has a highest amount of available capacity to handle transferred transactions from other appliances in the appliance cluster, wherein the highest amount of available capacity is based on the lending appliance having a greater current threshold level than any other appliance in the appliance cluster, and wherein the lending appliance has never been chosen before to receive a transferred incoming transaction from another appliance in the appliance cluster.

### Claim 2 (depends on 1)

The method of claim 1, wherein the current threshold level is adjusted according to a resource utilization status of the backend system.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
adjusting, by one or more processors, the current threshold level to create an adjusted current threshold level, wherein the adjusted current threshold level is a sum of the current threshold level plus a percentage of the current threshold level as set by an average resource utilization rate of the backend system by the receiving appliance.

### Claim 4 (depends on 1)

The method of claim 1, wherein said determining requires determining whether a sum of a unit of the incoming transaction and the current transaction count is less than the current threshold level.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
checking, by one or more processors, a transaction distribution table (TDT) and selecting a spared transaction threshold unit which has the largest positive value but has never been chosen before, thereby identifying the target appliance, wherein the transaction distribution table comprises an incoming transaction unit, an outgoing transaction unit and the spared transaction threshold unit, wherein the spared transaction threshold unit is calculated by subtracting the current transaction count from the current threshold level.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
checking, by one or more processors, the target appliance for capability of receiving the incoming transaction, wherein the target appliance calculates an adjusted value of the current threshold level at a point in time of negotiation and a sum of a current transaction count of the target appliance and a unit of the incoming transaction.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
re-directing, by one or more processors, the incoming transaction to the target appliance and updating a transaction distribution table (TDT) in response to the adjusted value of the current threshold level of the target appliance being larger than the sum of the current transaction count of the target appliance and the unit of the incoming transaction.

### Claim 8 (depends on 1)

The method of claim 1, wherein the current threshold level is a threshold in a Service Level Monitoring (SLM) policy.

### Claim 9

An appliance, comprising:
a bus;
a memory connected to the bus, wherein the memory stores therein an instruction; and
a processing unit connected to the bus, wherein the processing unit executes instructions to:
receive an incoming transaction, wherein the incoming transaction is a specialized function for an appliance in an appliance cluster, and wherein all appliances in the appliance cluster share a same backend system that is in network communication with the appliance cluster;
determine whether the incoming transaction can be processed by a receiving appliance in the appliance cluster based on a current threshold level and a current transaction count of the receiving appliance in the appliance cluster, wherein the current threshold level is a sum of a first quantity of transactions that can be handled by a first appliance in the appliance cluster plus a second quantity of transactions that can be handled by a second appliance in the appliance cluster on behalf of the first appliance;
identify a target appliance from the appliance cluster as a negotiation device in response to determining that the incoming transaction cannot be processed, wherein the negotiation device negotiates with another appliance in the appliance cluster to receive the incoming transaction; and
send the incoming transaction from the negotiation device to a lending appliance in the appliance cluster, wherein the lending appliance is an original member of the appliance cluster, wherein the lending appliance has a highest amount of available capacity to handle transferred transactions from other appliances in the appliance cluster, wherein the highest amount of available capacity is based on the lending appliance having a greater current threshold level than any other appliance in the appliance cluster, and wherein the lending appliance has never been chosen before to receive a transferred incoming transaction from another appliance in the appliance cluster.

### Claim 10 (depends on 9)

The appliance of claim 9, wherein the current threshold level is adjusted according to resource utilization status of backend systems.

### Claim 11 (depends on 10)

The appliance of claim 10, wherein the current threshold level depends on a difference between a current resource utilization rate and a predetermined average resource utilization rate.

### Claim 12 (depends on 9)

The appliance of claim 9, wherein the determination requires determining whether a sum of a unit of the incoming transaction and the current transaction count is less than the current threshold level.

### Claim 13 (depends on 9)

The appliance of claim 9, wherein the processing unit further executes instructions to:
check a transaction distribution table (TDT) and select a spared transaction threshold unit which has the largest positive value but has never been chosen before, thereby identifying the target appliance,
wherein the transaction distribution table comprises an incoming transaction unit, an outgoing transaction unit and the spared transaction threshold unit,
wherein the spared transaction threshold unit is calculated by subtracting the current transaction count from the current threshold level.

### Claim 14 (depends on 13)

The appliance of claim 13, wherein the processing unit further executes instructions to:
check the target appliance for capability of receiving the incoming transaction, wherein the target appliance calculates an adjusted value of the current threshold level at a point in time of negotiation and a sum of a current transaction count of the target appliance and a unit of the incoming transaction.

### Claim 15 (depends on 14)

The appliance of claim 14, wherein the processing unit further executes instructions to:
re-direct the incoming transaction to the target appliance and update a transaction distribution table (TDT) in response to the adjusted value of the current threshold level of the target appliance being larger than the sum of the current transaction count of the target appliance and the unit of the incoming transaction.

### Claim 16 (depends on 9)

The appliance of claim 9, wherein the current threshold level is a threshold in a Service Level Monitoring (SLM) policy.

### Claim 17

A computer program product to negotiate the processing of incoming transactions based on resource utilization status of backend systems in an appliance cluster, the computer program product comprising a computer readable storage medium having program code embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, and wherein the program code is readable and executable by a processor to perform a method comprising:
receiving, by a receiving appliance in an appliance cluster, an incoming transaction from a client device, wherein the incoming transaction is a specialized function for an appliance in the appliance cluster, and wherein all appliances in the appliance cluster share a same backend system that is in network communication with the appliance cluster;
determining whether the incoming transaction can be processed by a receiving appliance in the appliance cluster based on a current threshold level and a current transaction count of the receiving appliance, wherein the current threshold level is a sum of a first quantity of transactions that can be handled by a first appliance in the appliance cluster plus a second quantity of transactions that can be handled by a second appliance in the appliance cluster on behalf of the first appliance;
identifying a target appliance from the applicant cluster as a negotiation device in response to determining that the incoming transaction cannot be processed, wherein the negotiation device negotiates with another appliance in the appliance cluster to receive the incoming transaction; and
sending the incoming transaction from the negotiation device to a lending appliance in the appliance cluster, wherein the lending appliance is an original member of the appliance cluster, wherein the lending appliance has a highest amount of available capacity to handle transferred transactions from other appliances in the appliance cluster, wherein the highest amount of available capacity is based on the lending appliance having a greater current threshold level than any other appliance in the appliance cluster, and wherein the lending appliance has never been chosen before to receive a transferred incoming transaction from another appliance in the appliance cluster.

### Claim 18 (depends on 1)

The method of claim 1, further comprising:
adjusting, by one or more processors, a current threshold level of the appliance cluster according to a resource utilization status of backend systems that are utilized by the appliance cluster.

### Claim 19 (depends on 1)

The method of claim 1, wherein each appliance in the appliance cluster has a unique and dynamic current threshold level.

### Claim 20 (depends on 1)

The method of claim 1, further comprising:
receiving, by the negotiation device and from the lending appliance, responses to the incoming transaction from a backend system that is utilized by the appliance cluster.
