Graph Driver Layer Management for Container Storage Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional containerized application systems face challenges with interoperability across different computing environments, inefficient storage management, and manual garbage collection, leading to storage constraints and performance issues.

Innovation Solution

An application-aware graph driver that performs image layer operations with higher granularity, enabling dynamic garbage collection, efficient storage management, and direct communication with block devices, allowing for scalable and failure-tolerant storage solutions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of substance

If manual garbage collection is used in conventional containerized systems, then storage management is simple to implement, but storage efficiency deteriorates and storage constraints occur

Engineering Contradiction:
Improvestorage efficiencyVSAvoidmanual intervention
Core Design Contradiction:
Loss of substanceVSExtent of automation

Solution Approach 1:

The graph driver layer implements automatic garbage collection that self-manages storage resources without manual intervention. The system monitors and collects unused storage layers automatically, freeing up space for new containers without requiring administrator intervention, thus improving storage efficiency while maintaining operational simplicity

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system automatically identifies and discards unused container image layers that are no longer referenced by any running containers. By recovering this orphaned storage space, the system prevents storage constraints and improves overall storage efficiency, transforming wasted resources back into available capacity

Inventive Principle:
Principle #34Discarding and recovering

2Adaptability or versatility

If standardized interfaces are used for container engines, then interoperability between different environments is improved, but adaptability to specific environment requirements deteriorates

Engineering Contradiction:
ImproveinteroperabilityVSAvoidinterface standardization
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The graph driver layer acts as an intermediary between the container engine and the underlying storage system. It provides a standardized interface to the container engine while simultaneously adapting to different storage environments and configurations, thus maintaining interoperability without sacrificing adaptability to specific environment requirements

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The storage management functionality is segmented into distinct layers: the standardized container engine interface at the top, and the environment-specific graph driver implementations at the bottom. This segmentation allows the upper layer to remain simple and interoperable while the lower layer handles environment-specific complexities

Inventive Principle:
Principle #1Segmentation

3Loss of substance

If fine-grained storage management is implemented, then storage efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoidsystem complexity
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The storage system is segmented into discrete image layers that can be independently managed, tracked, and collected. Each layer represents a fine-grained unit of storage that can be optimized separately, improving storage efficiency while keeping individual layer management simple through the standardized graph driver interface

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10860536B2Graph driver layer management
Publication Date: 2020.12.08 PURE STORAGE INC
  • US10860536B2 patent drawing
  • US10860536B2 patent drawing
  • US10860536B2 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 file system can perform image layer level operations such as image layer multisourcing and image layer garbage collection.