Content Addressable Storage for Software Home Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Patching complex software systems often requires modifying large amounts of data, leading to significant downtime and increased storage and resource consumption, which is unacceptable for mission-critical systems.

Innovation Solution

The use of content addressable storage separates the namespace of a software home from its contents, allowing for efficient patching by generating content addresses based on file contents, enabling updates without affecting running deployments and reducing downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If cloning is used to reduce downtime during patching, then downtime is reduced, but storage overhead and resource consumption significantly increase

Engineering Contradiction:
ImprovedowntimeVSAvoidstorage overhead
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent segments the software home into two independent parts: namespace (directory structure and filenames) and content (actual file data). This segmentation allows the namespace to remain unchanged while content is updated, eliminating the need to clone entire software homes. Only the specific content blocks that need patching are modified in the content addressable storage, reducing storage overhead from gigabytes to kilobytes of metadata changes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces content addressable storage as an intermediary layer between the namespace and actual file content. This intermediary decouples the namespace from content, allowing updates to occur independently. The content addressable storage system manages content blocks with unique identifiers, enabling efficient patching without cloning by simply replacing content blocks while maintaining the same namespace structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If in-place patching is used to modify software files, then storage overhead is reduced, but downtime increases significantly

Engineering Contradiction:
Improvestorage overheadVSAvoiddowntime
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by staging content changes in content addressable storage before committing them to the namespace. The patching process first creates new content blocks with updated data, validates them, and only after successful validation does it update the namespace to point to the new content blocks. This preliminary staging allows for rollback if validation fails, eliminating downtime by preparing changes beforehand without affecting running deployments.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous operation by allowing the namespace to remain active and serve running deployments while content updates are prepared and validated in the background. The content addressable storage system maintains both old and new content blocks simultaneously, allowing seamless switching without interrupting service. This continuity ensures that software deployments can continue to run from the current namespace while patching occurs in parallel.

Inventive Principle:
Principle #20Continuity of useful action

3Loss of time

If cloning is used for patching, then downtime is reduced, but the amount of data to be copied increases for large-scale systems

Engineering Contradiction:
ImprovedowntimeVSAvoidpatching efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent extracts only the specific content blocks that need to be patched from the large software home, rather than copying the entire system. The content addressable storage system identifies and extracts only the modified files or code segments, storing them as separate content blocks. This extraction approach reduces the patching data from gigabytes (in cloning) to kilobytes or megabytes, dramatically improving patching efficiency while maintaining low downtime through the namespace-content separation.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10762059B2Creating and patching binary software homes using content addressable storage
Publication Date: 2020.09.01 ORACLE INT CORP
  • US10762059B2 patent drawing
  • US10762059B2 patent drawing
  • US10762059B2 patent drawing

AI summary

Techniques are disclosed herein for creating and patching software homes using content addressable storage. One or more embodiments comprises storing content for a file that is used to run a particular software deployment. The file is associated with a particular directory that includes a link to a first filename. The first filename is generated as a function of the content for the file, such as by applying a hash function. Responsive to receiving updated content a second filename is generated as a function of the updated content. The second filename is different than the first filename. The link included in the particular directory is modified to point to the second filename. After modifying the link included in the particular directory, the updated content for the file is used to run the particular software deployment.