TCFS On-Disk Layout for Distributed Consensus I/O Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed consensus protocols in storage systems face issues with file fragmentation, high log entry accumulation, and inefficient sequential reading and writing operations, leading to substantial overhead and potential data corruption.

Innovation Solution

The Third Copy File System (TCFS) employs an optimized on-disk layout with error-correcting codes for snapshot and membership objects, atomic multi-block writes for log objects, and on-demand snapshotting to manage configuration updates efficiently, ensuring data integrity and reducing storage overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a generic file system layout is used to store configuration information, then the implementation is simple and generic, but file fragmentation occurs, log entries accumulate excessively, and sequential reading efficiency deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidI/O operation efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments the configuration information storage into distinct file types (membership file, snapshot file, log file) with dedicated layouts. Each file type is optimized for its specific purpose: membership files store cluster node information, snapshot files store configuration state snapshots, and log files store sequential log entries. This segmentation eliminates the fragmentation issues of generic file systems while maintaining implementation clarity through well-defined file structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of organization by implementing a hierarchical file structure with specific directory layouts and file naming conventions. Configuration information is organized into dedicated directories (e.g., /etc/cluster, /var/lib/cluster) with structured file formats that include headers, data sections, and metadata. This dimensional organization enables efficient sequential access and eliminates the flat, fragmented structure of generic file systems.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If multiple write and commit operations are performed for each file update, then data and metadata are persisted, but partial commits occur leading to data corruption risk

Engineering Contradiction:
Improvedata persistenceVSAvoidwrite operation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the data and metadata write operations into a single atomic commit process. Each configuration file update is performed as one indivisible operation that either completely succeeds or completely fails, eliminating partial commits. The file system implements journaling or transactional semantics where the entire update (data plus metadata) is written and committed atomically, ensuring consistency without requiring multiple separate write operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements protective mechanisms before write operations, such as creating backup copies of files before updating them, using write-ahead logging to record intended changes before execution, and employing checksums or error-correcting codes to detect corruption. These preemptive measures cushion against potential write failures or partial commits, ensuring data integrity without requiring complex recovery procedures.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Ease of manufacture

If log entries are stored in a generic format, then storage is straightforward, but too many log entries accumulate before purging and sequential reading requires substantial overhead

Engineering Contradiction:
Improvestorage simplicityVSAvoidlog entry management time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of log entries during the write operation itself. Log files are structured with predefined formats including entry headers, sequence numbers, timestamps, and delimiters that enable efficient parsing and sequential reading. The file system pre-allocates log file structures and implements circular buffers or ring buffers that automatically manage entry accumulation and purging, eliminating the need for complex post-processing of log data.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameters of log storage by implementing fixed-size log entries with standardized formats, sequential numbering schemes, and predetermined retention policies. Log files use optimized data structures such as arrays or linked lists with fixed record lengths, enabling efficient sequential access and random deletion of specific entries. These parameter changes transform log storage from a generic, flexible format to a highly optimized, structured format that minimizes management overhead.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10229009B2Optimized file system layout for distributed consensus protocol
Publication Date: 2019.03.12 NETAPP INC
  • US10229009B2 patent drawing
  • US10229009B2 patent drawing
  • US10229009B2 patent drawing

AI summary

A layout of a file system is optimized to meet storage requirements of a distributed consensus protocol implemented on a plurality of nodes of a cluster. Illustratively, the file system has an on-disk layout representation that enables efficient input/output (I/O) operation performance. The on-disk layout of the file system embodies a plurality of file system objects: membership, snapshot and log objects. Each object is allocated an area or region (e.g., a contiguous storage space) on-disk. In addition, each object has two or more storage container instances, e.g., files. In the case of snapshot and membership objects, the two files of each object are used in a circular (alternating) fashion so that write operations directed to a first file storing a current copy of the snapshot/membership content may be performed without destroying a previous committed copy of the snapshot/membership content stored in a second file.