RPC-Less Locking via RDMA CAW for Active-Active Storage Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Synchronizing lock states between storage nodes in high-availability clusters using RPC messaging is problematic due to increased latency caused by waiting periods associated with RPC messaging, which contributes to higher IO latency in the cluster.

Innovation Solution

Implementing an RPC-less locking mechanism based on RDMA CAW, where locks are associated with logical block addresses and maintained in an ALS object array on memory visible to storage nodes, allowing for atomic compare-and-write operations over an RDMA channel to synchronize lock states between nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If RPC messaging is used to synchronize lock states between storage nodes, then lock coherency is guaranteed, but IO latency increases due to multiple waiting periods

Engineering Contradiction:
Improvelock coherencyVSAvoidIO latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the locking mechanism from the RPC messaging framework and implements it directly using RDMA compare-and-write operations on shared memory. This removes the RPC messaging layer that causes four distinct waiting periods, thereby reducing IO latency while maintaining lock coherency through atomic memory operations visible to all storage nodes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces shared memory as an intermediary between storage nodes for lock synchronization. Instead of using RPC messages to communicate lock state, nodes directly read and write lock state to shared memory using RDMA operations, eliminating the need for RPC request-reply cycles and their associated waiting periods.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If RPC messaging is used for lock synchronization, then distributed lock management is achieved, but the number of waiting periods increases to four cycles

Engineering Contradiction:
Improvedistributed lock managementVSAvoidlock acquisition speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent replaces the mechanical RPC messaging system with a direct memory access system. Instead of sending RPC messages that require polling and waiting for reply cycles, storage nodes perform direct compare-and-write operations on shared memory locations, reducing lock acquisition from multiple RPC cycles to a single atomic memory operation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If RPC messaging is used to synchronize locks, then lock state coherence is maintained, but overall system throughput decreases

Engineering Contradiction:
Improvelock state coherenceVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the lock synchronization process into direct atomic memory operations rather than monolithic RPC message exchanges. By using RDMA compare-and-write operations that atomically update lock state in shared memory, the system achieves lock coherence without the overhead of complete RPC request-reply cycles, thereby improving system throughput.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11416441B2RPC-less locking mechanism based on RDMA CAW for storage cluster with active-active architecture
Publication Date: 2022.08.16 EMC IP HLDG CO LLC
  • US11416441B2 patent drawing
  • US11416441B2 patent drawing
  • US11416441B2 patent drawing

AI summary

Techniques for providing an RPC-less locking mechanism based on RDMA CAW for a storage cluster with an active-active architecture. The techniques include, in response to receipt at a storage node of a lock request for accessing an LBA of a storage object, synchronizing, between the storage node and a remote node, a state of a lock for the LBA. The synchronizing of the lock state includes locating an ALS object having a field containing the LBA, updating a field of the ALS object to include the storage node, and setting a field of the ALS object to a type of lock specified in the lock request. If the storage node locates the ALS object in an array maintained within visible memory on the remote node, then the storage node updates/sets corresponding fields of the ALS object by performing atomic CAW operations supported by an RDMA channel between the respective nodes.