IP Library Granted Patent US 11,334,372
Granted Patent B2
US 11,334,372 · App. 16/945,773 · Granted May 17, 2022

Distributed job manager for stateful microservices

Inventors: Dinesh Israni (San Jose, CA); Saurabh Deoras (Los Gatos, CA); Vinod Jayaraman (San Francisco, CA); Goutham Rao (Los Altos, CA)
Assignee: Portworx, Inc.
G06F9/44584G06F3/065G06F3/067G06F3/0619G06F3/0665G06F9/45558G06F9/5077G06N20/00G06F2009/45579G06F2009/45591
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,334,372
App. No.
16/945,773
Granted
May 17, 2022
Kind
B2
Abstract

Two servers implemented as containerized applications may manage the storage of data and the access of that data by compute jobs in a distributed system. A metadata server may distribute data on ingress and assign files to particular storage volumes. The metadata server may then provide a lookup function for files and be configured to distribute a file to other volumes when necessary. A job server may launch jobs as containerized applications and coordinate data access across jobs.

Claims (29)

1. A computing system comprising:

a plurality of computing nodes that each include a processor and a memory and that are each configured to execute a compute job upon request, each computing node including a storage interface configured to communicate with a respective virtual storage volume;

a metadata server, implemented as a containerized application, configured to distribute a plurality of files among the respective virtual storage volumes; and

a job server, implemented as a containerized application, configured to

initiate a respective one or more compute jobs on each of the plurality of computing nodes, each compute job accessing one or more files stored on the respective virtual storage volume associated with the respective computing node on which the respective compute job is initiated; and

instruct the metadata server to replicate a designated result set associated with a designated compute job included in the one or more compute jobs based on a determination that the designated compute job has completed.

2. The computing system recited in claim 1 , wherein each of the computing nodes includes a respective container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of containerized applications.

3. The computing system recited in claim 2 , wherein the one or more containerized applications includes a storage driver configured to manage the respective virtual storage volume.

4. The computing system recited in claim 2 , wherein the metadata server is implemented as a designated containerized application on a designated one of the plurality of computing nodes.

5. The computing system recited in claim 2 , wherein the job server is implemented as a designated containerized application on a designated one of the plurality of computing nodes.

6. The computing system recited in claim 2 , wherein each of the compute jobs is implemented as one of the containerized applications.

7. The computing system recited in claim 1 , wherein the job server is further configured to monitor each of the compute jobs for completion.

8. The computing system recited in claim 1 , wherein the identification of the virtual storage volume associated with a designated file includes applying a consistent hashing function to data or metadata associated with the designated file.

9. The computing system recited in claim 1 , wherein each of the jobs includes one or more tasks associated with training a machine learning model using data stored in the files stored in the virtual storage volume associated with the compute node on which the job is instantiated.

10. A method comprising:

distributing via a metadata server, implemented as a containerized application, a plurality of files among a plurality of virtual storage volumes, each of the virtual storage volumes in communication with a respective computing node via a respective storage interface;

initiating via a job server, implemented as a containerized application, a respective one or more compute jobs on each of the plurality of computing nodes, each compute job accessing one or more files stored on the respective virtual storage volume associated with the respective computing node on which the respective compute job is initiated; and

instructing, via the job server, the metadata server to replicate a designated result set associated with a designated compute job included in the one or more compute jobs based on a determination that the designated compute job has completed.

11. The method recited in claim 10 , wherein each of the computing nodes includes a respective container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of containerized applications.

12. The method recited in claim 11 , wherein the one or more containerized applications includes a storage driver configured to manage the respective virtual storage volume.

13. The method recited in claim 11 , wherein each of the compute jobs is implemented as one of the containerized applications.

14. The method recited in claim 11 , wherein the job server is further configured to monitor each of the compute jobs for completion.

15. The method recited in claim 10 , wherein the identification of the virtual storage volume associated with a designated file includes applying a consistent hashing function to data or metadata associated with the designated file.

16. One or more non-transitory machine-readable media having instructions stored thereon for performing a method, the method comprising:

distributing via a metadata server, implemented as a containerized application, a plurality of files among a plurality of virtual storage volumes, each of the virtual storage volumes in communication with a respective computing node via a respective storage interface; and

initiating via a job server, implemented as a containerized application, a respective one or more compute jobs on each of the plurality of computing nodes, each compute job accessing one or more files stored on the respective virtual storage volume associated with the respective computing node on which the respective compute job is initiated; and

instructing, via the job server, the metadata server to replicate a designated result set associated with a designated compute job included in the one or more compute jobs based on a determination that the designated compute job has completed.

17. The one or more non-transitory machine-readable media recited in claim 16 , wherein each of the computing nodes includes a respective container engine application executed by an operating system, the container engine application providing a standardized platform for the instantiation and execution of containerized applications.

18. The one or more non-transitory machine-readable media recited in claim 16 , wherein the job server is further configured to monitor each of the compute jobs for completion.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2022
From: PORTWORX, INC.
To: PURE STORAGE, INC., A DELAWARE CORPORATION
Reel/Frame 061033/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2020
From: ISRANI, DINESH; DEORAS, SAURABH; JAYARAMAN, VINOD; RAO, GOUTHAM
To: PORTWORX, INC.
Reel/Frame 053987/0307 →
Continuity (3)
Continuation 15994634 · May 31, 2018
Continuation In Part 15907181 · Feb 27, 2018
Related Publication 20200364063A1 · Nov 19, 2020
Cited By (2)
US 12,481,531 US 12,578,971