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 from at least one front end tier device, the plurality of asynchronous messages being associated with one or more of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages having a message type of multiple message types and being associated with a particular one of the one or more of the multiple tenants;
determine an execution demand of the plurality of asynchronous messages of each message type for each of the one or more of the multiple tenants;
determine a priority weight for each asynchronous message of the plurality of asynchronous messages received based on a service level associated with a tenant associated with the asynchronous message and based on the execution demand of the plurality of asynchronous messages for the tenant of the message type 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 priority weight determined for the asynchronous message;
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 priority weight of each asynchronous message in the delay buffer based on delay information.
2 Assignments
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.
27 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 from at least one front end tier device, the plurality of asynchronous messages being associated with one or more of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages having a message type of multiple message types and being associated with a particular one of the one or more of the multiple tenants; determine an execution demand of the plurality of asynchronous messages of each message type for each of the one or more of the multiple tenants; determine a priority weight for each asynchronous message of the plurality of asynchronous messages received based on a service level associated with a tenant associated with the asynchronous message and based on the execution demand of the plurality of asynchronous messages for the tenant of the message type 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 priority weight determined for the asynchronous message; 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 priority weight 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. 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 from at least one front end tier device, the plurality of asynchronous messages being associated with one or more of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages having a message type of multiple message types and being associated with a particular one of the one or more of the multiple tenants; determining an execution demand of the plurality of asynchronous messages of each message type for each of the one or more of the multiple tenants; determining a priority weight for each asynchronous message of the plurality of asynchronous messages received based on a service level associated with a tenant associated with the asynchronous message and based on the execution demand of the plurality of asynchronous messages for the tenant of the message type 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 priority weight determined for the asynchronous message; 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 priority weight of each asynchronous message in the delay buffer based on delay information. - View Dependent Claims (15, 16, 17)
-
-
18. A non-transitory computer readable medium storing computer code having instructions stored therein that configure a processing device to operate to perform job processing of asynchronous messages as follows:
-
receive by an input buffer a plurality of asynchronous messages from at least one front end tier device, the plurality of asynchronous messages being associated with one or more of multiple tenants in a multi-tenant platform, each asynchronous message of the plurality of asynchronous messages having a message type of multiple message types and being associated with a particular one of the one or more of the multiple tenants; determine an execution demand of the plurality of asynchronous messages of each message type for each of the one or more of the multiple tenants; determine a priority weight for each asynchronous message of the plurality of asynchronous messages received based on a tenant associated with the asynchronous message and based on the execution demand of the plurality of asynchronous messages for the tenant of the message type 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 priority weight determined for the asynchronous message; 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; and adjust the priority weight of each asynchronous message in the delay buffer based on delay information. - View Dependent Claims (19, 20)
-
Specification