Metadata-driven dynamic load balancing in multi-tenant systems
First Claim
1. A computer-implemented method, the method executed by one or more processors, the method comprising:
- identifying, at a load balancer, a request related to a model-based application executing in a multi-tenant system, wherein the multi-tenant system associated with a plurality of application servers, and wherein the load balancer manages routing of identified requests related to the model-based application to particular application servers in the multi-tenant system;
identifying, by the load balancer, at least one object in the model-based application associated with the identified request, wherein identifying the at least one object includes accessing a metadata repository associated with the model-based application to identify one or more design time objects associated with the identified request;
accessing, by the load balancer, a multi-tenant cache map storing information defining a current status of local caches of each of the plurality of application servers in the multi-tenant system maintained by the load balancer, wherein the multi-tenant cache map collects local cache information from each of the plurality of application servers in the multi-tenant system and identifies at least the locally-cached runtime versions of objects available in the corresponding local cache of the particular application servers;
identifying, by the load balancer using the multi-tenant cache map, at least two application servers from the plurality of application servers based on a determination that each of the at least two application servers includes, at a time the request is identified, a locally-cached version of at least one runtime version of the at least one identified object in the model-based application based on the current status of the local caches of the at least two application server as defined in the multi-tenant cache map; and
in response to identifying the at least two application servers, determining, by the load balancer, a particular application server from the at least two application servers to send the identified request for processing based at least in part on a combination of the locally-cached version of the at least one runtime version being available at the particular application server and the relative processing load of the particular application server as compared to the other application servers in the at least two identified application servers; and
sending, by the load balancer, the identified request to the determined particular application server for processing.
2 Assignments
0 Petitions
Accused Products
Abstract
The disclosure generally describes computer-implemented methods, computer program products, and systems for providing metadata-driven dynamic load balancing in multi-tenant systems. A computer-implemented method includes: identifying a request related to a model-based application executing in a multi-tenant system associated with a plurality of application servers and identifying at least one object in the model-based application associated with the request. At least one application server is identified as associated with a locally-cached version of a runtime version of the identified object, and a determination of a particular one of the identified application servers to send the identified request for processing is based on a combination of the availability of a locally-cached version of the runtime version at the particular application server and the server'"'"'s processing load. The request is then sent to the determined application server for processing.
-
Citations
18 Claims
-
1. A computer-implemented method, the method executed by one or more processors, the method comprising:
-
identifying, at a load balancer, a request related to a model-based application executing in a multi-tenant system, wherein the multi-tenant system associated with a plurality of application servers, and wherein the load balancer manages routing of identified requests related to the model-based application to particular application servers in the multi-tenant system; identifying, by the load balancer, at least one object in the model-based application associated with the identified request, wherein identifying the at least one object includes accessing a metadata repository associated with the model-based application to identify one or more design time objects associated with the identified request; accessing, by the load balancer, a multi-tenant cache map storing information defining a current status of local caches of each of the plurality of application servers in the multi-tenant system maintained by the load balancer, wherein the multi-tenant cache map collects local cache information from each of the plurality of application servers in the multi-tenant system and identifies at least the locally-cached runtime versions of objects available in the corresponding local cache of the particular application servers; identifying, by the load balancer using the multi-tenant cache map, at least two application servers from the plurality of application servers based on a determination that each of the at least two application servers includes, at a time the request is identified, a locally-cached version of at least one runtime version of the at least one identified object in the model-based application based on the current status of the local caches of the at least two application server as defined in the multi-tenant cache map; and in response to identifying the at least two application servers, determining, by the load balancer, a particular application server from the at least two application servers to send the identified request for processing based at least in part on a combination of the locally-cached version of the at least one runtime version being available at the particular application server and the relative processing load of the particular application server as compared to the other application servers in the at least two identified application servers; and sending, by the load balancer, the identified request to the determined particular application server for processing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 18)
-
-
10. A computer program product, the computer program product comprising computer-readable instructions embodied on non-transitory media, the instructions operable when executed by at least one computer to:
-
identify, at a load balancer, a request related to a model-based application executing in a multi-tenant system, the multi-tenant system associated with a plurality of application servers, and wherein the load balancer manages routing of identified requests related to the model-based application to particular application servers in the multi-tenant system; identify, by the load balancer, at least one object in the model-based application associated with the identified request, wherein identifying the at least one object includes accessing a metadata repository associated with the model-based application to identify one or more objects associated with the identified request; access, by the load balancer, a multi-tenant cache map storing information defining a current status of local caches of each of the plurality of application servers in the multi-tenant system maintained by the load balancer, wherein the multi-tenant cache map collects local cache information from each of the plurality of application servers in the multi-tenant system and identifies at least the locally-cached runtime versions of objects available in the corresponding local cache of the particular application servers; identify, by the load balancer using the multi-tenant cache map, at least two application servers from the plurality of application servers based on a determination that the at least two application servers include, at a time the request is identified, a locally-cached version of at least one runtime version of the at least one identified object in the model-based application as determined based on the current status of the local caches of the at least two application servers as defined in the multi-tenant map; and in response to identifying the at least two application servers, determine, by the load balancer, a particular application server from the at least two application servers to send the identified request for processing based at least in part on a combination of the locally-cached version of the at least one runtime version being available at the particular application server and the relative processing load of the particular application server as compared to the other application servers in the at least two identified application servers; and send, by the load balancer, the identified request to the determined particular application server for processing. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
-
at least one processor; a computer-readable storage medium coupled to the at least one processor having instructions stored thereon which, when executed by the at least one processor, cause the processor to perform operations comprising; identifying, at a load balancer, a request related to a model-based application executing in a multi-tenant system, wherein the multi-tenant system is associated with a plurality of application servers, and wherein the load balancer manages routing of identified requests related to the model-based application to particular application servers in the multi-tenant system; identifying, by the load balancer, at least one object in the model-based application associated with the identified request, wherein identifying the at least one object includes accessing a metadata repository associated with the model-based application to identify one or more objects associated with the identified request; accessing, by the load balancer, a multi-tenant cache map storing information defining a current status of local caches of each of the plurality of application servers in the multi-tenant system maintained by the load balancer, wherein the multi-tenant cache map collects local cache information from each of the plurality of application servers in the multi-tenant system and identifies at least the locally-cached runtime versions of objects available in the corresponding local cache of the particular application servers; identifying, by the load balancer using the multi-tenant cache map, at least two application servers from the plurality of application servers based on a determination that the at least two application servers include, at a time the request is identified, a locally-cached version of at least one runtime version of the at least one identified object in the model-based application as determined based on the current status of the local caches of the at least two application servers as defined in the multi-tenant map; and in response to identifying the at least two application servers, determining, by the load balancer, a particular application server from the at least two application servers to send the identified request for processing based at least in part on a combination of the locally-cached version of the at least one runtime version being available at the particular application server and the relative processing load of the particular application server as compared to the other application servers in the at least two identified application servers; and sending, by the load balancer, the identified request to the determined particular application server for processing.
-
Specification