Graph Driver Page Cache for Container Image Layer Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional containerized application systems face inefficiencies due to binding storage constraints, lengthy snapshot chains, inode proliferation, and unnecessary virtualization overhead, which hinder scalable and efficient operation of application containers across different environments.

Innovation Solution

A custom file system, referred to as a graph driver, is implemented to manage application image layers with read-only access, allowing for parallel and independent instantiation of application containers, and utilizing a private page cache to optimize storage and memory usage, thereby avoiding costly operations like fsync and journaling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional containerized application systems use traditional file systems to manage application image layers, then data storage and retrieval can be performed, but memory consumption increases and processing requirements increase due to unnecessary virtualization overhead, fsync operations, and journaling

Engineering Contradiction:
Improvecontainer instantiation efficiencyVSAvoidprocessing requirements
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts and removes unnecessary virtualization overhead, fsync operations, and journaling mechanisms from the traditional file system stack. By using a specialized graph driver that directly manages application image layers without these intermediate layers, the system eliminates processing steps that consume CPU cycles and energy, thereby improving container instantiation efficiency while reducing processing requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the file management functionality into specific graph driver operations that handle only application image layer management. This segmentation allows the system to optimize specifically for container workloads by separating image layer management from general file system operations, reducing unnecessary processing overhead while maintaining efficient data storage and retrieval.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If conventional containerized application systems create separate copies of application image layers for each container, then data integrity is maintained, but storage space consumption increases and scalability is hindered

Engineering Contradiction:
ImprovescalabilityVSAvoidstorage space consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges shared application image layers into a common storage location that can be accessed by multiple containers simultaneously. Instead of creating separate copies for each container, the graph driver enables multiple containers to reference the same image layers, thereby reducing storage space consumption while maintaining data integrity through proper access control and layer management mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements universal image layer storage where a single set of application image layers serves multiple container instances. The graph driver provides multi-functional access to these shared layers, allowing different containers to utilize the same base images and dependencies, which improves scalability by reducing the quantity of stored data while maintaining the ability to instantiate multiple containers efficiently.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of operation

If conventional containerized application systems use snapshot chains to manage container states, then container isolation is achieved, but device complexity increases and operation becomes less efficient

Engineering Contradiction:
Improvecontainer management simplicityVSAvoidsnapshot chain structure
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent inverts the traditional snapshot chain approach by using a graph driver that manages application image layers in a hierarchical structure where layers are stacked and shared rather than creating sequential snapshots. This inversion simplifies container management by allowing containers to be instantiated by referencing existing layers rather than creating new snapshots, reducing device complexity while maintaining container isolation through the layer hierarchy.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent transitions from a linear snapshot chain model to a multi-dimensional graph structure where application image layers are organized in a hierarchical graph. This dimensional change allows for more efficient container management by enabling shared layers to be referenced by multiple containers simultaneously, reducing the complexity of snapshot chains while maintaining isolation through the graph structure's inherent hierarchy and access control.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Productivity

If conventional containerized application systems bind storage constraints to each container, then container independence is maintained, but productivity decreases due to repeated fsync and journaling operations

Engineering Contradiction:
Improvecontainer operation speedVSAvoidfsync and journaling overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts and removes fsync and journaling operations from the container image layer management path. By using a graph driver that directly manages application image layers without invoking traditional file system sync and journaling mechanisms, the system eliminates time-consuming I/O operations while maintaining data integrity through the immutable nature of image layers and the graph driver's direct management approach.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary organization of application image layers into a structured graph format before container instantiation. This preliminary action allows the graph driver to efficiently manage layer access without requiring repeated fsync and journaling operations during container operation, thereby improving productivity by reducing time loss to synchronous I/O operations while maintaining container independence through the pre-organized layer structure.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11726845B2Private page cache-based sharing of access to application image layers by application containers
Publication Date: 2023.08.15 PURE STORAGE INC
  • US11726845B2 patent drawing
  • US11726845B2 patent drawing
  • US11726845B2 patent drawing

AI summary

An example system may be configured to instantiate a first application container based on a plurality of application image layers; and instantiate a second application container based, at least in part, on the plurality of application image layers; wherein a private page cache stores storage information for the plurality of application image layers and is used to provide shared access to the plurality of application image layers by the first application container and the second application container.