IP Library Granted Patent US 10,860,536
Granted Patent B2
US 10,860,536 · App. 15/488,299 · Granted Dec 8, 2020

Graph driver layer management

Inventors: Joseph Jobi (Santa Clara, CA); Goutham Rao (Los Altos, CA)
Assignee: Portworx, Inc.
G06F16/1727G06F9/5022G06F16/162
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 10,860,536
App. No.
15/488,299
Granted
Dec 8, 2020
Kind
B2
Abstract

Techniques and mechanisms described herein provide for a custom file system in a containerized application system in which an application instance may be created as a container based on an application image, which itself may be composed of some number of application image layers. By being aware of these application image layers, the file system can perform image layer level operations such as image layer multisourcing and image layer garbage collection.

Claims (34)

1. A method comprising:

at a graph driver:

receiving, via a processor, a request to perform garbage collection in a containerized application system, the containerized application system configured to run a plurality of distributed application instances within an operating system executed on a host system, each application instance corresponding with a designated application, each application including one or more application image layers stored on a storage device via a file system;

identifying one or more of the application image layers based on one or more designated criteria; and

deleting the identified one or more application image layers from the file system, wherein the graph driver is an application aware graph driver,

wherein the graph driver is configured to download image layers in order to avoid performing fsync, journaling, and checkpointing operations.

2. The method recited in claim 1 , wherein the one or more application image layers include a plurality of application image layers, and wherein the application image layers are deleted in order of storage date from newest to oldest.

3. The method recited in claim 1 , wherein the one or more designated criteria identify application image layers not associated with any currently running application instance.

4. The method recited in claim 3 , wherein the one or more designated criteria identify application image layers that have not been associated with any running application instance for a designated period of time.

5. The method recited in claim 1 , wherein a designated one of the application image layers is associated with a first one of the application instances and a second one of the application instances.

6. The method recited in claim 1 , wherein deleting the identified one or more application image layers includes freeing memory on the storage device by removing one or more entries in the file system.

7. The method recited in claim 1 , wherein each application instance is associated with respective persistent data and respective instance data, the respective persistent data being shared across a plurality of application instances and being read-only, the respective instance data being specific to the respective application.

8. A system comprising:

a storage device configured to store data for providing a containerized application system configured to run a plurality of distributed application instances within an operating system, each application instance corresponding with a designated application, each application including one or more application image layers accessed via a file system;

a processor; and

a graph driver configured to receive a request to perform garbage collection in the containerized application system, to identify one or more of the application image layers based on one or more designated criteria, and to delete the identified one or more application image layers from the file system, wherein the graph driver is an application aware graph driver, and

wherein the graph driver is configured to download image layers in order to avoid performing fsync, journaling, and checkpointing operations.

9. The system recited in claim 8 , wherein the one or more application image layers include a plurality of application image layers, and wherein the application image layers are deleted in order of storage date from newest to oldest.

10. The system recited in claim 8 , wherein the one or more designated criteria identify application image layers not associated with any currently running application instance.

11. The system recited in claim 10 , wherein the one or more designated criteria identify application image layers that have not been associated with any running application instance for a designated period of time.

12. The system recited in claim 8 , wherein a designated one of the application image layers is associated with a first one of the application instances and a second one of the application instances.

13. The system recited in claim 8 , wherein deleting the identified one or more application image layers includes freeing memory on the storage device by removing one or more entries in the file system.

14. The system recited in claim 8 , wherein each application instance is associated with respective persistent data and respective instance data, the respective persistent data being shared across a plurality of application instances and being read-only, the respective instance data being specific to the respective application.

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

at a graph driver:

receiving, via a processor, a request to perform garbage collection in a containerized application system, the containerized application system configured to run a plurality of distributed application instances within an operating system executed on a host system, each application instance corresponding with a designated application, each application including one or more application image layers stored on a storage device via a file system;

identifying one or more of the application image layers based on one or more designated criteria; and

deleting the identified one or more application image layers from the file system, wherein the graph driver is an application aware graph driver, and

wherein the graph driver is configured to download image layers in order to avoid performing fsync, journaling, and checkpointing operations.

16. The one or more non-transitory computer readable media recited in claim 15 , wherein the one or more application image layers include a plurality of application image layers, and wherein the application image layers are deleted in order of storage date from newest to oldest.

17. The one or more non-transitory computer readable media recited in claim 15 , wherein the one or more designated criteria identify application image layers not associated with any currently running application instance.

18. The one or more non-transitory computer readable media recited in claim 17 , wherein the one or more designated criteria identify application image layers that have not been associated with any running application instance for a designated period of time.

19. The one or more non-transitory computer readable media recited in claim 15 , wherein a designated one of the application image layers is associated with a first one of the application instances and a second one of the application instances.

20. The one or more non-transitory computer readable media recited in claim 15 , wherein deleting the identified one or more application image layers includes freeing memory on the storage device by removing one or more entries in the file system.

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 Apr 14, 2017
From: JOBI, JOSEPH; RAO, GOUTHAM
To: PORTWORX, INC.
Reel/Frame 042018/0136 →
Continuity (3)
Provisional Application 62442815 · Jan 5, 2017
Provisional Application 62445623 · Jan 12, 2017
Related Publication 20180189176A1 · Jul 5, 2018
Cited By (1)
US 12,443,401