# US 12,118,389 B1 · Systems and methods for determining allocatable resources during proportional maintenance of complex computing systems using bifurcated filtering

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

- Number: US 12,118,389 B1
- Document ID: US12118389B1
- Status: Granted
- Kind: B1
- Application number: 18/664,183
- Filed: 2024-05-14
- Granted: 2024-10-15
- Earliest claimed: 2024-05-14
- Assignees: Citibank, N.A.
- Applicants: Citibank, N.A.
- Inventors: Deepali Tuteja; Girish Wali; Prasanth Babu Madakasira Ramakrishna
- Web page: https://patentgrep.com/patent/US12118389B1

## CPC

- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/505: {considering the load}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for proportional maintenance of complex computing systems. By using proportional maintenance (e.g., recommending/allocating resources based on current usage in the computing system), the systems and methods may scale current resources (e.g., hardware and/or software components) based on how those resources are currently utilized.

## Claims

### Claim 1

A system for determining allocatable resources during proportional maintenance of complex computing systems using bifurcated filtering, the system comprising:
one or more processors; and
one or more non-transitory, computer-readable media, comprising instructions that, when executed by the one or more processors, cause operations comprising:
receiving a log of a plurality of processing instances for a first computing system, wherein the plurality of processing instances each correspond to an instance of a computer program that is being executed, and wherein the log indicates respective processing characteristics for each of the plurality of processing instances;
determining a first subset of processing instances by filtering the plurality of processing instances based on whether each of the plurality of processing instances are linked to one or more identifiable resources, wherein the one or more identifiable resources correspond to a component of the first computing system;
determining a second subset of processing instances by filtering the first subset based on whether the one or more identifiable resources correspond to a resource available to be added to a resource pool, wherein the resource pool comprises a plurality of resources available to receive a resource allocation;
retrieving a proportional allocation setting for the first computing system, wherein the proportional allocation setting comprises a criterion for determining a respective allocation for the plurality of resources based on the respective processing characteristics;
determining respective allocations for each of the plurality of resources in the resource pool based on the proportional allocation setting and a respective processing characteristic, as indicated in the log, of a processing instance in the second subset; and
scaling the first computing system based on the respective allocations for each of the plurality of resources.

### Claim 2

A method for determining allocatable resources during proportional maintenance of complex computing systems using bifurcated filtering, the method comprising:
receiving a log of a plurality of processing instances for a first computing system;
determining a first subset of processing instances by filtering the plurality of processing instances based on whether each of the plurality of processing instances are linked to one or more identifiable resources;
determining a second subset of processing instances by filtering the first subset based on whether the one or more identifiable resources correspond to a resource available to be added to a resource pool, wherein the resource pool comprises a plurality of resources;
retrieving a proportional allocation setting for the first computing system;
determining respective allocations for each of the plurality of resources in the resource pool based on the proportional allocation setting; and
scaling the first computing system based on the respective allocations for each of the plurality of resources.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining the respective allocations for each of the plurality of resources in the resource pool based on the proportional allocation setting further comprises:
determining, based on the log, respective processing characteristics for each of the plurality of processing instances; and
further determining the respective allocations for each of the plurality of resources in the resource pool based on a respective processing characteristic, as indicated in the log, of a processing instance in the second subset.

### Claim 4 (depends on 2)

The method of claim 2, wherein determining the second subset of processing instances by filtering the first subset further comprises:
determining respective processing characteristics, as indicated in the log, of processing instances in the first subset; and
further filtering the first subset based on the respective processing characteristics.

### Claim 5 (depends on 2)

The method of claim 2, wherein determining the second subset of processing instances by filtering the first subset further comprises:
determining the processing instances in the first subset linked to a single identifiable resource; and
further filtering the first subset based on the processing instances in the first subset being linked to the single identifiable resource.

### Claim 6 (depends on 2)

The method of claim 2, wherein receiving the log of the plurality of processing instances for the first computing system further comprises:
determining a frequency for determining the respective allocations for each of the plurality of resources in the resource pool; and
generating a request for the log based on the frequency.

### Claim 7 (depends on 2)

