Remove query.low-memory-killer.delay#22936
Conversation
354e19f to
7033d72
Compare
|
The delay is there so that memory can be freed on worker nodes. Is there another way this is achieved? |
Memory won't release on it's own on the workers. In the code after changes there is: so we still wait until the previous target query goes away. The previous code was: so it would loop over queries (when |
query.low-memory-killer.delay is not needed: * It does not prevent cascades of query kills. That is achieved by isLastKillTargetGone check in ClusterMemoryManager * OOM blocked worker cannot be unblocked by other means other than killing the query. Revocable memory (and spill to disk) also won't cause node to be considered out-of-memory. Hence low-memory-killer does not interfere with spill-to-disk. Having query.low-memory-killer.delay causes reduced concurrency on a cluster with higher concurrency and under low-memory situations.
7033d72 to
7ee7a1a
Compare
losipiuk
left a comment
There was a problem hiding this comment.
Seems fine to me. Looks like the delay may only be used so we allow node-local memory limits to trigger before cluster level memory limits trigger. But it does not seem important.
|
query.low-memory-killer.delay is not needed:
It does not prevent cascades of query kills. That is achieved by isLastKillTargetGone check in ClusterMemoryManager
OOM blocked worker cannot be unblocked by other means other than killing the query. Revocable memory (and spill to disk) also won't cause node to be considered out-of-memory. Hence low-memory-killer does not interfere with spill-to-disk.
Having query.low-memory-killer.delay causes reduced concurrency
on a cluster with higher concurrency and under low-memory situations.
Release notes
( ) This is not user-visible or is docs only, and no release notes are required.
( ) Release notes are required. Please propose a release note for me.
(x) Release notes are required, with the following suggested text: