Hash Ring Message Queue with Host Groups

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing message queue systems in service provider environments lack efficient scalability and fairness in message storage and retrieval across multiple geographic regions, leading to potential bottlenecks and reduced availability.

Innovation Solution

A message queue system utilizing a hash ring with multiple host groups, where messages are stored and retrieved using a hash identifier and configuration version number, allowing for scalable operations, fair load distribution, and fault-tolerant message storage across different geographic regions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If messages are stored in a centralized message queue, then message storage is simple, but scalability across multiple geographic regions is limited

Engineering Contradiction:
ImprovescalabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The message queue is segmented into multiple host groups distributed across different geographic regions. Each host group maintains a portion of the message queue, allowing the system to scale horizontally by adding more host groups in different locations without increasing centralized complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimensional centralized queue to a multi-dimensional distributed architecture using a hash ring structure. Messages are routed to host groups based on hash computations that distribute load across geographic regions, adding spatial distribution as a new dimension to the system architecture

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If messages are distributed across multiple host groups, then scalability and availability improve, but load distribution fairness deteriorates

Engineering Contradiction:
ImproveavailabilityVSAvoidload distribution fairness
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system implements a fairness scheme that monitors message retrieval patterns across host groups and adjusts routing decisions dynamically. When certain host groups become overloaded, the fairness mechanism redistributes messages to underutilized groups, maintaining balanced load distribution while preserving high availability

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The hash ring structure allows dynamic addition and removal of host groups without system downtime. The routing configuration adapts in real-time to changes in host group availability and load conditions, maintaining both high availability and fair load distribution through dynamic reconfiguration

Inventive Principle:
Principle #15Dynamics

3Reliability

If the message queue is redundantly stored across multiple geographic regions, then robustness improves, but system complexity increases

Engineering Contradiction:
ImproverobustnessVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The hash ring structure serves multiple functions simultaneously: it provides geographic distribution for robustness, load balancing for fairness, and dynamic scaling capability. This universal data structure eliminates the need for separate mechanisms for each function, reducing overall system complexity while maintaining high robustness

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

Data Source

PatentUS10701176B1Messaging using a hash ring with host groups
Publication Date: 2020.06.30 AMAZON TECH INC
  • US10701176B1 patent drawing
  • US10701176B1 patent drawing
  • US10701176B1 patent drawing

AI summary

Technology is described for interacting with messages in a message queue. A message request may be received for a message queue in a service provider environment. The message queue may store messages in a hash ring of host groups, and a host group in the hash ring may include one or more individual hosts. A message identifier associated with the message request may be identified. The message identifier may include a hash identifier and a hash configuration version number, and the hash configuration version number may correspond to a current configuration of the hash ring of host groups. The message request may be performed with respect to the hash identifier and the hash configuration version number that identifies the hash ring of host groups.