Append Tree Data Structure for Scalable Messaging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing messaging systems often face scalability issues and degradation in service quality as the number of processed messages increases, failing to provide efficient message delivery and storage.

Innovation Solution

Implementing a key-value store system with an append tree data structure for message tracking, allowing messages to be efficiently stored and delivered using enqueue, dequeue, and ack methods, ensuring guaranteed messaging with load balancing across multiple messaging server devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a traditional messaging system is used, then message storage and delivery can be implemented, but the system fails to scale efficiently and exhibits degradation in quality of service as the number of processed messages increases

Engineering Contradiction:
Improvemessage processing efficiencyVSAvoidquality of service
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The messaging system is divided into multiple partitions, each handled by a separate message handling device. This segmentation allows parallel processing of messages across different devices, improving throughput while maintaining consistent service quality through load distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system employs dynamic load balancing where messages are routed to different partitions based on current system state and device availability. This dynamic allocation optimizes resource utilization and maintains high productivity even as message volume increases.

Inventive Principle:
Principle #15Dynamics

2Reliability

If message tracking data structure is implemented, then message delivery can be guaranteed, but device complexity increases

Engineering Contradiction:
Improvemessage delivery guaranteeVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The message tracking data structure uses copy-on-write semantics where message metadata is copied to multiple partitions rather than maintaining a single complex centralized structure. This approach simplifies individual device complexity while ensuring reliable message delivery through distributed tracking.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

A partition manager acts as an intermediary between message handling devices and the key-value store, abstracting the complexity of message tracking and delivery guarantees from individual devices. The partition manager handles coordination and ensures reliable delivery without increasing per-device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If key-value store is used for message storage, then scalability is improved, but message tracking becomes more complex

Engineering Contradiction:
Improvesystem scalabilityVSAvoidmessage tracking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The key-value store is segmented into multiple partitions, each managed by a separate message handling device. This segmentation enables scalable storage while simplifying message tracking to local partition operations, avoiding the complexity of centralized tracking.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each message handling device maintains its own local message tracking data structure for its assigned partitions, optimizing tracking efficiency for local operations. This local quality approach reduces the tracking complexity burden on individual devices while maintaining overall system scalability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9372879B1Balanced append tree data structure
Publication Date: 2016.06.21 AMAZON TECH INC
  • US9372879B1 patent drawing
  • US9372879B1 patent drawing
  • US9372879B1 patent drawing

AI summary

Techniques are described for employing a substantially self-balanced append tree data structure to store and access information. The append tree data structure is a hierarchical data structure in which a leaf node or a parent node may be added to expand the append tree data structure. The determination to add a leaf node or a parent node may be based on a counter for leaf nodes present in the append tree data structure. Nodes in the append tree data structure may be blocks in memory, with each block corresponding to a plurality of positions that may be employed to tracking message identifiers in a messaging service.