A method comprising: receiving, by one or more processors of a local background service, information relating to query requests from a plurality of query coordinators (512.1..3, 522.1..3, 532.1..3); based on the information relating to query requests and historical data, generating a current local demand for computing resources; communicating the current local demand for computing resources to a global background service over a network; receiving a current allowed number of computing resources from the global background service; assigning the current allowed number of computing resources to the plurality of query coordinators such that the query coordinators communicate directly with assigned computing resources to execute the query requests; communicating an updated current local demand to the global background service; receiving an updated current allowed number of computing resources from the global background service; assigning the updated current allowed number of computing resources to the plurality of query coordinators; in response to the updated current allowed number of computing resources being fewer than the current allowed number of computing resources, transmitting an instruction to release an assigned computing resource to a first query coordinator of the plurality of query coordinators; receiving a notification from the first query coordinator regarding the release of the assigned computing resource, the notification being read from a metadata database; and allocating the released computing resource to a second query coordinator of the plurality of query coordinators. receiving, by one or more processors of a local background service, information relating to query requests from a plurality of query coordinators (512.1..3, 522.1..3, 532.1..3); based on the information relating to query requests and historical data, generating a current local demand for computing resources; communicating the current local demand for computing resources to a global background service over a network; receiving a current allowed number of computing resources from the global background service; assigning the current allowed number of computing resources to the plurality of query coordinators such that the query coordinators communicate directly with assigned computing resources to execute the query requests; communicating an updated current local demand to the global background service; receiving an updated current allowed number of computing resources from the global background service; assigning the updated current allowed number of computing resources to the plurality of query coordinators; in response to the updated current allowed number of computing resources being fewer than the current allowed number of computing resources, transmitting an instruction to release an assigned computing resource to a first query coordinator of the plurality of query coordinators; receiving a notification from the first query coordinator regarding the release of the assigned computing resource, the notification being read from a metadata database; and allocating the released computing resource to a second query coordinator of the plurality of query coordinators.