# US 12,182,581 B2 · Prioritized deployment of nodes in a distributed storage system

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

- Number: US 12,182,581 B2
- Document ID: US12182581B2
- Status: Granted
- Kind: B2
- Application number: 17/979,559
- Filed: 2022-11-02
- Published: 2024-05-02
- Granted: 2024-12-31
- Earliest claimed: 2022-11-02
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Naveen Revanna; Aditya Dani; Piyush Nimbalkar; Kshithij Iyer
- Web page: https://patentgrep.com/patent/US12182581B2

## CPC

- G06F 9/4405: {Initialisation of multiprocessor systems}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 9/526: {Mutual exclusion algorithms}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An example method for prioritizing deployment of nodes in a cluster comprises: determining, at a first time and by a first node of a plurality of nodes in a cluster of a distributed storage system, that a second node having a higher priority than the first node is in a startup phase of the second node; determining, at a second time subsequent to the first time and by the first node, that the second node has completed the startup phase of the second node; and initiating, based on the determining that the second node has completed the startup phase and by the first node, a startup phase of the first node.

## Claims

### Claim 1

A method comprising:
determining, at a first time and by a first node of a plurality of nodes in a cluster of a distributed storage system, that a second node having a higher priority than the first node is in a startup phase of the second node;
determining, at a second time subsequent to the first time and by the first node, that the second node has completed the startup phase of the second node; and
initiating a startup phase of the first node by the first node based on the determining that the second node has completed the startup phase of the second node, wherein:
the second node is configured to utilize a lock during the startup phase of the second node, and
the determining that the second node has completed the startup phase of the second node is based on a releasing of the lock.

### Claim 2 (depends on 1)

The method of claim 1, wherein the second node having the higher priority than the first node is based a first node type associated with the first node and a second node type associated with the second node.

### Claim 3 (depends on 2)

The method of claim 2, wherein the second node type is a metadata node.

### Claim 4 (depends on 1)

The method of claim 1, wherein the second node having the higher priority than the first node is based on a first characteristic associated with the first node and a second characteristic associated with the second node.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the lock is included in a plurality of locks; and
a number of the plurality of locks is based on a limit associated with a resource constraint associated with the cluster.

### Claim 6 (depends on 5)

The method of claim 5, wherein the resource constraint comprises an application programming interface (API) call limit associated with a platform of the cluster.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first node and the second node have a same node type.

### Claim 8 (depends on 7)

The method of claim 7, wherein:
the first node and the second node comprise a plurality of startup phases for booting up the first node and the second node, respectively; and
the plurality of startup phases includes the startup phase of the first node and the startup phase of the second node.

### Claim 9 (depends on 1)

The method of claim 1, wherein the determining that the second node has completed the startup phase of the second node comprises determining a health level of a service provided by the second node.

### Claim 10

A method comprising:
initiating, based on a prioritization of nodes, a startup phase of a first set of nodes of a plurality of nodes in a cluster of a distributed storage system;
detecting a completion of the startup phase of one or more nodes included in the first set of nodes; and
initiating, based on the prioritization of the nodes and the detecting the completion of the startup phase, a startup phase of a second set of one or more nodes of the plurality of nodes in the distributed storage system, wherein:
the first set of nodes are configured to utilize a set of locks during the startup phase, and
the detecting the completion of the startup phase is based on a releasing of the locks.

### Claim 11 (depends on 10)

The method of claim 10, wherein the prioritization of the nodes is based on a node type associated with each node of the plurality of nodes.

### Claim 12 (depends on 10)

The method of claim 10, wherein the prioritization of the nodes is based on a characteristic associated with each node of the plurality of nodes.

### Claim 13 (depends on 10)

The method of claim 10, wherein the set of locks comprises a number of locks, the number based on a limit associated with a resource constraint associated with the cluster.

### Claim 14 (depends on 10)

The method of claim 10, wherein:
the first set of nodes comprises a first subset of a particular node type of the plurality of nodes; and
the second set of nodes comprises a second subset of the particular node type of the plurality of nodes.

### Claim 15 (depends on 14)

The method of claim 14, wherein:
each node of the first set of nodes comprises a plurality of startup phases for booting up each node, the plurality of startup phases including the startup phase of the first set of nodes.

### Claim 16 (depends on 10)

The method of claim 10, wherein the detecting the completion of the startup phase of the one or more nodes included in the first set of nodes comprises determining a health level of a service provided by the first set of nodes.

### Claim 17

A system comprising:
one or more memories storing computer-executable instructions; and
one or more processors to execute the computer-executable instructions to:
determine, at a first time and by a first node of a plurality of nodes in a cluster of the system, that a second node having a higher priority than the first node is in a startup phase of the second node;
determine, at a second time subsequent to the first time and by the first node, that the second node has completed the startup phase of the second node; and
initiate a startup phase of the first node by the first node based on the determining that the second node has completed the startup phase of the second node, wherein:
the second node is configured to utilize a lock during the startup phase of the second node, and
the determining that the second node has completed the startup phase of the second node is based on a releasing of the lock.
