CA2533744C

Hierarchical management of the dynamic allocation of resources in a multi-node system

Abstract

Approaches are used for efficiently and effectively managing the dynamic allocation of resources of multi-node database systems between services provided by the multi-node database server. A service is a category of work that is hosted on the database server. The approaches manage allocation of resources at different levels. For services that use a particular database, the performance realized by the services is monitored. Resources assigned to the database are allocated between these services to ensure performance goals for each are met. Resources assigned to a cluster of nodes are allocated between the databases to ensure that performance goals for all the services that use the databases are met. Resources assigned to a farm of clusters are assigned amongst clusters based on service level agreements and back-end policies. The approach uses a hierarchy of directors to manage resources at the different levels.

CA2533744C, drawing sheet 1
Sheet 1 of 11

Term

Term ended

Expired 13 August 2024, 2.1 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

40 claims: 22 independent, 18 dependent

  1. 1
    CA 02533744 2009-06-01 CLAIMS 1. A method for dynamically allocating computer resources of a multi-node computer system, the method comprising computer implemented steps of:monitoring performance realized by a plurality of services running on the multi-node computer system, wherein said plurality of services includes a first service and a second service;based on said monitoring the performance of a plurality of services, generating performance metrics that indicate performance realized by each service of said plurality of services;based on the performance metrics, said multi-node computer system detecting a violation of service-level agreements for said first service;in response to detecting said violation of said service-level agreements, said multi-node computer system adjusting allocation of computer resources of said multi-node system between said first service and said second service;said computer resources containing pools of resources;the step of adjusting allocation of computer resources includes attempting to resolve said performance violation by adjusting, for said first service, allocation of a first pool of resources that is lower in a hierarchy before attempting to adjust allocation of a second pool of resources that is higher in said hierarchy. -42CA 02533744 2009-06-01
  2. 12
    A method for dynamically allocating computer resources of a multinode computer system that includes a first set of nodes and a second set of nodes, the method comprising the steps of:monitoring performance of a plurality of services hosted on said multinode system to generate performance metrics;based on said monitoring the performance of a plurality of services, generating performance metrics that indicate performance realized by each service of said plurality of services;wherein said multi-node system includes a first set of nodes and a second set of nodes;running a first multi-node server and a second multi-node server on said first set of nodes;wherein said plurality of services includes a first service and a second service hosted by said first multi-node server;a first system component running on said first set of nodes adjusting an allocation of computer resources of the first multi-node server between said first service and said second service based on said performance metrics;and a second system component running on said first set of nodes adjusting an allocation of computer resources of the first set of nodes between said first multi-node server and said second multi-node server based on said performance metrics;said computer resources containing pools of resources;the step of adjusting allocation of computer resources includes attempting to resolve said performance violation by adjusting, for said first service, allocation of a first pool of resources that is -45CA 02533744 2009-06-01 lower in a hierarchy before attempting to adjust allocation of a second pool of resources that is higher in said hierarchy.
  3. 21
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 1.
  4. 22
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 2.
  5. 23
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 3.
  6. 24
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 4.
  7. 25
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 5.
  8. 26
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 6.
  9. 27
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 7.
  10. 28
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 8. -48CA 02533744 2009-06-01
  11. 29
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 9.
  12. 30
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 10.
  13. 31
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 11.
  14. 32
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 12.
  15. 33
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 13.
  16. 34
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 14.
  17. 35
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 15.
  18. 36
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 16. -49CA 02533744 2009-06-01
  19. 37
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 17.
  20. 38
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform die method recited in Claim 18.
  21. 39
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 19.
  22. 40
    A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in Claim 20.
Independent claims22