Dynamic load balancing in a scalable environment
First Claim
Patent Images
1. A method for performing load balancing in a distributed computing environment, comprising:
- receiving a namespace from an application comprising a plurality of key values that span the namespace, the namespace comprising at least one of a range of possible input values for a job or a range of possible identifiers for a job within a computing environment;
receiving an application-defined interface comprising expressions corresponding to load balancing conditions based on one or more of the application-defined metrics and one or more conditional logic expressions;
evaluating at least a first load balancing expression;
initiating a load balancing action responsive to the evaluated first load balancing expression, the load balancing action comprising;
determining a value for at least one conditional logic expression for selection of load balancing conditions;
selecting, responsive to at least the determined value for the at least one conditional logic expression for selection of load balancing conditions, a plurality of expressions corresponding to load balancing conditions for evaluation, the plurality of expressions being selected from the expressions corresponding to load balancing conditions from the application-defined interface, the order of evaluation of the plurality of expressions being dependent on at least the determined value for the at least one conditional logic expression;
determining that at least one load balancing condition corresponding to the selected one or more of the plurality of expressions is satisfied; and
performing a load balancing action corresponding to the satisfied load balancing condition, the load balancing action comprising;
removing the assignment of a partition front a first partition server;
selecting, by a fixed partitioning system interface, a partition server for assignment of the removed partition from a group of partition servers, the group of partition servers excluding at least one partition server based on the load balancing condition; and
assigning the removed partition to the selected partition server.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided that enable a general framework for partitioning application-defined jobs (e.g., computation) in a scalable environment. The general framework decouples partitioning of a job from the other aspects of the job. As a result, the effort required to define the application-defined computation in a scalable environment is reduced or minimized, as the user is not required to provide a partitioning algorithm. The general framework further allows a user to provide load balancing conditions to allow for modification of how partitions are assigned.
92 Citations
10 Claims
-
1. A method for performing load balancing in a distributed computing environment, comprising:
-
receiving a namespace from an application comprising a plurality of key values that span the namespace, the namespace comprising at least one of a range of possible input values for a job or a range of possible identifiers for a job within a computing environment; receiving an application-defined interface comprising expressions corresponding to load balancing conditions based on one or more of the application-defined metrics and one or more conditional logic expressions; evaluating at least a first load balancing expression; initiating a load balancing action responsive to the evaluated first load balancing expression, the load balancing action comprising; determining a value for at least one conditional logic expression for selection of load balancing conditions; selecting, responsive to at least the determined value for the at least one conditional logic expression for selection of load balancing conditions, a plurality of expressions corresponding to load balancing conditions for evaluation, the plurality of expressions being selected from the expressions corresponding to load balancing conditions from the application-defined interface, the order of evaluation of the plurality of expressions being dependent on at least the determined value for the at least one conditional logic expression; determining that at least one load balancing condition corresponding to the selected one or more of the plurality of expressions is satisfied; and performing a load balancing action corresponding to the satisfied load balancing condition, the load balancing action comprising; removing the assignment of a partition front a first partition server; selecting, by a fixed partitioning system interface, a partition server for assignment of the removed partition from a group of partition servers, the group of partition servers excluding at least one partition server based on the load balancing condition; and assigning the removed partition to the selected partition server. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for performing load balancing in a distributed computing environment, comprising:
-
receiving a namespace from an application comprising a plurality of key values that span the namespace, the namespace comprising at least one of a range of possible input values for a job or a range of possible identifiers for a job within a computing environment; assigning, by a fixed partitioning system interface, a plurality of partitions based on the namespace to one or more partition servers, the plurality of partitions corresponding to key ranges that span the namespace, the partition servers implementing one or more application-defined partitioning system interfaces; receiving one or more metrics from the partition servers based on activity related to assigned partitions; receiving a plurality of application-defined load balancing conditions, a load balancing condition comprising an expression that can be evaluated based on at least one received metric, the plurality of load balancing conditions including a filter condition, the plurality of load balancing conditions further comprising a received ordering for the conditions, the filter condition comprising a condition that, when satisfied, modifies the received ordering for the conditions; evaluating a first portion of the plurality of application-defined load balancing conditions according to the received ordering, the filter condition having an initial filter value prior to the evaluating of the plurality of application-defined load balancing conditions, the filter condition changing to a second filter value during the evaluating of the first portion of the plurality of application-defined load balancing condition; modifying the received ordering of the plurality of application-defined load balancing conditions to a filtered order based on the changing of the filter condition to the second filter value; evaluating a second portion of the plurality of application-defined load balancing conditions according to the filtered ordering; and performing, by a fixed partitioning system interface, a load balancing action corresponding to a received load balancing condition, the load balancing action being performed based on the received load balancing condition being satisfied during said evaluation, the load balancing action including a change in a partition assignment for at least one partition server. - View Dependent Claims (8)
-
-
9. A method for performing load balancing in a distributed computing environment, comprising:
-
receiving a namespace from an application comprising a plurality of key values that span the namespace, the namespace comprising at least one of a range of possible input values for a job or a range of possible identifiers for a job within a computing environment; receiving an application-defined interface comprising a) expressions corresponding to load balancing conditions based on one or more of the application-defined metrics and one or more conditional logic expressions, and b) a lookup table; evaluating at least a first load balancing expression; initiating a load balancing action responsive to the evaluated first load balancing expression, the load balancing action comprising; determining a value for at least one expression from the received expressions corresponding to load balancing conditions; selecting at least one additional expression for evaluation, the at least one additional expression being selected based on using the determined value to select the at least one additional expression from the received lookup table; determining that at least one load balancing condition corresponding to the selected one or more of the plurality of expressions is satisfied; and performing a load balancing action corresponding to the satisfied load balancing condition, the load balancing action comprising; removing the assignment of a partition from a first partition server; selecting, by a fixed partitioning system interface, a partition server for assignment of the removed partition from a group of partition servers, the group of partition servers excluding at least one partition server based on the load balancing condition; and assigning the removed partition to the selected partition server. - View Dependent Claims (10)
-
Specification