Lazy Sorting Priority Queue with FIFO Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large computing environments, interconnecting diverse IT infrastructure components and sharing resources is challenging due to the lack of all-in-one platforms suited for virtualization and cloud computing, leading to inefficiencies in queue processing and resource management.

Innovation Solution

A lazy sorting priority queue system is implemented, utilizing a combination of priority queues and FIFO buffers to manage requests, with a ticketing system and sequencers to ensure concurrent access and minimize sorting overhead, allowing elements to be moved opportunistically based on contention levels, prioritizing requests effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a traditional priority queue is used to manage concurrent requests, then requests can be prioritized effectively, but sorting overhead and contention increase significantly under high load

Engineering Contradiction:
Improverequest prioritizationVSAvoidsorting overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The queue is divided into multiple FIFO buffers organized in a tree structure, where each buffer handles a subset of requests. This segmentation allows parallel processing of requests across different buffers, reducing the sorting overhead while maintaining prioritization through the tree hierarchy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts the sorting behavior based on contention levels. When contention is low, elements are moved lazily between buffers without immediate sorting. When contention increases, sorting is triggered to maintain prioritization, thus adapting the sorting overhead to actual system conditions.

Inventive Principle:
Principle #15Dynamics

2Reliability

If sorting is performed frequently to maintain priority order, then request prioritization is accurate, but system throughput decreases due to increased processing overhead

Engineering Contradiction:
Improvepriority accuracyVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Sorting is performed periodically or trigger-based rather than continuously. Elements are moved between FIFO buffers lazily, and sorting is only triggered when necessary (e.g., when contention is detected or when moving elements between different priority levels), thus maintaining priority accuracy while minimizing throughput impact.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system uses idle or low-contention periods to perform sorting operations automatically. When contention is low, the system has capacity to move and sort elements without impacting throughput, effectively using idle resources to maintain priority order.

Inventive Principle:
Principle #25Self-service

3Productivity

If multiple consumers access the priority queue concurrently, then system utilization increases, but contention and race conditions increase

Engineering Contradiction:
Improvesystem utilizationVSAvoidcontention control
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Multiple consumers can access different FIFO buffers simultaneously without interfering with each other. The tree-structured buffers provide natural partitioning that allows parallel consumer operations, increasing system utilization while reducing contention through spatial separation of access points.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The FIFO buffers act as intermediaries between producers and the priority queue. Elements are first placed in FIFO buffers, which then move them to the priority queue at appropriate times. This intermediary layer decouples producer and consumer operations, allowing concurrent access while maintaining control over when sorting and priority enforcement occurs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9588733B2System and method for supporting a lazy sorting priority queue in a computing environment
Publication Date: 2017.03.07 ORACLE INT CORP
  • US9588733B2 patent drawing
  • US9588733B2 patent drawing
  • US9588733B2 patent drawing

AI summary

A system and method can support queue processing in a computing environment. A lazy sorting priority queue in a concurrent system can include a priority queue and one or more buffers. The one or more buffers, which can be first-in first-out (FIFO) buffers, operate to store one or more requests received from one or more producers, and move at least one message to the priority queue when no consumer is waiting for processing a request. Furthermore, the priority queue operates to prioritize one or more incoming requests received from the one or more buffers, and allows one or more consumers to pick up the requests based on priority.