Idempotent Journal Mechanism for Distributed File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

File systems with distributed metadata servers face challenges in maintaining data integrity and coherence during data modification operations, particularly in environments like video editing and archiving, where file names may not be unique over time, leading to potential corruption.

Innovation Solution

Implementing an idempotent journal mechanism with unique 64-bit sequence numbers for each file system object, ensuring that operations are only applied if the sequence numbers match, thereby preventing corruption and allowing for synchronization and restoration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If file names are used to identify file system objects in distributed metadata servers, then operations can be performed and tracked, but file system corruption can occur when file names are not unique over time

Engineering Contradiction:
Improvedata integrityVSAvoidjournal mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the identification parameter from file name to a unique 64-bit sequence number (JSN) that is monotonically increasing and unique for the life of the file system. This parameter change eliminates the ambiguity of non-unique file names while maintaining operational tracking capability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces an intermediary mechanism (the JSN comparison step) between the journal operation application and the file system object modification. This intermediary verifies uniqueness before applying operations, preventing corruption while allowing the journal mechanism to remain relatively simple.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If journal operations are applied to synchronize data modification operations across distributed metadata servers, then data coherence is improved, but file system corruption can occur due to non-unique file names

Engineering Contradiction:
Improvedata coherenceVSAvoidfile system corruption
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary anti-action by checking the JSN before applying journal operations. If the JSN in the journal entry does not match the current JSN of the file system object, the operation is rejected. This preliminary check prevents harmful corruption before it can occur.

Inventive Principle:
Principle #9Preliminary anti-action

Solution Approach 2:

The patent implements feedback by comparing the JSN in the journal entry with the current JSN of the target file system object. This feedback mechanism ensures that only valid operations on the correct objects are applied, maintaining data coherence while preventing corruption.

Inventive Principle:
Principle #23Feedback

3Reliability

If unique 64-bit sequence numbers are used for each file system object, then operations can be safely applied and corruption prevented, but the system requires additional storage and processing overhead

Engineering Contradiction:
Improveoperation safetyVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent makes the JSN self-service by embedding it directly in the file metadata and using it for both identification and validation purposes. The JSN serves multiple functions (unique identification, operation validation, synchronization) without requiring additional complex validation mechanisms, reducing overall processing overhead.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7809778B2Idempotent journal mechanism for file system
Publication Date: 2010.10.05 HARMONIC INC
  • US7809778B2 patent drawing
  • US7809778B2 patent drawing
  • US7809778B2 patent drawing

AI summary

Use and maintenance of an idempotent journal in a system having multiple metadata servers. A data modification operation is performed by a metadata server. A journal entry corresponding to the data modification operation is generated. The journal entry includes a file identifier and a journal sequence number corresponding to a data modification operation that created the file.