IP Library Granted Patent US 11,740,835
Granted Patent B2
US 11,740,835 · App. 17/335,410 · Granted Aug 29, 2023

Prioritized queue management

Inventor: Austin Formosa Lee (Burbank, CA)
Assignee: Rapid7, Inc.
G06F3/0659G06F3/0604G06F3/0673
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,740,835
App. No.
17/335,410
Granted
Aug 29, 2023
Kind
B2
Abstract

Methods and systems for managing queues. The disclosed methods involve receiving, at an interface, a request to store a message in a queue, storing the message as a row in a key-value store database, extracting at least one attribute from the message; and selecting the message for processing based on the at least one extracted attribute.

Claims (57)

1. A method comprising:

performing, by a queue management system implemented by one or more computers:

receiving, at an interface, a request to create a queue to store messages from a client in a sort order;

creating the queue in a data store, wherein the data store stores a plurality of queues managed by the queue management system, comprising a first queue that stores first messages in a first-in-first-out (FIFO) order based on a creation time attribute of the first messages and a second queue that stores second messages in a last-in-first-out (LIFO) order based on a creation time attribute of the second messages, and wherein the queues are stored on different partitions of the data store determined based on a queue name of individual ones of the queues;

monitoring one or more statistics of the queue in the data store;

determining, based on the one or more statistics, that the queue is to be processed next among the plurality of queues; and

selecting a message from the queue for processing based on the sort order of the queue, wherein the message is processed to detect malicious or unusual activity in connection with the client.

2. The method of claim 1 , further comprising performing, by the queue management system:

elevating the queue for processing based on the one or more statistics; and

deprioritizing the queue for processing based on the one or more statistics.

3. The method of claim 1 , wherein the one or more statistics include one or more of:

a size of the queue;

an age of the queue; and

a last update time of the queue.

4. The method of claim 1 , further comprising providing, by the queue management system, values of the one or more statistics via an API of the queue management system.

5. The method of claim 1 , further comprising storing, by the queue management system, a message in the queue, wherein the message is stored as a row in a table of the data store, the row including a partition key indicating a partition associated with the queue and a sort key indicating a sort value of the message.

6. The method of claim 5 , wherein the partition key uniquely identifies the queue and includes a name of an organization associated with the queue.

7. The method of claim 1 , further comprising the queue management system storing the plurality of queues in one table of the data store.

8. The method of claim 1 , further comprising storing, by the queue management system, the one or more statistics in one or more reserved partitions of the data store.

9. The method of claim 1 , wherein the message is selected from the queue based on one or more attributes extracted from the message.

10. The method of claim 9 , wherein the one or more attributes include one or more of:

a size of the message;

an age of the message;

a priority of the message; and

a sensitivity of the message.

11. A system comprising:

one or more computers systems that a queue management system, configured to:

receive, at an interface, a request to create a queue to store messages from a client in a sort order;

create the queue in a data store, wherein the data store stores a plurality of queues managed by the queue management system, comprising a first queue that stores first messages in a first-in-first-out (FIFO) order based on a creation time attribute of the first messages and a second queue that stores second messages in a last-in-first-out (LIFO) order based on a creation time attribute of the second messages, and wherein the queues are stored on different partitions of the data store determined based on a queue name of individual ones of the queues;

monitor one or more statistics of the queue in the data store;

determine, based on the one or more statistics, that the queue is to be processed next among the plurality of queues; and

select a message from the queue for processing based on the sort order of the queue, wherein the message is processed to detect malicious or unusual activity in connection with the client.

12. The system of claim 11 , wherein the queue management system is configured to:

elevate the queue for processing based on the one or more statistics; and

deprioritize the queue for processing based on the one or more statistics.

13. The system of claim 11 , wherein the one or more statistics include one or more of:

a size of the queue;

an age of the queue; and

a last update time of the queue.

14. The system of claim 11 , wherein the queue management system is configured to store the one or more statistics in one or more reserved partitions of the data store.

15. The system of claim 11 , wherein to select the message from the queue, the queue management system is configured to:

extract one or more attributes from the message; and

select the message from the queue based on the one or more attributes.

16. The system of claim 15 , wherein the one or more attributes include one or more of:

a size of the message;

an age of the message;

a priority of the message; and

a sensitivity of the message.

17. The system of claim 11 , wherein the queue management system is configured to store the message in the queue as a table row that includes a partition key indicating a partition associated with the queue and a sort key indicating a sort value of the message.

18. The system of claim 11 , wherein the sort key uniquely identifies the message.

19. One or more non-transitory computer-readable media storing program instructions that when executed on or across one or more processors implement a queue management system and cause the queue management system to:

receive, at an interface, a request to create a queue to store messages from a client in a sort order;

create the queue in a data store, wherein the data store stores a plurality of queues managed by the queue management system, comprising a first queue that stores first messages in a first-in-first-out (FIFO) order based on a creation time attribute of the first messages and a second queue that stores second messages in a last-in-first-out (LIFO) order based on a creation time attribute of the second messages, and wherein the queues are stored on different partitions of the data store determined based on a queue name of individual ones of the queue;

monitor one or more statistics of the queue in the data store;

determine, based on the one or more statistics, that the queue is to be processed next among the plurality of queues; and

select a message from the queue for processing based on the sort order of the queue, wherein the message is processed to detect malicious or unusual activity in connection with the client.

20. The one or more non-transitory computer-readable media of claim 19 , wherein the messages in the queue are schema-less.

Assignments (2)
SECURITY INTEREST Recorded Jun 26, 2025
From: RAPID7, INC.; RAPID7 LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071743/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2024
From: LEE, AUSTIN
To: RAPID7, INC.
Reel/Frame 069049/0789 →
Continuity (2)
Continuation 16685633 · Nov 15, 2019
Related Publication 20210286560A1 · Sep 16, 2021