In-Memory Journal Caching for Faster Distributed File System Replay

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The prolonged downtime of clients accessing distributed storage systems during journal replay is caused by the need to load thousands of small indirect blocks from disk storage to memory, increasing the time required to bring the file system to a consistent state.

Innovation Solution

Caching indirect blocks directly within log records of the journal stored in memory, reducing the need to retrieve them from disk storage during replay by determining whether they are dirty or clean and modifying their size to fit within available space.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If indirect blocks are loaded from disk storage to memory during journal replay, then the file system can be brought to a consistent state, but the replay time and client downtime increase significantly

Engineering Contradiction:
Improvefile system consistencyVSAvoidreplay time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by caching indirect blocks in the journal before they are needed during replay. When write operations are initially logged, the system proactively retrieves and caches the indirect blocks that will be required for future replay operations, storing them in memory alongside the log records. This eliminates the need to load these blocks from disk during replay, significantly reducing replay time while ensuring file system consistency can be restored.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If indirect blocks are cached within log records in memory, then replay time is reduced, but the complexity of the journal structure increases

Engineering Contradiction:
Improvereplay timeVSAvoidjournal structure
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent merges previously separate components into a unified journal record structure. Instead of storing only log records in memory and retrieving indirect blocks from disk during replay, the system combines both the log record and the associated indirect blocks into a single journal entry. This integration simplifies the replay process by providing all necessary data in one location, reducing replay time despite the increased structural complexity of the journal entries.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12360694B2Journal replay optimization
Publication Date: 2025.07.15 NETAPP INC
  • US12360694B2 patent drawing
  • US12360694B2 patent drawing
  • US12360694B2 patent drawing

AI summary

Techniques are provided for journal replay optimization. A distributed storage architecture can implement a journal within memory for logging write operations into log records. Latency of executing the write operations is improved because the write operations can be responded back to clients as complete once logged within the journal without having to store the data to higher latency disk storage. If there is a failure, then a replay process is performed to replay the write operations logged within the journal in order to bring a file system up-to-date. The time to complete the replay of the write operations is significantly reduced by caching metadata (e.g., indirect blocks, checksums, buftree identifiers, file block numbers, and consistency point counts) directly into log records. Replay can quickly access this metadata for replaying the write operations because the metadata does not need to be retrieved from the higher latency disk storage into memory.