Dynamic Queue Allocation for Processing Rate Limiting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing rate limiting systems in processing systems suffer from uneven distribution of processing requests among nodes, resource inefficiency due to reliance on tracking nodes and coordinator nodes, and issues like split-brain syndrome, especially when nodes fail.

Innovation Solution

A system that assigns processing requests to queues and allocates these queues dynamically to processing nodes based on current conditions, using a range allocation algorithm to reallocate queue ranges and update node status records, thereby ensuring efficient distribution and limiting processing rates based on calculated backlogs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If shared counters are used to track aggregated request processing rate from all processing nodes, then rate limiting can be enforced at the whole cluster level, but uneven distribution of processing requests among nodes occurs and system resources are consumed for coordination

Engineering Contradiction:
Improverate limit enforcementVSAvoidprocessing request distribution
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the centralized rate limiting approach into segmented local rate limiting at each processing node. Each node maintains its own rate limit counter independently rather than sharing a centralized counter, which eliminates the coordination overhead and uneven distribution problems while maintaining effective rate limiting enforcement at each node level

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the rate limiting functionality from the centralized coordination system and places it directly at each processing node. By removing the shared counter mechanism and its associated coordination protocols, the system eliminates the resource consumption and distribution inefficiencies while preserving rate limiting capability

Inventive Principle:
Principle #2Taking out (Extraction)

2Ease of operation

If tracking nodes and coordinator nodes are designated to allocate processing rates among processing nodes, then processing rate allocation can be managed, but additional system resources are consumed that could be used for processing requests

Engineering Contradiction:
Improveprocessing rate allocationVSAvoidrequest processing capacity
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements self-service rate limiting where each processing node autonomously manages its own rate limit counter without requiring tracking nodes or coordinator nodes. Each node independently tracks its own request processing rate and enforces rate limits locally, eliminating the need for dedicated coordination infrastructure and freeing up system resources for actual request processing

Inventive Principle:
Principle #25Self-service

3Reliability

If token bucket algorithm or leaky bucket algorithm is used to track inbound requests, then rate limits can be enforced, but requests are rejected when tokens or counters exceed a predetermined limit causing uneven distribution

Engineering Contradiction:
Improverate limit enforcementVSAvoidrequest processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the rate limiting state into local counters at each processing node rather than using global token buckets or leaky buckets. Each node maintains independent rate limit state, allowing requests to be processed efficiently without the uneven distribution and rejection issues that arise from centralized token/counter mechanisms

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11347547B2Systems and methods for rate limiting of processing systems
Publication Date: 2022.05.31 WALMART APOLLO LLC
  • US11347547B2 patent drawing
  • US11347547B2 patent drawing
  • US11347547B2 patent drawing

AI summary

Systems and methods including one or more processors and one or more non-transitory storage devices storing computing instructions configured to run on the one or more processors and perform acts of receiving one or more processing requests; assigning each respective processing request of the one or more processing requests to a respective queue of one or more queues; assigning each respective queue of the one or more queues to a respective processing node of one or more processing nodes; calculating a respective processing request backlog for each respective processing node of the one or more processing nodes; and limiting a processing rate of the respective processing node for processing requests of the one or more processing requests of the respective queue based on the respective processing request backlog for the respective processing node. Other embodiments are disclosed herein.