Capacity scheduling in a data-processing cluster
US-2019227842-A1 · Jul 25, 2019 · US
US10608961B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10608961-B2 |
| Application number | US-201815974283-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 8, 2018 |
| Priority date | May 8, 2018 |
| Publication date | Mar 31, 2020 |
| Grant date | Mar 31, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: accessing, by a server-based platform that includes a plurality of processing nodes, queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications associated with the server-based platform, wherein the one or more messages respectively specify a set of tasks to be performed by the server-based platform; and assigning, by the server-based platform based on the performance attributes, a corresponding set of the plurality of queues to each of the plurality of processing nodes, wherein assigning 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 executable to dequeue one or more messages stored in the corresponding set of queues and store the dequeued one or more messages in an intermediate storage area; and a second set of one or more processing threads executable to retrieve the one or more messages from the intermediate storage area and perform one or more tasks specified in the retrieved one or more messages. 2. The method of claim 1 , wherein the performance attributes specify a latency for messages enqueued in a given one of the plurality of queues, wherein the latency is indicative of a period of time taken to process a message after enqueueing that message in that given queue. 3. The method of claim 2 , further comprising: subsequent to the assigning, the server-based platform determining that a particular one of the plurality of queues is associated with a latency that satisfies a predefined threshold; and based on the determining, the server-based platform assigning a set of additional processing nodes to process messages from the particular queue. 4. The method of claim 1 , wherein the queue information specifies, for a particular one of the plurality of queues, a user of the server-based platform that is associated with that particular queue and permitted to provide messages to that particular queue, wherein a different user of the server-based platform is prevented from providing messages to that particular queue. 5. The method of claim 1 , wherein the assigning is such that two or more of the plurality of queues that are associated with the same user of the server-based platform are assigned to the same processing node. 6. The method of claim 1 , wherein the instantiation of the first set of one or more dequeuing threads is such that at least one dequeuing thread is instantiated per queue in the corresponding set of queues. 7. The method of claim 1 , wherein a given one of the plurality of queues is associated with a message type that determines one or more particular tasks that are allowed to be enqueued in that given queue as one or more messages. 8. A non-transitory computer-readable medium having program instructions stored thereon that are executable by a computer system to perform operations comprising accessing queue information specifying metrics for a plurality of queues capable of storing messages corresponding to one or more applications associated with the computer system, wherein a given message specifies a set of tasks to be performed by the computer system; and assigning, to a given one of a plurality of processing nodes, a respective set of the plurality of queues based on the specified metrics, wherein assigning causes that given entity to instantiate: for a given one in the respective set of queues, a dequeuing thread that is executable to retrieve one or more messages stored in that given queue and store the one or more messages in a storage area; and a set of processing threads that are executable to retrieve the one or more messages from the storage area and perform one or more tasks specified in the one or more message. 9. The non-transitory computer-readable medium of claim 8 , wherein the operations further comprise: provisioning a wildcard queue that is capable of storing messages of a plurality of different message types from the one or more applications associated with the computer system; determining that the wildcard queue is storing at least a threshold number of messages of a particular message type, wherein the messages of the particular message type are received within a particular timeframe from one or more applications associated with a particular user; and based on the determining, provisioning a particular queue capable of storing messages of only the particular message type from one or more applications associated with the particular user. 10. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise: subsequent to provisioning the particular queue, assigning at least one of the plurality of processing nodes to the particular queue for processing messages stored in the particular queue. 11. The non-transitory computer-readable medium of claim 8 , wherein the operations further comprise: determining that a particular one of the plurality of queues has been idle for an interval of time that satisfies a threshold amount of time; and in response to determining that the interval of time satisfies the threshold amount of time, deleting the particular queue by: updating an access policy of the particular queue to prevent messages from being stored in the particular queue, wherein updating the access policy takes a particular amount of time to propagate; subsequent to the particular amount of time elapsing, determining whether one or more messages have been enqueued in the particular queue; and in response to determining that no messages have been enqueued in the particular queue, deleting the particular queue. 12. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise: provisioning a wildcard queue that is capable of storing messages of a plurality of different message types corresponding to one or more applications, wherein messages directed to the particular queue are sent to the wildcard queue after the updating of the access policy has propagated. 13. The non-transitory computer-readable medium of claim 8 , wherein the operations further comprise: determining a division of a plurality of users of the computer system into two or more user groups, wherein a particular one of the plurality of queues stores messages corresponding to only one or more applications associated with users in a particular one of the two or more user groups. 14. The non-transitory computer-readable medium of claim 8 , wherein the assigning includes: preventing a particular one of the plurality of queues from being serviced by more than a maximum number of nodes. 15. A method, comprising: accessing, by a message-processing platform that includes a plurality of processing nodes, queue information that specifies, for a given one of a plurality of queues capable of storing messages, a performance metric and a particular tenant of the message-processing platform that corresponds to that given queue, wherein the messages respectively specify a set of tasks to be performed by at least one of the plurality of processing nodes; assigning, by the message-processing platform, a corresponding set of the plurality of queues to each of the plurality of processing nodes, wherein the assigning is based on the performance metric and is such that queues corresponding to the same particular tenant are assigned to the same processing node; causing, by the message-processing platform, ones of the plurality of processing nodes to instantiate: for a particular one in the set of que
including multiple buffers, e.g. buffer pools · CPC title
Virtual switches · 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
based on a hash applied to IP addresses or costs · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.