Techniques for handling message queues

US11456971B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11456971-B2
Application numberUS-202117162698-A
CountryUS
Kind codeB2
Filing dateJan 29, 2021
Priority dateMay 8, 2018
Publication dateSep 27, 2022
Grant dateSep 27, 2022

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.

Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: provisioning, by a computer system, a set of message queues capable of storing messages issued by applications associated with the computer system, wherein a given message identifies a set of tasks to be performed by the computer system; attempting, by the computer system using a first component that includes a set of threads, to process a message that is stored in a message queue of the set of message queues; determining, by the computer system, that a set of criteria has been satisfied that pertains to failing to successfully process the message; and based on the determining, the computer system storing an indication that corresponds to the message in a debug queue that is accessible to a second, different component of the computer system that is capable of inspecting the message for an issue. 2. The method of claim 1 , wherein the determining that the set of criteria has been satisfied includes: accessing a processed count for the message that is indicative of a number of attempts that have been made to process the message; and determining that the processed count satisfies a threshold count. 3. The method of claim 2 , wherein the threshold count corresponding to the message is different than a threshold count corresponding to another message of a different message type. 4. The method of claim 1 , wherein the indication is a duplicate of the message, and wherein the method further comprises deleting the message from the message queue. 5. The method of claim 4 , further comprising: after storing the indication but prior to deleting the message, a thread of the set of threads attempting to process the message, wherein the attempting includes: determining that a processed count for the message satisfies a threshold count, wherein the processed count is indicative of a number of attempts that have been made to process the message; and ceasing to attempt to process the message. 6. The method of claim 1 , wherein the computer system implements a platform for a plurality of tenants, and wherein the method further comprises: provisioning, by the computer system, the debug queue such that only messages associated with a particular tenant of the plurality of tenants can be enqueued in the debug queue. 7. The method of claim 1 , wherein the set of threads includes: a first subset of threads executable to dequeue one or more messages from the message queue and store the one or more messages in a buffer; and a second subset of threads executable to retrieve the one or more messages from the buffer and perform tasks specified in the one or more messages. 8. A non-transitory computer-readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising: provisioning a set of message queues capable of storing messages issued by applications, wherein a given message identifies a set of tasks to be performed by the computer system; attempting to process a message stored in a message queue of the set of message queues; after failing to process the message, determining whether a set of criteria has been satisfied that pertains to failing to successfully process the message; and based on determining that the set of criteria has been satisfied, storing an indication that corresponds to the message in a debug queue accessible to a different component of the computer system that is capable of inspecting the message for an issue. 9. The medium of claim 8 , wherein the determining that the set of criteria has been satisfied includes determining, based on a processed count that corresponds to the message, that a threshold number of attempts that have been made to process the message. 10. The medium of claim 8 , wherein the attempting includes: based on a processed count that corresponds to the message, making a determination that a threshold number of attempts that have not been made to process the message; and proceeding to attempt to process the message in response to the determination. 11. The medium of claim 8 , wherein the indication is a duplicate of the message, and wherein the operations further comprise deleting the message from the message queue. 12. The medium of claim 8 , wherein the set of message queues are collectively capable of storing a plurality of different types of messages, and wherein the operations further comprise: provisioning the debug queue such that only messages of a particular type of the plurality of different types of messages can be enqueued in the debug queue. 13. The medium of claim 8 , wherein the operations further comprise: making a determination that a message has not been received at the message queue for a period of time that satisfies a threshold condition; and deleting the message queue from the set of queues in response to the determination. 14. A system, comprising: at least one processor; and memory having program instructions stored thereon that are executable by the at least one processor to cause the system to perform operations comprising: provisioning a set of message queues capable of storing messages that are issued by applications, wherein a given message identifies a set of tasks to be performed by the system; attempting to process a message stored in a message queue of the set of message queues; after failing to process the message, determining whether a set of criteria has been satisfied that pertains to failing to successfully process the message; and based on determining that the set of criteria has been satisfied, storing an indication that corresponds to the message in a debug queue accessible to a different component capable of inspecting the message for an issue. 15. The system of claim 14 , wherein the operations further comprise: incrementing a processed count that is indicative of a number of attempts made to process the message, wherein determining whether the set of criteria has been satisfied includes: determining whether the processed count satisfies a processed count limit. 16. The system of claim 15 , wherein the processed count limit is determined based on message type. 17. The system of claim 15 , wherein attempting to process the message includes: determining whether the indication corresponding to the message has already been stored in the debug queue by determining whether the processed count satisfies the processed count limit. 18. The system of claim 14 , wherein the indication is a duplicate of the message, and wherein the operations further comprise deleting the message from the message queue. 19. The system of claim 14 , wherein the operations further comprise: provisioning, for the set of message queues, a corresponding set of debug queues, wherein the debug queue is capable of storing only messages associated with the message queue. 20. The system of claim 14 , wherein the set of queues are provisioned at a message queue service that is separate from the system, and wherein the operations further comprises: maintaining a set of uniform resource locators (URLs) usable to access the set of queues at the message queue service.

Assignees

Inventors

Classifications

  • including multiple buffers, e.g. buffer pools · CPC title

  • based on a hash applied to IP addresses or costs · CPC title

  • Application aware switches, e.g. for HTTP · CPC title

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • Virtual switches · 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 US11456971B2 cover?
Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each …
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/1023. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Sep 27 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).