Application-Aware Graph Driver for Container Image Layer Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional containerized application systems face challenges in interoperability, efficiency, and scalability due to their inability to handle application image layers effectively, leading to inefficient operations and storage management.

Innovation Solution

A custom file system within a containerized application system that employs an application-aware graph driver, which manages application image layers by enabling selective updates, efficient storage based on class of service objectives, and responsive queries, while avoiding costly operations like fsync and journaling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional file systems are used to manage application image layers, then basic storage operations can be performed, but storage efficiency and scalability are poor due to inability to handle image layers selectively

Engineering Contradiction:
Improvestorage operation efficiencyVSAvoidstorage management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the application image into multiple image layers, each representing a distinct component or version. The graph driver manages these layers independently, allowing selective operations on individual layers rather than treating the entire image as a single unit. This segmentation enables efficient storage operations by operating at the layer granularity level.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a graph driver as an intermediary component between the container engine and the underlying file system. This graph driver translates high-level container operations into file system operations, managing image layers through a graph data structure that represents layer dependencies and relationships, thereby simplifying storage management complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If conventional file system operations are performed on application images, then data can be stored, but costly operations like fsync and journaling reduce performance

Engineering Contradiction:
Improvestorage operation speedVSAvoidenergy consumed by fsync and journaling operations
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts and removes costly file system operations such as fsync and journaling from the containerized application storage path. The graph driver implements a simplified storage model that operates without these expensive synchronization and logging operations, thereby improving storage operation speed and reducing energy consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent employs a disposal approach where image layers can be freely created, modified, and deleted without the overhead of traditional file system safety mechanisms. The graph driver manages layer lifecycle efficiently, allowing rapid creation and deletion of temporary layers without requiring expensive fsync or journaling operations, effectively treating layers as disposable objects.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Adaptability or versatility

If application images are updated using conventional methods, then updates can be applied, but selective updates of specific layers are not possible requiring complete image replacement

Engineering Contradiction:
Improveupdate flexibilityVSAvoiddata transfer volume
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the application image into multiple independent layers, enabling selective updates of individual layers rather than requiring complete image replacement. The graph driver identifies which specific layers need updating based on the update request, allowing granular control over update operations and reducing unnecessary data transfer.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial action by allowing updates to only the specific image layers that require changes, rather than applying updates to the entire application image. The graph driver determines the minimal set of layers that need modification and applies updates selectively, thereby reducing data transfer volume while maintaining update flexibility.

Inventive Principle:
Principle #16Partial or excessive action

4Adaptability or versatility

If containerized applications use standardized interfaces, then interoperability between different environments is improved, but application-specific optimizations are lost

Engineering Contradiction:
Improveenvironment compatibilityVSAvoidapplication-specific performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent uses the graph driver as an intermediary that maintains standardized interfaces for container engine compatibility while simultaneously providing application-specific optimizations. The graph driver translates generic container operations into optimized file system operations tailored to the specific application's image layer structure, preserving both interoperability and performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies local quality by allowing different optimization strategies for different application types while maintaining a unified standardized interface. The graph driver can apply application-specific storage optimizations locally without affecting the overall standardized containerization model, enabling both environment compatibility and application-specific performance improvements.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10303499B2Application aware graph driver
Publication Date: 2019.05.28 PURE STORAGE INC
  • US10303499B2 patent drawing
  • US10303499B2 patent drawing
  • US10303499B2 patent drawing

AI summary

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 graph driver can perform image layer level operations such as selectively updating image layers, storing image layers in a way that reflects class of service objectives, and responding to application level queries.