Techniques for improving resource utilization in a microservices architecture via priority queues

US2023053933A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2023053933-A1
Application numberUS-202117409139-A
CountryUS
Kind codeA1
Filing dateAug 23, 2021
Priority dateAug 23, 2021
Publication dateFeb 23, 2023
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In various embodiments, a flexible queue application allocates messages stored in priority queues to clients. In operation, the flexible queue application receives, from a client, a request to allocate a message from a priority queue. At least a first message and a second message are stored in the priority queue, and the priority of the first message is higher than the priority of the second message. The flexible queue application determines that the first message is pending but does not satisfy an allocation constraint. The flexible queue allocation then determines that the second message is pending and satisfies the allocation constraint. The flexible queue application allocates the second message to the client. Advantageously, because the flexible queue application can adapt the priority-based ordering of priority queues based on allocation constraints, the flexible queue application can efficiently enforce resource-related constraints when allocating messages from priority queues.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computer-implemented method, comprising: receiving, from a first client, a first request to allocate a message from a priority queue; determining that a first message that is stored in the priority queue and is pending does not satisfy a first allocation constraint, wherein a first priority is associated with the first message; determining that a second message that is stored in the priority queue and is pending satisfies the first allocation constraint, wherein the first priority associated with the first message is higher than a second priority associated with the second message; and allocating the second message to the first client. 2 . The computer-implemented method of claim 1 , wherein determining that the first message does not satisfy the first allocation constraint comprises comparing a first exclusivity key value associated with the first message to a second exclusivity key value associated with a third message that is stored in the priority queue and is running. 3 . The computer-implemented method of claim 2 , further comprising: deleting the third message from the priority queue; receiving, from the first client, a second request to allocate a message from the priority queue; and allocating the first message to the first client. 4 . The computer-implemented method of claim 1 , wherein determining that the first message does not satisfy the first allocation constraint comprises comparing at least one key-value pair specified via the first request to zero or more key-value pairs associated with the first message. 5 . The computer-implemented method of claim 1 , wherein the first message is associated with a first exclusivity key value, and wherein determining that the first message does not satisfy the first allocation constraint comprises determining that a third message that is stored in the priority queue and is running is associated with the first exclusivity key value or determining that the first message is not associated with a first key-value pair specified via the first request. 6 . The computer-implemented method of claim 1 , wherein the first allocation constraint is associated with a processor type, a function identifier, or a project identifier. 7 . The computer-implemented method of claim 1 , further comprising: receiving, from a second client, a second request to allocate a message from the priority queue; determining that the first message is pending and satisfies a second allocation constraint; and allocating the first message to the second client. 8 . The computer-implemented method of claim 1 , further comprising: receiving, from the first client, a second request to postpone the second message for a first duration of time; updating a state associated with the second message to indicate that the second message is invisible; and after determining that the first duration of time has elapsed, updating the state associated with the second message to indicate that the second message is pending. 9 . The computer-implemented method of claim 1 , wherein the second message specifies a task and allocating the second message to the first client causes the first client to execute the task. 10 . The computer-implemented method of claim 1 , wherein the first client comprises a microservice, a software application, or a function. 11 . One or more non-transitory computer readable media including instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving, from a first client, a first request to allocate a message from a priority queue; determining that a first message that is stored in the priority queue and is pending does not satisfy a first allocation constraint, wherein a first priority is associated with the first message; determining that a second message that is stored in the priority queue and is pending satisfies the first allocation constraint, wherein the first priority associated with the first message is higher than a second priority associated with the second message; and allocating the second message to the first client. 12 . The one or more non-transitory computer readable media of claim 11 , wherein determining that the first message does not satisfy the first allocation constraint comprises comparing a first exclusivity key value associated with the first message to a second exclusivity key value associated with a third message that is stored in the priority queue and is running. 13 . The one or more non-transitory computer readable media of claim 12 , further comprising: deleting the third message from the priority queue; receiving, from the first client, a second request to allocate a message from the priority queue; and allocating the first message to the first client. 14 . The one or more non-transitory computer readable media of claim 11 , wherein determining that the first message does not satisfy the first allocation constraint comprises comparing at least one key-value pair specified via the first request to zero or more key-value pairs associated with the first message. 15 . The one or more non-transitory computer readable media of claim 14 , wherein the at least one key-value pair specifies at least one of a processor type, a function identifier, or a project identifier. 16 . The one or more non-transitory computer readable media of claim 11 , wherein the first message is associated with a first exclusivity key value, and wherein determining that the first message does not satisfy the first allocation constraint comprises determining that a third message that is stored in the priority queue and is running is associated with the first exclusivity key value or determining that the first message is not associated with a first key-value pair specified via the first request. 17 . The one or more non-transitory computer readable media of claim 11 , further comprising: receiving, from a second client, a second request to allocate a message from the priority queue; determining that the first message is pending and satisfies a second allocation constraint; and allocating the first message to the second client. 18 . The one or more non-transitory computer readable media of claim 11 , further comprising: determining that the first client has not successfully processed the second message within a lease duration of time; updating a state associated with the second message to indicate that the second message is invisible; and after an invisibility duration of time, updating the state associated with the second message to indicate that the second message is pending. 19 . The one or more non-transitory computer readable media of claim 11 , wherein the second message specifies a task and allocating the second message to the first client causes the first client to execute the task. 20 . A system, comprising: one or more memories storing instructions; and one or more processors coupled to the one or more memories that, when executing the instructions, perform the steps of: receiving, from a first client, a first request to allocate a message from a priority queue; determining that a first message that is stored in the priority queue and is pending does not satisfy a first allocation constraint, wherein a first priority is associated with the first message; determining that a second message that is stored in the priority queue and is pending satisfies the first allocation constraint, wherein the first priority associated with

Assignees

Inventors

Classifications

  • G06F9/546Primary

    Message passing systems or structures, e.g. queues · CPC title

  • for supporting traffic characterised by the type of applications · CPC title

  • using signalling traffic · CPC title

  • H04L47/522Primary

    Dynamic queue service slot or variable bandwidth allocation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2023053933A1 cover?
In various embodiments, a flexible queue application allocates messages stored in priority queues to clients. In operation, the flexible queue application receives, from a client, a request to allocate a message from a priority queue. At least a first message and a second message are stored in the priority queue, and the priority of the first message is higher than the priority of the second me…
Who is the assignee on this patent?
Netflix Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/546. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Feb 23 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).