Queue Dequeue Optimization via Conditional Page Iteration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing queue structures experience significant latency during dequeue operations due to the need to search through large numbers of expired messages, which can lead to system time-outs and performance issues when thousands or millions of expired tasks or messages remain queued.

Innovation Solution

Implementing a method for dequeue optimization using conditional iteration, where expired messages are aggregated to determine the latest expiration time, allowing the system to bypass data pages with only expired messages and directly access the next valid message from a second data page, reducing the need for extensive searching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a traditional queue structure is used to store and process messages, then the queue can maintain all messages including expired ones for completeness, but the dequeue operation experiences significant latency when searching through large numbers of expired messages

Engineering Contradiction:
Improvemessage completenessVSAvoiddequeue search time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The queue is divided into multiple data pages, with each page tracking its own latest expiration time. This segmentation allows the system to independently evaluate and skip entire pages of expired messages without examining individual messages, thereby reducing dequeue search time while maintaining complete message storage across the distributed page structure

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-calculates and stores the latest expiration time for each data page in advance. When a dequeue operation occurs, this pre-computed metadata allows immediate determination of whether a page contains valid messages, eliminating the need to search through expired messages during the dequeue operation itself

Inventive Principle:
Principle #10Preliminary action

2Reliability

If garbage collection is used to clear expired queue tasks, then the queue can be cleaned up periodically, but it cannot perform cleanup at a rate that prevents system time-outs for extended dequeue searches

Engineering Contradiction:
Improvequeue cleanlinessVSAvoidcleanup rate
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of performing garbage collection during dequeue operations, the system pre-computes and stores the latest expiration time for each data page in advance. This preliminary action transforms the cleanup function from an active scanning process into a passive metadata maintenance task, enabling the system to handle thousands or millions of expired messages without requiring high-speed garbage collection

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The latest expiration time metadata acts as an intermediary between the stored messages and the dequeue operation. By using this intermediate structure, the system avoids direct scanning of expired messages during both dequeue operations and garbage collection, thereby increasing the effective cleanup rate without requiring proportional increases in garbage collection throughput

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If the queue header cursor moves forward through each entry in the queue during dequeue, then all messages can be examined for validity, but the operation results in significant latency when many messages have expired

Engineering Contradiction:
Improvemessage validity detectionVSAvoiddequeue latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system extracts the latest expiration time information from each data page and stores it as separate metadata. This extraction allows the dequeue operation to use the pre-computed expiration time to immediately determine page validity without examining individual messages, thereby maintaining precise validity detection while eliminating time-consuming searches through expired messages

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of starting with individual messages and checking their expiration status sequentially, the system inverts the approach by first checking the pre-computed latest expiration time of the data page. This inversion allows the system to skip entire pages of expired messages upfront, reducing dequeue latency while maintaining accurate validity detection through the reversed evaluation order

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS10447607B2System and method for dequeue optimization using conditional iteration
Publication Date: 2019.10.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10447607B2 patent drawing
  • US10447607B2 patent drawing
  • US10447607B2 patent drawing

AI summary

Methods for dequeue optimizations in queues are performed by systems and apparatuses. The methods optimize dequeue operations using aggregation of expired messages enqueued in a queue and conditional iteration over enqueued messages based on the aggregation to service dequeue commands. Queues utilize page hierarchies such as root pages, index pages, and data pages. The aggregation of expired messages for pages in the queue determines the latest expired time for messages for a given page, and these latest expired times are stored in their respective pages, including data pages, index pages, and root pages, for use in the conditional iteration. The conditional iteration bypasses pages for which a latest expired time for all messages is prior to the current time when servicing dequeue requests for the queue.