# US 2013/0160024 A1 · Dynamic Load Balancing for Complex Event Processing

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

- Number: US 2013/0160024 A1
- Document ID: US20130160024A1
- Status: Published application
- Kind: A1
- Application number: 13/331,830
- Filed: 2011-12-20
- Published: 2013-06-20
- Earliest claimed: 2011-12-20
- Assignees: Sybase, Inc.
- Inventors: Gregory Shtilman; Dilip Sarmah; Mark Theiding
- Web page: https://patentgrep.com/patent/US20130160024A1

## CPC

- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 2209/5022: Workload threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed herein are methods, systems, and computer readable storage media for performing load balancing actions in a complex event processing system. Static statistics of a complex event processing node, dynamic statistics of the complex event processing node, and project statistics for projects executing on the complex event processing node are aggregated. A determination is made as to whether the aggregated statistics satisfy a condition. A load balancing action may be performed, based on the determination.

## Claims

### Claim 1

A computer-implemented method in a complex event processing cluster manager, comprising:
aggregating one or more static statistics of a complex event processing node, one or more dynamic statistics of the complex event processing node, and one or more project statistics for one or more projects executing on the complex event processing node;
determining whether the aggregated statistics satisfy a condition; and
causing a load balancing action to be performed, based on the determination.

### Claim 2 (depends on 1)

The method of claim 1, wherein the static statistics of the complex event processing node include one or more of a CPU clock rate, a memory amount, a disk space amount, an operating system, a CPU architecture, a number of cores, a geographic location, a network interface speed, a network interface type, a graphics processing unit type, a graphics processing unit speed, a storage type, a storage speed, and a user configured capacity.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more dynamic statistics of the complex event processing node include one or more of a CPU utilization percentage, a memory usage amount, a memory usage percentage, a number of threads amount, a disk input rate, a disk output rate, a network input rate, a network output rate, and an available disk space amount.

### Claim 4 (depends on 1)

The method of claim 1, wherein the one or more project statistics for one or more projects executing on the complex event processing node include one or more of an input stream message rate, an output stream message rate, a pending stream message rate, a latency statistic, a CPU utilization amount, a memory usage amount, a user specified cost, an input throughput rate, an output throughput rate, an aggregated input throughput amount, an aggegated output throughput amount, an adapter specific performance metric, or a disk usage amount.

### Claim 5 (depends on 1)

The method of claim 1, wherein causing a load balancing action to be performed further comprises increasing the priority of a project executing on the complex event processing node, based on the determination.

### Claim 6 (depends on 1)

The method of claim 1, wherein causing a load balancing action to be performed further comprises moving a project executing on the complex event processing node to a second complex event processing node, based on the determination.

### Claim 7 (depends on 1)

The method of claim 1, wherein causing a load balancing action to be performed further comprises providing more resources to a project executing on the complex event node, based on the determination.

### Claim 8 (depends on 1)

The method of claim 1, wherein determining whether the aggregated statistics satisfy a condition further comprises determining whether a CPU utilization percentage of the complex event processing node satisfies a threshold.

### Claim 9 (depends on 1)

The method of claim 1, wherein determining whether the aggregated statistics satisfy a condition further comprises determining whether a input stream message rate of the complex event processing node satisfies a threshold.

### Claim 10 (depends on 1)

The method of claim 1, wherein determining whether the aggregated statistics satisfy a condition further comprises determining whether a pending message count of the complex event processing node satisfies a threshold.

### Claim 11 (depends on 1)

The method of claim 1, wherein determining whether the aggregated statistics satisfy a condition further comprises determining whether a dynamic statistic of the complex event processing node satisfies a user-specified threshold.

### Claim 12

A complex event processing node, comprising:
a load balancing agent, configured to:
aggregate one or more static statistics of a complex event processing node, one or more dynamic statistics of the complex event processing node, and one or more project statistics for one or more projects executing on the complex event processing node;
determine whether the aggregated statistics satisfy a condition; and
cause a load balancing action to be performed, based on the determination.

### Claim 13 (depends on 12)

The system of claim 12, wherein the static statistics of the complex event processing node include one or more of a CPU clock rate, a memory amount, a disk space amount, an operating system, a CPU architecture, a number of cores, a geographic location, a network interface speed, a network interface type, a graphics processing unit type, a graphics processing unit speed, a storage type, a storage speed, and a user configured capacity.

### Claim 14 (depends on 12)

The system of claim 12, wherein the one or more dynamic statistics of the complex event processing node include one or more of a CPU utilization percentage, a memory usage amount, a memory usage percentage, a number of threads amount, a disk input rate, a disk output rate, a network input rate, a network output rate, and an available disk space amount.

### Claim 15 (depends on 12)

The system of claim 12, wherein the one or more project statistics for one or more projects executing on the complex event processing node include one or more of an input stream message rate, and output stream message rate, a latency statistic, a CPU utilization amount, a memory usage amount, a user specified cost, an input throughput rate, an output throughput rate, an aggregated input throughput amount, an aggregated output throughput amount, an adapter specific performance metric, or a disk usage amount.

### Claim 16 (depends on 12)

The system of claim 12, wherein the cluster manager is further configured to cause a load balancing action to be performed by increasing the priority of a project executing on the complex event processing node, based on the determination.

### Claim 17 (depends on 12)

The system of claim 12, wherein the cluster manager is further configured to cause a load balancing action to be performed by moving a project executing on the complex event processing node to a second complex event processing node, based on the determination.

### Claim 18 (depends on 12)

The system of claim 12, wherein the cluster manager is further configured to cause a load balancing action to be performed by providing more resources to a project executing on the complex event node, based on the determination.

### Claim 19

A computer readable storage medium having instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
aggregating one or more static statistics of the complex event processing node, one or more dynamic statistics of the complex event processing node, and one or more project statistics for one or more projects executing on the complex event processing node;
determining whether the aggregated statistics satisfy a condition; and
causing a load balancing action to be performed, based on the determination.

### Claim 20 (depends on 19)

The computer readable storage medium of claim 19, wherein causing a load balancing action to be performed further comprises increasing the priority of a project executing on the complex event processing node, based on the determination.
