IP Library › Granted Patent US 11,552,844
Granted Patent B1
US 11,552,844 · App. 17/717,634 · Granted Jan 10, 2023

Persistent storage for server clusters

Inventors: Matthew I. Ahles (St. Paul, MN); Timothy J. Guertin (Minneapolis, MN); Chad R. Pruden (Maple Grove, MN); Andrew Ray (Anoka, MN); Junpu Fan (Minneapolis, MN)
Assignee: Target Brands, Inc.
H04L41/0806G06F3/0628G06F3/0637G06F9/5077H04L41/0893H04L63/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,552,844
App. No.
17/717,634
Granted
Jan 10, 2023
Kind
B1
Abstract

A computer-implemented method includes receiving a request to provision a set of storage volumes for a server cluster, wherein the request includes an identifier for the server cluster and generating a provisioning work ticket for each storage volume in the set of storage volumes, each provisioning work ticket including the identifier for the server cluster. The provisioning work tickets are provided to a message broker. Multiple volume provisioning instances are executed such that at least two of the volume provisioning instances operate in parallel with each other and such that each volume provisioning instance receives a respective provisioning work ticket from the message broker and attempts to provision a respective storage volume of the set of storage volumes for the server cluster in response to receiving the volume provisioning work ticket.

Claims (51)

1. A computer-implemented method comprising:

receiving a request to provision a set of storage volumes for a server cluster, wherein the request includes an identifier for the server cluster;

generating a provisioning work ticket for each storage volume in the set of storage volumes, each provisioning work ticket including the identifier for the server cluster;

providing the provisioning work tickets to a message broker; and

executing multiple volume provisioning instances such that at least two of the volume provisioning instances operate in parallel with each other and such that each volume provisioning instance receives a respective provisioning work ticket from the message broker and attempts to provision a respective storage volume of the set of storage volumes for the server cluster in response to receiving the volume provisioning work ticket.

2. The computer-implemented method of claim 1 further comprising:

one of the multiple volume provisioning instances encountering a problem provisioning a storage volume and in response, sending a provisioning work ticket to the message broker.

3. The computer-implemented method of claim 2 wherein the provisioning work ticket received from the message broker includes a retries-remaining value and wherein after the volume provisioning instance encounters the problem, the volume provisioning instance determines whether to send the provisioning work ticket based on the retries-remaining value.

4. The computer-implemented method of claim 3 wherein the request to provision the set of storage volumes includes a region where the set of storage volumes is to be located and wherein each generated provisioning work ticket includes the region.

5. The computer-implemented method of claim 1 further comprising after receiving the request to provision the set of storage volumes, generating an identifier for the set of volumes and returning the identifier for the set of volumes as part of a response to the request before the storage volumes for the set of storage volumes are provisioned.

6. The computer-implemented method of claim 5 further comprising:

receiving a request for a lease to a storage volume in the set of storage volumes together with the identifier for the storage volume and an IP address;

using the identifier for the storage volume to retrieve the identifier for the server cluster; and

sending a request to a cluster manager to verify that the IP address is for a compute provider in the server cluster.

7. The computer-implemented method of claim 6 further comprising searching a database containing entries for each storage volume in the set of storage volumes to determine whether a storage volume has been leased to the IP address before leasing a storage volume to the IP address.

8. A system comprising:

a processor for executing computer readable code stored in memory, the computer readable code comprising:

a cluster manager configured to define and manage a server cluster; and

a persistent storage manager configured to:

receive a request for a set of storage volumes for the server cluster wherein the request comprises an identifier for the server cluster;

provide an identifier for the requested set of storage volumes;

receive a request for a lease for a storage volume in the set of storage volumes, the request comprising the identifier for the set of storage volumes and an IP address of a compute provider that will access the storage volume; and

in response to receiving the request for the lease, verifying with the cluster manager that the IP address of the compute provider is part of the server cluster.

9. The system of claim 8 wherein after verifying that the IP address of the compute provider is part of the server cluster, the persistent storage manager determines whether any storage volume of the set of storage volumes is currently leased to the IP address.

10. The system of claim 8 wherein the persistent storage manager further provisions a plurality of storage volumes to form the set of storage volumes, wherein each storage volume is initially provisioned without providing compute providers in the server cluster access to the storage volume.

11. The system 10 wherein after receiving the request for the lease, the persistent storage manager searches a database containing entries for the storage volumes in the set of storage volumes to identify a storage volume that has been provisioned for the server cluster and is currently not leased to a compute provider.

12. The system of claim 8 wherein the persistent storage manager is further configured to:

generate a plurality of provisioning work tickets in response to receiving the request for the set of storage volumes, the plurality of provisioning work tickets comprising a separate provisioning work ticket for each storage volume of the set of storage volumes;

providing the provisioning work tickets to a message broker; and

executing multiple provisioning instances such that at least two of the provisioning instances operate in parallel with each other and such that each provisioning instance receives a respective provisioning work ticket from the message broker and attempts to provision a respective storage volume of the set of storage volumes for the server cluster in response to receiving the provisioning work ticket.

13. The system of claim 12 wherein when a provisioning instance encounters a problem provisioning a storage volume, the provisioning instance determines whether to send a new provisioning work ticket to the message broker to request provisioning of the storage volume.

14. The system of claim 8 wherein the persistent storage manager receives a request to release a lease for a storage volume and in response sets a lease status for the storage volume to AVAILABLE while maintaining the storage volume as part of the set of storage volumes.

15. A method comprising:

receiving a request for an IP address to access to a storage volume in a set of storage volumes;

using an identifier for the storage volume to identify a server cluster associated with the set of storage volumes;

verifying that the IP address is part of the server cluster; and

providing the IP address access to the storage volume.

16. The method of claim 15 further comprising:

after receiving the request, determining whether any storage volumes in the set of storage volumes are available for lease;

selecting one of the storage volumes available for lease; and

wherein providing the IP address access to the storage volume comprises providing the IP address access to the selected storage volume.

17. The method of claim 16 further comprising determining that the IP address does not have access to a different storage volume in the set of storage volumes before providing the IP address access to the selected storage volume.

18. The method of claim 15 wherein the server cluster is associated with the set of storage volumes through steps comprising:

receiving a request for provisioning the set of storage volumes together with an identifier for the server cluster;

generating an identifier for the set of storage volumes; and

provisioning each storage volume in the set of storage volumes.

19. The method of claim 18 wherein provisioning each storage volume in the set of storage volumes comprises:

generating a plurality of provisioning requests, each provisioning request for a different storage volume of the set of storage volumes; and

sending the plurality of provisioning requests to a message broker.

20. The method of claim 19 further comprising:

executing multiple provisioning instances in parallel, each provisioning instance requesting a respective provisioning request from the message broker and attempting to provision a respective storage volume of the set of storage volumes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2022
From: FAN, JUNPU
To: TARGET BRANDS, INC.
Reel/Frame 059634/0806 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2022
From: AHLES, MATTHEW I.; GUERTIN, TIMOTHY J.; PRUDEN, CHAD R.; RAY, ANDREW
To: TARGET BRANDS, INC.
Reel/Frame 059673/0888 →
Cited By (2)
US 12,235,807 US 12,254,177