# US 12,008,250 B2 · Systems and methods for achieving near zero impact during node failure in a cluster system

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

- Number: US 12,008,250 B2
- Document ID: US12008250B2
- Status: Granted
- Kind: B2
- Application number: 17/585,407
- Filed: 2022-01-26
- Published: 2023-07-27
- Granted: 2024-06-11
- Earliest claimed: 2022-01-26
- Assignees: Capital One Services, LLC
- Applicants: Capital One Services, LLC
- Inventors: Rohit Joshi; Ashish Gupta; Glen Hao Cheng
- Web page: https://patentgrep.com/patent/US12008250B2

## CPC

- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- H04L 43/0805: by checking availability
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- H04L 43/103: with adaptive polling, i.e. dynamically adapting the polling rate
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Disclosed are systems and methods for node management performed by a client driver of a client device comprising receiving cluster topology data from the cluster system; transmitting, a data request to each of a plurality of nodes in a cluster system; receiving a reply from each of the nodes that are responsive; assigning, by the client driver, based on the received replies, a responsive status for each of the nodes that are responsive or a non-responsive status for each of nodes that are non-responsive; updating a listing of management data, wherein the management data includes: an identification of each of the plurality of nodes, and a current status of each of the plurality of nodes; and routing, by the client driver, a client request to one of the plurality of nodes that are responsive based on the cluster topology data.

## Claims

### Claim 1

A node management system, comprising:
a cluster system comprising a plurality of nodes, including a leader node; and
a client device comprising a client driver in data communication with the plurality of nodes, wherein the client driver is configured to:
receive cluster topology data from the leader node of the cluster system,
transmit a data request to each of the nodes,
receive a reply from each of the nodes that are responsive,
assign, based on the received replies, a responsive status for each of the nodes that are responsive or a non-responsive status for each of nodes that are non-responsive,
update a listing of management data, wherein the management data includes:
an identification of each of the plurality of nodes,
a current status of each of the plurality of nodes,
a response time for the reply from each of the plurality of nodes that are responsive, and
a load on each of the plurality of nodes, and
route a client request to one of the plurality of nodes that are responsive based on the cluster topology data and the management data, wherein
the client driver of the client device performs a hashing function on a key contained in the client request to obtain a hash value,
the client driver of the client device performs a modulo function on the hash value to obtain a data slot value of the key using a total number of a plurality of data slots in the cluster system, the data slot value being a data slot value of one of the plurality of data slots in the cluster system, and the data slot value being associated with the one of the plurality of nodes that are responsive, and
the client driver routes the client request to the one of the plurality of nodes further based on the data slot value and by knowing the plurality of data slots allocated to each of the plurality of nodes in the cluster system and the total number of the plurality of data slots in the cluster system.

### Claim 2 (depends on 1)

The node management system of claim 1, wherein each of the plurality of nodes stores a data set.

### Claim 3 (depends on 2)

The node management system of claim 2, wherein the data set is the complete data set subject to request by the client device.

### Claim 4 (depends on 1)

The node management system of claim 1, wherein the client driver is configured to periodically transmit a data request to each of the nodes.

### Claim 5 (depends on 4)

The node management system of claim 4, wherein the client driver is further configured to increase a frequency in which it periodically transmits data requests to one of the plurality of nodes, when the one of the plurality of nodes is assigned a non-responsive status.

### Claim 6 (depends on 5)

The node management system of claim 5, wherein the client driver is further configured to cease the periodic transmission of data requests to the one of the plurality of nodes when a number of attempts to transmit data requests to the one of the plurality of nodes exceeds a threshold number.

### Claim 7 (depends on 4)

The node management system of claim 4, wherein the client driver is further configured to receive cluster topology data from transmitting a cluster topology request to a hostname of the cluster system.

### Claim 8 (depends on 7)

The node management system of claim 7, wherein the leader node is configured to update a fully qualified domain name of the cluster system to its address.

### Claim 9 (depends on 1)

The node management system of claim 1, wherein the management data further includes a leader status for each of the plurality of nodes.

### Claim 10 (depends on 9)

