RPC Framework Extent Transfer via Out-of-Band Port

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing mechanisms, such as remote procedure call (RPC) frameworks, are inefficient and memory-intensive for transferring large data objects like extents in cloud-based storage systems, making it impractical for high availability and fault tolerance.

Innovation Solution

A data storage system that uses an RPC framework to initiate a data transfer by opening a port outside the framework for streaming large data objects, computes checksums for validation, and returns a private identifier for accessing the transferred extent, facilitating efficient and secure bulk data transfers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If an RPC framework is used to transfer large data objects like extents, then data transfer can be performed through a standardized interface, but the transfer becomes extremely time-consuming and memory-intensive due to serialization, deserialization, copying, and validation operations

Engineering Contradiction:
Improvestandardized data transfer interfaceVSAvoiddata transfer speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the data transfer process into two distinct parts: (1) control plane operations through RPC for metadata exchange, port allocation, and coordination; and (2) data plane operations through a separate socket connection for actual bulk data streaming. This segmentation allows each part to be optimized independently, resolving the contradiction between standardized interface and transfer speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary socket connection that acts as a mediator between the RPC framework and the actual data transfer. The RPC framework handles control operations while the socket connection handles data streaming, allowing both to operate in parallel without interfering with each other's performance characteristics.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If an RPC framework is used to transfer large data objects like extents, then data validation and integrity checking can be performed, but the process becomes extremely memory-intensive due to multiple copies and validation operations

Engineering Contradiction:
Improvedata integrity validationVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the data validation function from the RPC framework and implements it separately at the application layer using checksums computed during the socket-based data stream transfer. This allows validation to occur without requiring the RPC framework's serialization and copying operations, significantly reducing memory consumption while maintaining reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If traditional RPC mechanisms are used for extent transfer, then fault tolerance and high availability can be implemented through replication, but the replication process becomes impractical due to time-consuming operations

Engineering Contradiction:
Improvefault toleranceVSAvoidreplication time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments replication into rapid socket-based data streaming for bulk transfer and separate RPC calls for coordination and verification. This allows multiple replicas to be created in parallel with minimal overhead, making fault tolerance practical for large data objects.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9967310B2Using an RPC framework to facilitate out-of-band data transfers
Publication Date: 2018.05.08 DROPBOX INC
  • US9967310B2 patent drawing
  • US9967310B2 patent drawing
  • US9967310B2 patent drawing

AI summary

A system that stores sets of data blocks in extents located in storage devices is described. During operation, a receiving device receives, through an RPC framework, a first call asking to transfer an extent from a sending device to the receiving device. In response, the receiving device opens a port for a data connection that operates outside the RPC framework. The receiving device makes a second call, to the sending device through the RPC framework, asking to stream the extent to the port. The receiving device subsequently receives the extent from the sending device through the port and computes a checksum for the extent. The receiving device also receives a return from the second call, including a checksum for the extent computed by the sending device. If the computed checksum matches the received checksum, the receiving device returns the first call to indicate the transfer operation completed successfully.