×

Decentralized application placement for web application middleware

  • US 7,496,667 B2
  • Filed: 01/31/2006
  • Issued: 02/24/2009
  • Est. Priority Date: 01/31/2006
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method for decentralized application resource allocation for a cluster of nodes, the method comprising:

  • utilizing an overlay construction algorithm to identify a subset of nodes in the node cluster for a local node, the local node including a current set of applications executing at the local node, the subset of nodes being logical neighbors of the local node;

    receiving, at the local node, resource utilization data of applications from the subset of nodes in the node cluster, wherein receiving resource utilization data includes receiving a list of active applications from each node in the subset of nodes, receiving a resource supply and demand for each active application in the list, and receiving resource utilization data for each active application in the list;

    determining a new set of applications to execute at the local node which optimizes an objective function as computed locally by the local node based, at least in part, on the utilization data, wherein determining the new set of applications to execute at the local node further comprises defining a set of running applications executing on the local node, sorting the running applications in increasing order of delivered density, wherein delivered density is defined as a ratio between an amount of CPU delivered to the application and a memory utilized by the application, defining a set of standby applications, the standby applications including applications executing on the subset of nodes and not on the local node and applications not executing anywhere in the cluster of nodes, filtering the set of standby applications by removing from the set of standby applications the applications for which there is no unsatisfied demand, the unsatisfied demand being defined as the difference between demand and supply for resources, sorting the set of standby applications in decreasing order of unsatisfied density, the unsatisfied density defined as a ratio between the unsatisfied demand and the memory utilized by the application, shifting load by attempting to assign as much load as possible from the local node to the subset of nodes, building a plurality of local configurations by successively replacing applications from the sorted set of running applications with applications from the sorted set of standby applications, and selecting from the local configurations an optimal configuration that maximizes CPU utilization on the local node;

    modifying which applications are executed at the local node according to the new set of executing applications;

    sending from the local node to the subset of nodes in the node cluster application execution changes between the new set of applications and the current set of applications at the local node, wherein sending from the local node to the subset of nodes in the node cluster application execution changes includes using a gossip protocol, in which each node aggregates messages the node has received or originated during a predetermined interval of time, before sending the aggregated messages, inside a single message, to neighboring nodes;

    locking, for each application that the local node starts and stops, all nodes located two logical hops away and preventing the nodes from starting and stopping the application; and

    acquiring, from a designated node, a lock that prevents other nodes from starting an application that currently is not running anywhere in the cluster of nodes,wherein the receiving, determining, modifying and sending operations are performed independently and asynchronously at each node in the cluster of nodes.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×