A method for execution by a node of a database system, comprising:
- determining a plurality of queries for execution;
- determining query data for each of the plurality of queries, wherein the query data for the each of the plurality of queries indicates a memory usage estimate, an internal runtime estimate, and an external runtime estimate;
- initiating execution of a subset of the plurality of queries;
- generating query initiation data by determining whether to initiate execution of one query of the plurality of queries at a first temporal period, wherein the first temporal period occurs after initiating execution of the subset of the plurality of queries and occurs before the execution of the subset of the plurality of queries is complete, and wherein determining whether to initiate execution of the one query of the plurality of queries is based on the query data of the one query;
- initiating execution of the one query when the query initiation data indicates a determination to initiate execution of the one query in the first temporal period;
- and
- generating updated query initiation data by determining whether to initiate execution of the one query of the plurality of queries at a second temporal period that is after the first temporal period when the query initiation data indicates a determination to forego initiation of execution the one query in the first temporal period;
- wherein generating the query initiation data includes:
- determining current memory availability data based on the subset of the plurality of queries;
- comparing the memory usage estimate of the one query to the current memory availability data;
- and
- determining to initiate execution of the one query in the first temporal period when the memory usage estimate of the one query compares favorably to the current memory availability data;
- when the memory usage estimate of the one query compares unfavorably to the current memory availability data:
- calculating a memory availability wait time estimate based on the query data for each of the subset of the plurality of queries;
- determining an internal execution completion time estimate for the one query based on the memory availability wait time estimate and the internal runtime estimate for the one query;
- comparing the internal execution completion time estimate to the external runtime estimate;
- determining to initiate execution of the one query in the first temporal period when the internal execution completion time estimate compares unfavorably to the external runtime estimate;
- and
- determining to forego initiation of execution of the one query in the first temporal period when the internal execution completion time estimate compares favorably to the external runtime estimate.