RDMA Transaction Execution in Distributed Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed storage systems face high and unpredictable latency due to mismatched processor and storage resource utilization, where processor-heavy utilization leaves storage requests unserviced despite available storage bandwidth.

Innovation Solution

The method involves using remote direct memory access (RDMA) to read and write data chunks while managing locks and version numbers, allowing for efficient transaction execution by ensuring data validity and releasing locks, and incorporating a durable intent log for reliable transactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Power

If processor resources are heavily utilized to service computing tasks, then processing capacity is improved, but storage request latency increases and storage bandwidth remains underutilized

Engineering Contradiction:
Improveprocessing capacityVSAvoidstorage request latency
Core Design Contradiction:
PowerVSLoss of time

Solution Approach 1:

The patent extracts the storage request servicing function from the processor-heavy software path and places it in a dedicated hardware storage resource path. This allows storage requests to be serviced independently of processor availability, eliminating the bottleneck where storage requests must wait for processor availability even when storage bandwidth is available.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a storage resource (dedicated storage processor or hardware component) as an intermediary between the client and the storage medium. This intermediary can service storage requests directly using storage bandwidth without requiring general-purpose processor intervention, thus decoupling storage I/O performance from CPU utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If dedicated processors are used to service storage requests, then storage request latency is improved, but processing capacity for nominal tasks decreases

Engineering Contradiction:
Improvestorage request latencyVSAvoidprocessing capacity
Core Design Contradiction:
Loss of timeVSPower

Solution Approach 1:

The patent segments the system into two independent paths: a software path for computing tasks that uses general-purpose processors, and a hardware path for storage requests that uses dedicated storage resources. This segmentation allows each path to operate independently at optimal capacity without one constraining the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent makes the dedicated storage resource universally available for all storage requests regardless of processor utilization state. This multi-functional approach allows the same storage resource to handle both normal storage I/O and bursty storage demands without affecting the general-purpose processors' ability to handle computing tasks.

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

3Power

If storage requests wait for processor availability, then processor resources are preserved for computing tasks, but storage bandwidth utilization decreases

Engineering Contradiction:
Improveprocessor availabilityVSAvoidstorage bandwidth utilization
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The patent enables storage requests to service themselves through dedicated storage resources without requiring processor intervention. The storage resource can directly access the storage medium and service requests using available storage bandwidth, making the system self-sufficient for storage operations and eliminating the need to hold processor resources for storage I/O.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8676851B1Executing transactions in distributed storage systems
Publication Date: 2014.03.18 GOOGLE LLC
  • US8676851B1 patent drawing
  • US8676851B1 patent drawing
  • US8676851B1 patent drawing

AI summary

A method of executing a transaction in a distributed storage system includes, for data chunks of a read set of the transaction, reading data of the data chunks of the read set through remote direct memory access and determining a validity of the read data by evaluating a version and a lock of each data chunk of the read set. For data chunks of a write set of the transaction, the method includes setting locks on the data chunks of the write set, writing data to the locked data chunks through remote direct memory access, releasing the locks of the locked data chunks, and incrementing a version number of each released data chunk.