Lockless Metadata Destaging via Flush Request Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for synchronizing destage and commit operations in multi-node storage systems require cache memory system locks, leading to contention with read operations, increased IO latency, and decreased system performance due to the risk of non-consistent metadata pages and overwrite issues.
Innovation Solution
A computer-implemented method that processes flush requests for metadata pages using a flush request lock queue, determining whether destage or commit requests are being processed, and waiting or proceeding accordingly, without requiring locks on the cache memory system, allowing destage operations to be synchronized without blocking read operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If cache memory system locks are obtained for destage and commit operations, then data consistency is ensured, but read operations are blocked and IO latency increases
Solution Approach 1:
The patent segments the synchronization mechanism by creating separate lock queues for different operation types (destage requests, commit requests, read requests) instead of using a single global cache lock. This allows different operation types to be processed concurrently without mutual blocking, resolving the contradiction between ensuring consistency and maintaining performance.
Solution Approach 2:
The patent introduces an intermediary synchronization queue system that mediates between destage/commit operations and read operations. Instead of direct lock contention, operations are queued and processed in a controlled manner, allowing reads to proceed without being blocked by destage or commit operations while still ensuring proper synchronization.
2Reliability
If cache memory system locks are obtained for destage operations, then synchronization with commit operations is achieved, but IO latency increases
Solution Approach 1:
The patent implements preliminary action by pre-queuing destage and commit requests in separate lock queues before actual processing. This allows the system to prepare and organize operations in advance, reducing the critical section duration and minimizing the time that locks need to be held, thereby reducing IO latency while maintaining synchronization.
Solution Approach 2:
The patent applies dynamics by making the lock acquisition duration variable based on the operation type and queue state. Read operations can proceed dynamically without acquiring expensive locks, while destage and commit operations acquire locks only for the minimal time needed to update their respective queues, optimizing the balance between synchronization and latency.
3Productivity
If multiple nodes process destage and commit operations simultaneously, then system throughput is improved, but metadata page consistency is compromised
Solution Approach 1:
The patent segments the multi-node operation coordination by creating node-specific lock queues and metadata structures. Each node maintains its own destage and commit request queues, allowing simultaneous processing across nodes while preventing conflicts through structured queue management and version tracking.
Solution Approach 2:
The patent implements feedback mechanisms through version numbers and metadata tracking that allow nodes to detect and resolve conflicts. When multiple nodes process operations simultaneously, the feedback from version comparisons ensures that only valid updates are applied, maintaining metadata consistency while allowing high parallel throughput.
Data Source
AI summary
A method, computer program product, and computing system for receiving a flush request for a metadata page stored in a storage array of a multi-node storage system. The flush request may be queued on a flush request lock queue on at least one node of the multi-node storage system. One or more flush requests may be processed, via multiple nodes of the multi-node storage system, on the metadata page based upon, at least in part, the flush request lock queue.


