Causal Event Ordering in Distributed File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed file systems, determining the causal order of events that change metadata across multiple nodes is challenging, especially in non-native HDFS environments where operations are processed in parallel without a single NameNode acting as a gateway, leading to potential inconsistencies in event ordering.

Innovation Solution

Maintaining an event transaction log with inode revision numbers, generating an inode map, and constructing a directed acyclic graph to represent causal relationships between events, allowing for topological sorting to establish a causal order of events, even when processed in parallel across different nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If events are processed in parallel across multiple nodes without a single NameNode, then processing speed and system scalability are improved, but causal ordering consistency and data integrity deteriorate

Engineering Contradiction:
Improveevent processing speedVSAvoidcausal ordering consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces inode revision numbers as an intermediary mechanism that mediates between parallel event processing and causal ordering consistency. Each inode tracks its revision number, and events record the revision numbers of inodes they view or modify. This intermediary allows nodes to independently process events in parallel while still being able to determine causal relationships by comparing revision numbers, thus resolving the contradiction between parallel processing speed and ordering consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the parameter tracking approach by introducing revision numbers as a new parameter associated with each inode. Instead of relying on a single NameNode to maintain global event order, each inode's revision number serves as a timestamp-like parameter that enables causal ordering. Events are ordered by comparing the revision numbers of inodes they reference, allowing parallel processing while maintaining consistency through parameter comparison.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If a single_nameNode is used to maintain event ordering, then causal consistency is improved, but system scalability and performance deteriorate

Engineering Contradiction:
Improveevent ordering consistencyVSAvoidsystem scalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the centralized event ordering function into distributed components. Instead of one NameNode maintaining all event order information, each node maintains local event logs with inode revision number references. The causal ordering is segmented into individual inode revision chains that can be independently processed and merged, enabling scalability while preserving consistency through the revision number segmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables self-service by allowing each node to independently determine event causal relationships using local inode revision number information. Nodes don't need to query a central NameNode for ordering information; instead, they use the revision numbers recorded in their local event logs to autonomously establish causal order, improving scalability while maintaining consistency through decentralized self-determination.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If inode revision numbers are tracked for all inodes, then causal ordering accuracy is improved, but memory usage and system complexity increase

Engineering Contradiction:
Improvecausal ordering accuracyVSAvoidsystem structure complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies partial action by tracking revision numbers only for inodes that are actively being modified or accessed, rather than maintaining complex version information for all inodes in the system. The event transaction log records only the revision numbers relevant to specific events, avoiding excessive tracking overhead while maintaining sufficient precision for causal ordering of observed events.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10929100B2Mitigating causality discrepancies caused by stale versioning
Publication Date: 2021.02.23 EMC IP HLDG CO LLC
  • US10929100B2 patent drawing
  • US10929100B2 patent drawing
  • US10929100B2 patent drawing

AI summary

Implementations are provided herein for causally ordering events within a distributed file system. Each node within the distributed file system, when processing an event, can collect object/version pairs associated with event (e.g., an object identifier and an object version number of the object at the time of the event). Object/version pairs can be identified and labeled as reliable or unreliable based on the operation performed on the inode as a part of the event. Relationships between events can be established when two events modify the same object and one event has a lower revision number. If the two object/revision pairs are in a relationship, an unreliable relationship can be deemed a weak edge and a reliable relationship can be deemed a strong edge. Using the strong and weak edges associated with object/revision pairs, a causal order of events can be generated.