The method of claim 2, wherein determining the respective allocations for each of the plurality of resources in the resource pool further comprises:
generating for display, in a user interface, a recommendation corresponding to the respective allocations; and
executing the respective allocations based on a user input confirming the recommendation.

### Claim 8 (depends on 2)

The method of claim 2, wherein determining the respective allocations for each of the plurality of resources in the resource pool further comprises:
determining a resource pool attribute for the resource pool; and
comparing the proportional allocation setting to the resource pool attribute.

### Claim 9 (depends on 2)

The method of claim 2, wherein determining the respective allocations for each of the plurality of resources in the resource pool further comprises:
determining a respective processing characteristic, as indicated in the log, of a processing instance in the second subset; and
comparing the proportional allocation setting to the respective processing characteristic.

### Claim 10 (depends on 2)

The method of claim 2, further comprising:
determining a resource pool attribute based on the respective allocations; and
comparing the resource pool attribute to a resource pool requirement to determine whether to execute the respective allocations.

### Claim 11 (depends on 2)

The method of claim 2, further comprising:
determining current resource pool allocations;
determining a resource pool attribute based on the respective allocations and the current resource pool allocations; and
comparing the resource pool attribute to a resource pool requirement to determine whether to execute the respective allocations.

### Claim 12 (depends on 2)

The method of claim 2, wherein determining the first subset of processing instances by filtering the plurality of processing instances further comprises:
retrieving a processing characteristic from the log; and
parsing the processing characteristic to identify a resource name.

### Claim 13 (depends on 2)

The method of claim 2, wherein determining the first subset of processing instances by filtering the plurality of processing instances further comprises:
retrieving a device driver log; and
comparing the device driver log to the log to identify a resource.

### Claim 14 (depends on 2)

The method of claim 2, wherein determining the first subset of processing instances by filtering the plurality of processing instances further comprises:
retrieving a system call log; and
comparing the system call log to the log to identify a resource.

### Claim 15 (depends on 2)

The method of claim 2, wherein determining the first subset of processing instances by filtering the plurality of processing instances further comprises:
retrieving a system interrupt log; and
comparing the system interrupt log to the log to identify a resource.

### Claim 16

One or more non-transitory, computer-readable media, comprising instructions that, when executed by one or more processors, cause operations comprising:
receiving a log of a plurality of processing instances for a first computing system;
determining a first subset of processing instances by filtering the plurality of processing instances based on whether each of the plurality of processing instances are linked to one or more identifiable resources;
determining a second subset of processing instances by filtering the first subset based on whether the one or more identifiable resources correspond to a resource available to be added to a resource pool, wherein the resource pool comprises a plurality of resources;
retrieving a proportional allocation setting for the first computing system; and
determining respective allocations for each of the plurality of resources in the resource pool based on the proportional allocation setting.

### Claim 17 (depends on 16)

The one or more non-transitory, computer-readable media of claim 16, wherein determining the respective allocations for each of the plurality of resources in the resource pool based on the proportional allocation setting further comprises:
determining, based on the log, respective processing characteristics for each of the plurality of processing instances; and
further determining the respective allocations for each of the plurality of resources in the resource pool based on a respective processing characteristic, as indicated in the log, of a processing instance in the second subset.

### Claim 18 (depends on 16)

The one or more non-transitory, computer-readable media of claim 16, wherein determining the second subset of processing instances by filtering the first subset further comprises:
determining respective processing characteristics, as indicated in the log, of processing instances in the first subset; and
further filtering the first subset based on the respective processing characteristics.

### Claim 19 (depends on 16)

The one or more non-transitory, computer-readable media of claim 16, wherein determining the second subset of processing instances by filtering the first subset further comprises:
determining the processing instances in the first subset linked to a single identifiable resource; and
further filtering the first subset based on the processing instances in the first subset being linked to the single identifiable resource.

### Claim 20 (depends on 16)

The one or more non-transitory, computer-readable media of claim 16, wherein receiving the log of the plurality of processing instances for the first computing system further comprises:
determining a frequency for determining the respective allocations for each of the plurality of resources in the resource pool; and
generating a request for the log based on the frequency.
