Distributed Storage Data Replication via Segmented Publish-Subscribe

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Replicating large quantities of data across a distributed database system is inefficient due to limited bandwidth in long-haul network paths and the need for manual intervention during network outages, especially when relying on static network topologies.

Innovation Solution

Data changes are tracked as deltas and transmitted only to other instances, utilizing a network tree structure to reduce data transmission across long-haul links, and chunks of data are distributed efficiently across multiple chunk stores with load balancing and cryptographic signatures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is transmitted to all database instances through long-haul network paths, then data replication is achieved, but network bandwidth is consumed inefficiently and replication speed is reduced

Engineering Contradiction:
Improvedata replicationVSAvoidreplication speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the data transmission process by introducing intermediate nodes (publishers, subscribers, message queues) that divide the replication path into smaller segments. Instead of direct point-to-point transmission to all instances, data flows through segmented routes using publish/subscribe mechanisms and message queues, reducing the bandwidth burden on long-haul links while maintaining replication reliability.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If static network topology is used for replication, then system simplicity is maintained, but adaptability to network outages and changes is reduced

Engineering Contradiction:
Improvenetwork topologyVSAvoidnetwork outage tolerance
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic network topology adaptation through event-driven architecture where publishers and subscribers dynamically establish connections based on network conditions. The system uses message queues that can route data through alternative paths when outages occur, and the publish/subscribe mechanism allows flexible routing decisions that adapt to changing network topology without requiring static configuration changes.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If manual intervention is required during network outages, then system simplicity is maintained, but operational complexity and downtime increase

Engineering Contradiction:
Improvesystem operationVSAvoidfault tolerance
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements self-service fault tolerance through automatic failover mechanisms where the message queue system dynamically redirects data flow without manual intervention. When network outages occur, the system automatically detects the failure and routes data through alternative paths or waits for recovery, eliminating the need for manual intervention while maintaining system reliability and reducing operational complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9305069B2Method and system for uploading data into a distributed storage system
Publication Date: 2016.04.05 GOOGLE LLC
  • US9305069B2 patent drawing
  • US9305069B2 patent drawing
  • US9305069B2 patent drawing

AI summary

A method for uploading an object into a distributed storage system is implemented at a computing device The computing device splits an object into one or more chunks and uploads the one or more chunks into the distributed storage system. For each uploaded chunk, the computing device receives a write token from the distributed storage system, inserts an entry into an extents table of the object for the chunk in accordance with the received write token and the chunk ID, chunk offset, and chunk size of the chunk, generates a digest of the extents table, the digest representing the one or more chunks that the client expects to be within the distributed storage system, and sends the digest of the extents table to the distributed storage system. The distributed storage system is configured to use the digest to determine whether it has each of the one or more client-expected chunks.