Systems and methods for decentralized service placement in a resource pool
First Claim
1. A method in a leaf agent executing at a computing device and acting as a child to a parent agent in a hierarchy of agents for enabling decentralized service placement, the method comprising:
- receiving, at the leaf agent from the parent agent, a service request description that specifies resource requirements for a plurality of components of a service to be deployed;
generating, based upon the resource requirements, a query placement partition identifying a plurality of groups of the plurality of components, wherein the plurality of groups includes a colocation group and a non-colocation group, wherein a first of the plurality of groups identified by the query placement partition includes the non-colocation group that comprises one or more non-colocation identifiers identifying one or more of the plurality of components that cannot be placed along with one or more components of the first group;
generating, based upon the query placement partition and a set of resources available at one or more computing devices associated with the leaf agent, one or more solution encodings indicating possible placements of some or all of the components of the service request description that the one or more computing devices can locally provide while satisfying the resource requirements of the some or all of the components; and
transmitting, by the leaf agent to the parent agent, the one or more solution encodings.
1 Assignment
0 Petitions
Accused Products
Abstract
Exemplary methods for distributed multi-component service placement in a resource pool include utilizing a hierarchy of agents associated with computing resources of a cloud architecture. A root agent in the hierarchy can receive service requests specifying resource requirements and optionally location or affinity constraints, transform these into service request descriptions, and pass the service request descriptions down through the hierarchy to arrive at leaf nodes. The leaf nodes can each, perhaps in parallel, generate solution encodings indicating possible placements of some or all of the components of the service request that one or more computing devices associated with each agent can locally provide while still satisfying the resource requirements. The generated solution encodings can be passed back up and be consolidated as they flow through the hierarchy, allowing the root agent to quickly and accurately determine whether the service request may be fulfilled, and optionally place the service.
19 Citations
22 Claims
-
1. A method in a leaf agent executing at a computing device and acting as a child to a parent agent in a hierarchy of agents for enabling decentralized service placement, the method comprising:
-
receiving, at the leaf agent from the parent agent, a service request description that specifies resource requirements for a plurality of components of a service to be deployed; generating, based upon the resource requirements, a query placement partition identifying a plurality of groups of the plurality of components, wherein the plurality of groups includes a colocation group and a non-colocation group, wherein a first of the plurality of groups identified by the query placement partition includes the non-colocation group that comprises one or more non-colocation identifiers identifying one or more of the plurality of components that cannot be placed along with one or more components of the first group; generating, based upon the query placement partition and a set of resources available at one or more computing devices associated with the leaf agent, one or more solution encodings indicating possible placements of some or all of the components of the service request description that the one or more computing devices can locally provide while satisfying the resource requirements of the some or all of the components; and transmitting, by the leaf agent to the parent agent, the one or more solution encodings. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method in an intermediate agent executing at an electronic device and acting as a parent to a plurality of agents in a hierarchy and further acting as a child to another agent in the hierarchy, the method for enabling decentralized service placement, the method comprising:
-
receiving, at the intermediate agent from the another agent, a service request description that specifies resource requirements for a plurality of components of a service to be deployed, wherein the service request description includes, for a first of the plurality of components, one or more non-colocation identifiers that identify one or more others of the plurality of components that cannot be placed with the first component; transmitting, by the intermediate agent, the service request description to the plurality of agents acting as children of the intermediate agent in the hierarchy; receiving, by the intermediate agent from the plurality of agents, a plurality of solution encodings generated by the plurality of agents, wherein each of the plurality of solution encodings indicates an aggregated set of possible placements of some or all of the components of the service request description that one or more computing devices associated with the corresponding agent or associated with all descendant agents of the corresponding agent can provide while satisfying the resource requirements of the some or all of the components; merging, by the intermediate agent, the plurality of solution encodings into one or more solution encodings that indicate another aggregated set of possible placements of some or all of the components of the service request description that one or more computing devices associated with the intermediate agent or associated with all descendant agents of the intermediate agent can provide while satisfying the resource requirements of the some or all of the components; and transmitting, by the intermediate agent, the one or more merged solution encodings to the another agent acting as a parent to the intermediate agent. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system providing decentralized service placement, comprising:
a plurality of agents executing at one or more electronic devices and that are configured in a hierarchy, including; a root agent acting as a root of the hierarchy, wherein the root agent is configured to; receive service requests from clients indicating resource requirements for services to be deployed including pluralities of components, transmit service request descriptions based upon the service requests to a plurality of intermediate agents of the hierarchy to be distributed to a plurality of leaf agents of the hierarchy, receive solution encodings corresponding to the service request descriptions from the plurality of intermediate agents, wherein the solution encodings are generated by the plurality of intermediate agents and indicate sets of possible placements of some or all of the components of each of the service request descriptions that can be provided by a plurality of computing devices associated with the plurality of leaf agents that satisfy resource requirements of the some or all of the components, and determine, based upon the received solution encodings, whether the service requests can be placed using the plurality of computing devices; the plurality of intermediate agents, wherein each of the intermediate agents is configured to; receive the transmitted service request descriptions transmitted from the root agent or another of the plurality of intermediate agents, transmit the received service request descriptions to one or more other intermediate agents or one or more of the plurality of leaf agents, receive solution encodings corresponding to the service request descriptions from the one or more other intermediate agents or the one or more of the plurality of leaf agents, merge the received solution encodings, and transmit the merged solution encodings to the root agent or to the another of the plurality of intermediate agents; and the plurality of leaf agents, wherein each of the plurality of leaf agents is configured to; receive, from one of the plurality of intermediate agents, the service request descriptions, generate query placement partitions for the service request descriptions, wherein each query placement partition identifies a plurality of groups of a plurality of components specified in the service request description, wherein a first of the plurality of groups includes a colocation group and a second of the plurality of groups includes a non-colocation group that comprises one or more non-colocation identifiers of a corresponding one or more components that cannot be placed with the one or more components of the second group, generate solution encodings based upon the generated query placement partitions and a set of resources available at one or more computing devices associated with the leaf agent, wherein each of the solution encodings indicates possible placements of some or all of the components of the corresponding service request description that the one or more computing devices can locally provide while satisfying the resource requirements of the some or all of the components, and transmit, to the one of the plurality of intermediate agents, the solution encodings. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
Specification