Multiple Concurrent Cursors for File Restriping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed file systems face inefficiencies in restriping files due to the limitations of single cursor approaches, which restrict restripe operations to a single thread and can lead to file locking issues, hindering concurrent processing and scalability.

Innovation Solution

Implementing multiple concurrent cursors for a single file, stored and tracked in a mirrored data structure, allowing for simultaneous restripe operations across multiple threads and nodes, with each cursor spanning a region of the file and using delta operations to update cursor positions, thereby avoiding lock contention and enhancing scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single cursor approach is used for restriping files, then the implementation is simple, but the productivity is limited due to single-threaded operation and file locking

Engineering Contradiction:
Improverestripe operation speedVSAvoidcursor management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the restripe operation into multiple independent cursor instances, each handling a specific segment or region of the file. Instead of one cursor processing the entire file sequentially, multiple cursors work in parallel on different portions, enabling multi-threaded restriping operations that significantly improve productivity while distributing the management complexity across modular cursor units.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If a single cursor is used to traverse the file, then lock management is simple, but the loss of time increases due to file locking during the entire restripe operation

Engineering Contradiction:
Improvefile locking durationVSAvoidconcurrent cursor coordination
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

By segmenting the file into multiple regions handled by different cursors, the patent enables finer-grained locking where each cursor only locks its specific segment rather than the entire file. This segmentation allows concurrent access to different file portions, dramatically reducing the total time the file remains locked while introducing coordinated cursor management to handle the complexity of simultaneous operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic cursor management where cursors can be created, activated, paused, and terminated based on operational needs. This dynamic approach allows the system to adaptively manage lock granularity and cursor lifetime, reducing unnecessary file locking duration while providing the coordination mechanisms needed to handle concurrent cursor operations efficiently.

Inventive Principle:
Principle #15Dynamics

3Productivity

If restriping is performed with a single thread, then the implementation is straightforward, but the productivity remains limited by sequential processing

Engineering Contradiction:
Improverestripe throughputVSAvoidmulti-threaded cursor management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the restripe workload across multiple cursor instances that can be executed by different threads simultaneously. Each cursor represents an independent unit of work that can be processed in parallel, transforming the sequential single-threaded operation into a multi-threaded concurrent system that achieves higher throughput while managing complexity through modular cursor design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates universal cursor objects that can function independently in multiple threads, with each cursor capable of performing the complete restripe workflow on its assigned segment. This multi-functionality allows cursors to be reused, paused, and resumed across different threads, enabling flexible parallel processing that improves productivity while maintaining manageable complexity through standardized cursor interfaces.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9824114B1Multiple concurrent cursors for file repair
Publication Date: 2017.11.21 EMC IP HLDG CO LLC
  • US9824114B1 patent drawing
  • US9824114B1 patent drawing
  • US9824114B1 patent drawing

AI summary

Implementations are provided herein for the use of multiple threads in concurrently restriping files by maintaining multiple cursors for a single file. The cursors can be stored and tracked on disk in a mirrored data structure (“MDS”) extension block also referred to as a Cursor Extension Block. During a restripe operation, individual cursors stored in the delta-block portion of the MDS extension block will be updated using delta operations of a file system. The operating system kernel can maintain an in-memory version of the delta-block portion of the MDS extension block as well. The Cursor Extension Block associated with a file can store data representing the ending logical cluster number of the cursor, the current logical cluster number of the cursor, and a current cursor count for a file.