Dual Node Parallel Flush for Distributed Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed data storage systems, the inefficiency arises when only the primary node flushes data, requiring the secondary node to read from disk, which can lead to unnecessary disk reads and underutilization of nodes, especially when the secondary node has written data that needs to be flushed.

Innovation Solution

Implement a method where both nodes identify which pages they have written and allocate the flush operation in parallel based on factors such as ownership, load balancing, and availability, allowing the secondary node to handle its own flush operations if available, thereby reducing disk reads and optimizing workload distribution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If only the primary node performs flush operations, then data consistency is maintained, but disk read operations increase and node utilization decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidnode utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The flush operation is segmented and distributed to specific nodes based on page ownership. Instead of centralizing all flush operations on the primary node, the system divides the workload by identifying which node originally wrote each page and directing the flush operation to that node, thereby segmenting the centralized flush task into distributed sub-tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Nodes perform flush operations for their own written pages without requiring the primary node to read from disk. When a node has written pages that need flushing, it can autonomously perform the flush operation for those pages, eliminating the need for the primary node to service every flush request and reducing unnecessary disk reads.

Inventive Principle:
Principle #25Self-service

2Productivity

If the secondary node flushes its own written pages, then disk reads are reduced, but coordination complexity increases

Engineering Contradiction:
Improvedisk read efficiencyVSAvoidflush coordination
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary identification of page ownership before initiating flush operations. By determining which node wrote each page in advance and tracking this information, the system prepares the necessary routing information beforehand, simplifying the coordination during actual flush operations and reducing runtime complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where nodes report which pages they have written and need flushing. This feedback loop allows the primary node to track page ownership and direct flush operations appropriately, managing coordination complexity through structured information exchange rather than complex real-time decision-making.

Inventive Principle:
Principle #23Feedback

3Productivity

If parallel flush operations are implemented across multiple nodes, then system throughput increases, but synchronization requirements increase

Engineering Contradiction:
Improveflush throughputVSAvoidsynchronization overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The parallel flush capability is achieved by segmenting the flush workload across multiple nodes based on page ownership. Each node handles flush operations for the pages it originally wrote, creating independent parallel flush streams that do not require complex synchronization since each node operates autonomously on its own data segments.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11138122B2System and method for dual node parallel flush
Publication Date: 2021.10.05 EMC IP HLDG CO LLC
  • US11138122B2 patent drawing
  • US11138122B2 patent drawing
  • US11138122B2 patent drawing

AI summary

A method, computer program product, and computer system for identifying a first node that has written a first page of a plurality of pages to be flushed. A second node that has written a second page of the plurality of pages to be flushed may be identified. It may be determined whether the first page of the plurality of pages is to be flushed by one of the first node and the second node and whether the second page of the plurality of pages is to be flushed by one of the first node and the second node based upon, at least in part, one or more factors. The first node may allocate the first page of the plurality of pages and the second page of the plurality of pages to be flushed in parallel by one of the first node and the second node based upon, at least in part, the one or more factors.