| CPC G06F 16/90335 (2019.01) | 20 Claims |

|
18. A method for execution by at least one processor of a node of a database system, comprising:
determining a query for execution that includes a shuffle operator;
executing the shuffle operator in conjunction with executing the query collectively with a plurality of other nodes of the database system based on:
during a first temporal period:
reserving a first amount of memory for data to be received from the plurality of other nodes for processing in conjunction with executing the shuffle operator;
allocating, to each of the plurality of other nodes, a corresponding number of fixed-memory units based on the first amount of memory;
updating state data to indicate the corresponding number of fixed-memory units allocated to the each of the plurality of other nodes;
receiving first data from the plurality of other nodes in accordance with the corresponding number of fixed-memory units allocated to the each of the plurality of other nodes based on updating the state data;
processing the first data in accordance with execution of the shuffle operator;
during a second temporal period after the first temporal period:
updating the first amount of memory to a second amount of memory reserved for the data to be received from the plurality of other nodes for processing in conjunction with executing the shuffle operator based on comparing an available amount of memory with a configured memory threshold;
re-allocating, to the each of the plurality of other nodes, an updated corresponding number of fixed-memory units based on changing from the first amount of memory to the second amount of memory;
further updating the state data to indicate the updated corresponding number of fixed-memory units allocated to the each of the plurality of other nodes;
receiving second data from the plurality of other nodes in accordance with the updated corresponding number of fixed-memory units allocated to the each of the plurality of other nodes based on updating the state data; and
processing the second data in accordance with further execution of the shuffle operator.
|