Dynamic Intent Log Block Pre-allocation for File System Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file systems with intent logging face performance issues due to blocking applications when the intent log is full, as they require committing and removing deltas to free up space, leading to increased wait times during disk space allocation.

Innovation Solution

Implementing a dynamic intent logging method that pre-allocates log blocks of variable sizes, allowing for efficient storage of deltas by splitting them across multiple blocks based on size, and pre-allocating additional blocks as needed to avoid blocking applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the intent log is full and traditional fixed-size logging is used, then applications must be blocked to commit and remove deltas, but this increases wait times and reduces system performance

Engineering Contradiction:
Improvecrash recoveryVSAvoidapplication wait time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements dynamic intent log blocks that can be allocated and extended as needed, transforming the static fixed-size log structure into a dynamic one. When the intent log needs space, new log blocks are dynamically allocated and linked to the existing log structure, allowing the log to grow without blocking applications. This resolves the contradiction by maintaining reliability through continuous logging capability while eliminating wait times through dynamic expansion.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent pre-allocates multiple log blocks in advance and maintains a pool of available log blocks before they are needed. This preliminary preparation ensures that when deltas need to be logged, available space already exists, eliminating the need to block applications for space allocation. The pre-allocation strategy maintains reliability while preventing time loss by having resources ready beforehand.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If fixed-size log blocks are used, then simple allocation is achieved, but inefficient disk space utilization occurs when delta sizes vary

Engineering Contradiction:
Improvelog block allocationVSAvoiddisk space waste
Core Design Contradiction:
Ease of manufactureVSLoss of substance

Solution Approach 1:

The patent segments the intent log into multiple fixed-size blocks, where each block can be independently allocated and managed. This segmentation allows the system to use fixed-size blocks for simple allocation (maintaining ease of manufacture) while reducing waste by only allocating the specific number of blocks needed for each delta set. Unused space in partially filled blocks does not propagate to subsequent allocations, improving overall disk space utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of log block quantity from fixed to variable based on delta size requirements. By calculating the number of log blocks needed based on the actual delta data size and allocating that precise number, the system maintains simple fixed-size block allocation while optimizing disk space usage. The parameter change occurs in the number of blocks allocated, not in the block structure itself.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If multiple log blocks are allocated for large deltas, then storage capacity is increased, but the complexity of managing and traversing the log increases

Engineering Contradiction:
Improvelog storage capacityVSAvoidlog management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments large deltas across multiple log blocks of fixed size, with each block containing a portion of the delta data. The log structure includes block pointers that link blocks together in sequence, creating a manageable segmented structure. This segmentation increases storage capacity for large deltas while keeping individual block management simple through standardized fixed-size blocks and sequential linking.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces log block headers and block pointers as intermediary structures that manage the relationship between multiple log blocks. These intermediaries provide a standardized interface for managing variable-sized delta data across fixed-size blocks, simplifying traversal and management. The intermediary structures abstract the complexity of multi-block management while enabling efficient access and processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7606812B2Dynamic intent log
Publication Date: 2009.10.20 ORACLE AMERICAN INC
  • US7606812B2 patent drawing
  • US7606812B2 patent drawing
  • US7606812B2 patent drawing

AI summary

A method for dynamic intent logging in a file system. The method including pre-allocating a first log block, receiving a request to write a first set of deltas into a dynamic intent log, determining whether a size of the first set of deltas is larger than a size of the first log block, if the size of the first set of deltas is not larger than the size of the first log block, storing the first set of deltas in the first log block and pre-allocating a second log block.