Distributed Priority Queue Sharding for Replication Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed storage systems face challenges in efficiently prioritizing and executing replication requests due to limitations in priority queue management, particularly in large-scale systems where elements may not fit in main memory and external memory sorting algorithms introduce delays and bottlenecks.

Innovation Solution

A system and method that generate a row name for objects based on their priority and unique identifier, allowing for lexicographical sorting and insertion into a distributed database, enabling efficient sorting and execution of replication requests in priority order across a distributed storage system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If external memory sorting algorithms are used to manage priority queues in large-scale distributed storage systems, then the system can handle larger volumes of replication requests, but processing delays increase and system performance deteriorates

Engineering Contradiction:
Improvevolume of replication requestsVSAvoidprocessing delay
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent divides the priority queue into multiple shards distributed across different nodes in the distributed storage system. Each node manages a portion of the queue (shard), allowing the system to handle larger volumes of replication requests without concentrating all processing on a single node, thereby reducing processing delays while maintaining scalability.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If centralized coordination is used for external memory sorting algorithms, then queue management can be simplified, but system scalability decreases and bottlenecks emerge under high load

Engineering Contradiction:
Improvequeue management complexityVSAvoidsystem throughput under high load
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements distributed queue management where each node in the distributed storage system maintains its own shard of the priority queue. This eliminates the need for centralized coordination while simplifying local queue management. The system achieves scalability by distributing the management burden across multiple nodes, allowing high throughput even under heavy loads without creating centralization bottlenecks.

Inventive Principle:
Principle #1Segmentation

3Speed

If in-memory priority queues are used for small-scale systems, then processing speed is fast, but the system cannot scale to handle larger volumes of data in distributed environments

Engineering Contradiction:
Improveprocessing speedVSAvoidvolume of replication requests
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the in-memory priority queue into multiple distributed queues (shards) across different nodes in the distributed storage system. Each node maintains a portion of the queue in its local memory, preserving fast in-memory processing speeds for its assigned requests. The system scales to handle larger volumes of data by distributing the queue across multiple nodes, combining the speed benefits of in-memory processing with the scalability of distributed architecture.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8862617B2System and method for replicating objects in a distributed storage system
Publication Date: 2014.10.14 GOOGLE LLC
  • US8862617B2 patent drawing
  • US8862617B2 patent drawing
  • US8862617B2 patent drawing

AI summary

A system and method for inserting an object into a distributed database is provided. An object to be inserted into a priority queue is received, wherein the object includes a unique identifier and a priority. Next, an index for the object is generated. A row name for the object is then generated based on the index, the priority of the object, and the unique identifier of the object, wherein a lexicographical order of the row name for a higher priority object is smaller than the lexicographical order of the row name for a lower priority object. The object is then inserted into a row of a distributed database using the row name.