System and method for equitable processing of asynchronous messages in a multi-tenant platform
First Claim
1. A job processing system for processing asynchronous messages for multiple tenants in a multi-tenant platform, the system comprising:
- at least one hardware processor;
memory storing computer instructions, the computer instructions when executed by the at least one hardware processor configured to cause the at least one hardware processor to;
receive by an input buffer a plurality of asynchronous messages, the plurality of asynchronous messages being associated with one or more tenants of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages being associated with a particular tenant of the one or more tenants of the multiple tenants, each tenant of the multiple tenants having a tenant priority level;
determine a current execution demand for each tenant of the one or more tenants of the multiple tenants;
determine a message priority for each asynchronous message of the plurality of asynchronous messages based on the tenant priority level associated with the tenant associated with the asynchronous message and based on the current execution demand for the tenant associated with the asynchronous message;
generate a decision whether to allow or to delay each asynchronous message of the plurality of asynchronous messages based on the message priority determined for the asynchronous message and on a current backlog;
if the decision indicates to delay a particular asynchronous message of the plurality of asynchronous messages, deliver the particular asynchronous message to a delay buffer;
if the decision indicates to allow the particular asynchronous message of the plurality of asynchronous messages, deliver the particular asynchronous message to an output buffer for the particular asynchronous message to wait its turn to be processed by the at least one hardware processor; and
adjust the message priority of each asynchronous message in the delay buffer based on delay information.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods and media are shown for equitable job processing of asynchronous messages for multiple tenants in a multi-tenant platform that involve receiving messages of a given message type in an input buffer from at least one front end tier (FET) device, providing messages of the given message type from an output buffer to at least one back end tier (BET) device, determining a priority weight W for each message in the input buffer based on a tenant identifier and message type for the message, and evaluating the priority weight W for the message and delaying the message if the priority weight W is below a priority threshold and moving the message to the output buffer if the priority weight W is not below the priority threshold.
26 Citations
20 Claims
-
1. A job processing system for processing asynchronous messages for multiple tenants in a multi-tenant platform, the system comprising:
-
at least one hardware processor; memory storing computer instructions, the computer instructions when executed by the at least one hardware processor configured to cause the at least one hardware processor to; receive by an input buffer a plurality of asynchronous messages, the plurality of asynchronous messages being associated with one or more tenants of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages being associated with a particular tenant of the one or more tenants of the multiple tenants, each tenant of the multiple tenants having a tenant priority level; determine a current execution demand for each tenant of the one or more tenants of the multiple tenants; determine a message priority for each asynchronous message of the plurality of asynchronous messages based on the tenant priority level associated with the tenant associated with the asynchronous message and based on the current execution demand for the tenant associated with the asynchronous message; generate a decision whether to allow or to delay each asynchronous message of the plurality of asynchronous messages based on the message priority determined for the asynchronous message and on a current backlog; if the decision indicates to delay a particular asynchronous message of the plurality of asynchronous messages, deliver the particular asynchronous message to a delay buffer; if the decision indicates to allow the particular asynchronous message of the plurality of asynchronous messages, deliver the particular asynchronous message to an output buffer for the particular asynchronous message to wait its turn to be processed by the at least one hardware processor; and adjust the message priority of each asynchronous message in the delay buffer based on delay information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of job processing asynchronous messages for multiple tenants in a multi-tenant platform, the method comprising the steps of:
-
receiving by an input buffer a plurality of asynchronous messages, the plurality of asynchronous messages being associated with one or more tenants of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages being associated with a particular tenant of the one or more tenants of the multiple tenants, each tenant of the multiple tenants having a tenant priority level; determining a current execution demand for each tenant of the one or more tenants of the multiple tenants; determining a message priority for each asynchronous message of the plurality of asynchronous messages based on the tenant priority level associated with the tenant associated with the asynchronous message and based on the current execution demand for the tenant associated with the asynchronous message; generating a decision whether to allow or to delay each asynchronous message of the plurality of asynchronous messages based on the message priority determined for the asynchronous message and on a current backlog; if the decision indicates to delay a particular asynchronous message of the plurality of asynchronous messages, delivering the particular asynchronous message to a delay buffer; if the decision indicates to allow the particular asynchronous message of the plurality of asynchronous messages, delivering the particular asynchronous message to an output buffer for the particular asynchronous message to wait its turn to be processed; and adjusting the message priority of each asynchronous message in the delay buffer based on delay information. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A non-transitory computer readable medium storing computer code having instructions stored therein that configure a processing device to perform the following steps:
-
receiving by an input buffer a plurality of asynchronous messages, the plurality of asynchronous messages being associated with one or more tenants of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages being associated with a particular tenant of the one or more tenants of the multiple tenants, each tenant of the multiple tenants having a tenant priority level; determining a current execution demand for each tenant of the one or more tenants of the multiple tenants; determining a message priority for each asynchronous message of the plurality of asynchronous messages received based on the tenant priority level associated with the tenant associated with the asynchronous message and based on the current execution demand for the tenant associated with the asynchronous message; generating a decision whether to allow or to delay each asynchronous message of the plurality of asynchronous messages based on the message priority determined for the asynchronous message and on a current backlog; if the decision indicates to delay a particular asynchronous message of the plurality of asynchronous messages, delivering the particular asynchronous message to a delay buffer; if the decision indicates to allow the particular asynchronous message of the plurality of asynchronous messages, delivering the particular asynchronous message to an output buffer for the particular asynchronous message to wait its turn to be processed by the processing device; and adjusting the message priority of each asynchronous message in the delay buffer based on delay information.
-
Specification