# US 11,907,137 B2 · Systems and methods for leader node election in cluster server configurations

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

- Number: US 11,907,137 B2
- Document ID: US11907137B2
- Status: Granted
- Kind: B2
- Application number: 17/585,387
- Filed: 2022-01-26
- Published: 2023-08-10
- Granted: 2024-02-20
- Earliest claimed: 2022-01-26
- Assignees: Capital One Services, LLC
- Applicants: Capital One Services, LLC
- Inventors: Rohit Joshi; Ashish Gupta
- Web page: https://patentgrep.com/patent/US11907137B2

## CPC

- G06F 11/1425: {by reconfiguration of node membership}
- G06F 12/123: with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- H04L 41/30: {Decision processes by autonomous network management units using voting and bidding}
- H04L 61/45: Network directories; Name-to-address mapping
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 11/2025: {using centralised failover control functionality}
- G06F 11/2035: {without idle spare hardware}
- G06F 2212/251: Local memory within processor subsystem
- 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 leader node election, comprising a cluster system including a plurality of nodes, a node registry, wherein nodes are configured to transmit registration requests to the node registry, receive node data is response, and to determine a leader node based on the earliest registered node, and wherein the leader node is configured to dynamically allocate data slots between the plurality of nodes, and each of the nodes are configured to store data associated with allocated data slots in an in-memory least recently used component and data associated with all of the data slots in a persistent storage component.

## Claims

### Claim 1

A node management system, comprising:
a cluster system comprising a plurality of nodes, wherein:
the plurality of nodes includes a first node, and
the first node includes a memory comprising one or more shards; and
a client device in data communication with the plurality of nodes,
wherein the first node is configured to:
receive a client request,
identify one of the one or more shards based on the client request,
retrieve shard rules of the identified shard,
determine an allocation of one or more memory slots of the identified shard based on the client request,
lock the one or more memory slots,
perform one or more operations on the one or more memory slots associated with the client request based on the allocation, and
unlock the one or more memory slots.

### Claim 2 (depends on 1)

The node management system of claim 1, wherein the first node is further configured to:
determine an allocation of one or more database slots of the identified shard,
lock the one or more database slots, and
perform one or more operations on the one or more database slots based on the allocation; and
unlock the one or more database slots.

### Claim 3 (depends on 1)

The node management system of claim 1, wherein the first node is further configured to perform a hash function on a key in the client request and a modulo operation to determine the allocation of the one or more memory slots.

### Claim 4 (depends on 3)

The node management system of claim 3, wherein the modulo operation is based on an available number of memory slots in the shard.

### Claim 5 (depends on 3)

The node management system of claim 3, wherein the first node is further configured to:
identify the one of the one or more shard based on one of a header or footer of the key in the client request or a container name of a client certificate associated with the client request.

### Claim 6 (depends on 1)

The node management system of claim 1, wherein the shard rules comprise one of a cache capacity and a number of shards.

### Claim 7 (depends on 1)

The node management system of claim 1, wherein the one or more operations comprise one of a read, write, update, push, or pull request.

### Claim 8 (depends on 1)

The node management system of claim 1, wherein each of the one or more memory slots is associated with a key value pair.

### Claim 9 (depends on 2)

The node management system of claim 2, wherein each of the one or more storage slots is associate with a column family.

### Claim 10

A node management method, comprising the steps of:
receiving a client request from a client device;
identifying one of the one or more shard based on the client request;
retrieving shard rules of the identified shard;
determining an allocation of one or more memory slots of the identified shard based on the client request;
locking the one or more memory slots;
performing one or more operations on the one or more memory slots associated with the client request based on the allocation; and
unlocking the one or more memory slots,
wherein the one or more memory slots are locked when the one or more operations are performed.

### Claim 11 (depends on 10)

The node management method of claim 10, further comprising:
determining an allocation of one or more database slots of the identified shard; and
performing one or more operations on the one or more database slots based on the allocation,
wherein the one or more memory slots are locked when the one or more operations are performed.

### Claim 12 (depends on 10)

The node management method of claim 10, further comprising updating a memory slot associated with the one or more storage slot based on the shard rules.

### Claim 13 (depends on 12)

The node management method of claim 12, wherein the one or more memory slots represent a portion of an in memory least-recently used (LRU) component of the node, and the one or more storage slots represent one or more column families of a persistent storage component of the node.

### Claim 14 (depends on 13)

The node management method of claim 13, further comprising:
periodically backing up data stored in the in memory LRU component of the node, and the persistent storage component of the node into an backup persistent storage.

### Claim 15 (depends on 14)

The node management method of claim 14, wherein the backup persistent storage is one of a remote storage or other disk based storage.

### Claim 16 (depends on 13)

The node management method of claim 13, further comprising:
storing an index of one or keys processed by the node; and
retrieving a backup of data stored in the shard based on the index.

### Claim 17 (depends on 10)

The node management method of claim 10 further comprising:
encrypting a value associated with the memory slot associated with the client request; and
storing the encrypted value in the memory slot.

### Claim 18

A node management system, comprising:
a plurality of nodes;
wherein one of the plurality of nodes is configured to:
receive a client request from a client device,
update one of a memory slot or storage slot of the one of the plurality of nodes based on the client request, and
asynchronously update another one of the plurality of nodes when the another one of the plurality of response nodes is an in-region node.

### Claim 19 (depends on 18)

The node management system of claim 18, wherein the node is further configured to: asynchronously update a different another one of the plurality of nodes based on a key in the client request when the another one of the plurality of response nodes is an a cross-region node.

### Claim 20 (depends on 19)

The node management system of claim 19, wherein the node is further configured to:
asynchronously update the another one of the plurality of response nodes when the another one of the plurality of response nodes is an in-region node on a periodic basis; wherein any update occurring to the one of the nodes occurring during a period of time associated with the periodic basis is performed as a batch update.
