Gian Merlino 97207cdcc7
Automatic sizing for GroupBy dictionaries. (#12763)
* Automatic sizing for GroupBy dictionary sizes.

Merging and selector dictionary sizes currently both default to 100MB.
This is not optimal, because it can lead to OOM on small servers and
insufficient resource utilization on larger servers. It also invites
end users to try to tune it when queries run out of dictionary space,
which can make things worse if the end user sets it to too high.

So, this patch:

- Adds automatic tuning for selector and merge dictionaries. Selectors
  use up to 15% of the heap and merge buffers use up to 30% of the heap
  (aggregate across all queries).

- Updates out-of-memory error messages to emphasize enabling disk
  spilling vs. increasing memory parameters. With the memory parameters
  automatically sized, it is more likely that an end user will get
  benefit from enabling disk spilling.

- Removes the query context parameters that allow lowering of configured
  dictionary sizes. These complicate the calculation, and I don't see a
  reasonable use case for them.

* Adjust tests.

* Review adjustments.

* Additional comment.

* Remove unused import.
2022-07-11 08:20:50 -07:00
..
2022-04-18 17:00:21 +08:00
2022-05-17 16:56:31 -07:00
2022-02-11 14:43:30 -08:00
2022-02-11 14:43:30 -08:00
2022-02-11 14:43:30 -08:00
2022-02-11 14:43:30 -08:00
2022-05-17 16:56:31 -07:00
2022-05-17 16:56:31 -07:00
2022-02-11 14:43:30 -08:00
2022-02-11 14:43:30 -08:00
2022-02-11 14:43:30 -08:00
2022-02-11 14:43:30 -08:00
2022-05-17 16:56:31 -07:00
2022-05-17 16:56:31 -07:00
2022-06-16 13:25:17 -07:00
2022-05-17 16:56:31 -07:00
2022-05-17 16:56:31 -07:00
2022-05-17 16:56:31 -07:00
2022-05-17 16:56:31 -07:00
2022-02-11 14:43:30 -08:00
2022-05-17 16:56:31 -07:00
2022-02-11 14:43:30 -08:00
2022-02-11 14:43:30 -08:00
2022-04-18 17:00:21 +08:00
2022-02-11 14:43:30 -08:00