Distributed Strict Queue Segmentation for Message Ordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed queuing systems often fail to maintain strict message order and ensure once-only delivery, leading to issues in applications requiring precise queue behavior.

Innovation Solution

A distributed strict queue system where each queue server handles a range of values for a strict order parameter, ensuring messages are forwarded and delivered in intended order and delivered only once, using techniques like sequence identification and message batching to maintain order and redundancy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a distributed queuing service is implemented to prioritize high availability and redundancy, then system reliability is improved, but message ordering precision deteriorates

Engineering Contradiction:
Improvehigh availability and redundancyVSAvoidmessage ordering precision
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The system segments the distributed queue into multiple independent queue servers, each responsible for a specific range of message keys. This segmentation allows each server to maintain strict ordering for its assigned keys while the overall system provides high availability through redundancy. The queue is divided into key ranges, and each range is independently managed by a dedicated queue server.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the queue service layer) that sits between message producers and consumers, coordinating message routing across multiple queue servers. This intermediary ensures that messages are routed to the correct server based on key ranges and that ordering is maintained even as messages are distributed across the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If messages are distributed across multiple queue servers for redundancy, then system availability is improved, but message delivery accuracy deteriorates

Engineering Contradiction:
Improvesystem availabilityVSAvoidmessage delivery accuracy
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The system segments message delivery responsibility across multiple queue servers, with each server owning a specific key range. This segmentation enables redundant message storage across servers while maintaining delivery accuracy through deterministic key-to-server mapping. Each message is delivered to exactly one server based on its key, preventing duplicate or lost deliveries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by ensuring that each queue server maintains strict ordering and delivery guarantees for its locally managed key range. Rather than requiring all servers to handle all messages, each server optimizes for its specific subset of messages, ensuring accurate delivery while the collective system provides high availability.

Inventive Principle:
Principle #3Local quality

3Manufacturing precision

If strict queue behavior is enforced for message ordering, then message ordering precision is improved, but system complexity increases

Engineering Contradiction:
Improvemessage ordering precisionVSAvoidsystem complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The system reduces complexity through segmentation by dividing the strict ordering requirement into smaller, manageable units. Each queue server maintains strict ordering only for its assigned key range, rather than the entire queue. This segmentation makes the ordering guarantee more manageable and less complex while still providing end-to-end ordering for individual message streams.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses parameter changes by introducing key range assignments as a new parameter for queue servers. Instead of requiring all servers to implement complex global ordering logic, the system changes the parameter space by assigning specific key ranges to specific servers, simplifying the ordering implementation to local range-based decisions.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If message batching is used to improve efficiency, then productivity is improved, but message ordering precision may deteriorate

Engineering Contradiction:
Improvemessage processing efficiencyVSAvoidmessage ordering precision
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The system segments batched messages by their key ranges, ensuring that messages within a batch are processed and delivered in the correct order for each key. The batch operation is divided into sub-operations per key range, maintaining ordering precision while achieving the efficiency benefits of batching through parallel processing of different key ranges.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9571414B2Multi-tiered processing using a distributed strict queue
Publication Date: 2017.02.14 AMAZON TECH INC
  • US9571414B2 patent drawing
  • US9571414B2 patent drawing
  • US9571414B2 patent drawing

AI summary

Methods and systems for implementing multi-tiered processing in a distributed strict queue are disclosed. Original messages are dequeued from a first set of queues using a first layer of queue clients, each of which transforms a subset of the original messages into a transformed message and enqueues the transformed message into a second set of queues. The transformed messages are dequeued from the second set of queues using a second layer of queue clients, each of which summarizes a subset of the transformed messages into a summarized message and enqueues the summarized message into a third set of queues. The summarized messages are dequeued from the third set of queues using a third layer of queue clients, each of which aggregates a subset of the transformed messages into an aggregated message. A final result is generated based on the aggregated messages.