The node management system of claim 9, wherein a reply from each of the nodes that are responsive includes an indication of a leader status for an associated node.

### Claim 11 (depends on 8)

The node management system of claim 8, wherein the client driver is further configured to determine the leader node based on the fully qualified domain name.

### Claim 12 (depends on 1)

The node management system of claim 1, wherein the cluster topology data includes an identification of each of the nodes in the cluster system.

### Claim 13

A method for node management, comprising:
receiving, by a client driver of a client device, cluster topology data from a leader node of the cluster system;
transmitting, by the client driver, a data request to each of a plurality of nodes in the cluster system;
receiving, by the client driver, a reply from each of the nodes that are responsive;
assigning, by the client driver, based on the received replies, a responsive status for each of the nodes that are responsive or a non-responsive status for each of nodes that are non-responsive;
updating, by the client driver, a listing of management data, wherein the management data includes:
an identification of each of the plurality of nodes,
a current status of each of the plurality of nodes,
response time for the reply from each of the plurality of nodes that are responsive, and
a load on each of the plurality of nodes; and
routing, by the client driver, a client request to one of the plurality of nodes that are responsive based on the cluster topology data and the management data, wherein
the client driver of the client device performs a hashing function on a key contained in the client request to obtain a hash value,
the client driver of the client device performs a modulo function on the hash value to obtain a data slot value of the key using a total number of a plurality of data slots in the cluster system, the data slot value being a data slot value of one of the plurality of data slots in the cluster system, and the data slot value being associated with the one of the plurality of nodes that are responsive, and
the client driver routes the client request to the one of the plurality of nodes further based on the data slot value and by knowing the plurality of data slots allocated to each of the plurality of nodes in the cluster system and the total number of the plurality of data slots in the cluster system.

### Claim 14 (depends on 13)

The method of claim 13, wherein the cluster topology data includes an identification of each of the nodes in the cluster system.

### Claim 15 (depends on 14)

The method of claim 14, wherein the cluster topology data include an address of each of the nodes in the cluster system.

### Claim 16 (depends on 14)

The method of claim 14, wherein the cluster topology data include an identification of a node not previously in the cluster system.

### Claim 17

A non-transitory computer-accessible medium comprising instructions for execution by a processor, wherein, upon execution of the instructions, the processor is configured to perform procedures comprising:
receiving, by a client driver of a client device, cluster topology data from the cluster system;
transmitting, by the client driver, a data request to each of a plurality of nodes in a cluster system;
receiving, by the client driver, a reply from each of the nodes that are responsive;
assigning, by the client driver, based on the received replies, a responsive status for each of the nodes that are responsive or a non-responsive status for each of nodes that are non-responsive;
updating, by the client driver, a listing of management data, wherein the management data includes:
an identification of each of the plurality of nodes,
a current status of each of the plurality of nodes
a response time for the reply from each of the plurality of nodes that are responsive, and
a load on each of the plurality of nodes; and
routing, by the client driver, a client request to one of the plurality of nodes that are responsive, wherein
the client driver of the client device performs a hashing function on a key contained in the client request to obtain a hash value,
the client driver of the client device performs a modulo function on the hash value to obtain a data slot value of the key using a total number of a plurality of data slots in the cluster system, the data slot value being a data slot value of one of the plurality of data slots in the cluster system, and the data slot value being associated with the one of the plurality of nodes that are responsive, and
the client driver routes the client request to the one of the plurality of nodes further based on the data slot value and by knowing the plurality of data slots allocated to each of the plurality of nodes in the cluster system and the total number of the plurality of data slots in the cluster system.

### Claim 18 (depends on 17)

The non-transitory computer-accessible medium of claim 17, wherein the load is based on the number of connections to the node.

### Claim 19 (depends on 17)

The non-transitory computer-accessible medium of claim 17, wherein the load is based on a resource utilization on the node.

### Claim 20 (depends on 17)

The non-transitory computer-accessible medium of claim 17, wherein the management data further includes a count of a number of consecutive times each of the plurality of nodes failed to provide a reply to a data request.
