[
https://issues.apache.org/jira/browse/KUDU-3407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17788142#comment-17788142
]
ASF subversion and git services commented on KUDU-3407:
-------------------------------------------------------
Commit 66a79dddf2faf31dbb49cd8e08c0e322c4bb57ce in kudu's branch
refs/heads/master from 宋家成
[ https://gitbox.apache.org/repos/asf?p=kudu.git;h=66a79dddf ]
KUDU-3407 Avoid unchecked scheduling of flush operations.
In some clusters, the memory usages of tservers might be 60% ~ 80%
for a long time. During this time the maintenance manager will not
run any operation other than wal gc and MRS/DRS flushes, which will
make the performance of tservers worse and worse and eventually break
due to OOM.
This patch add an argument to give a chance to do other operations
while server is under memory pressure.
This mechanism works when the memory usage is between
memory_pressure_percentage and memory_limit_soft_percentage.
Higher the memory usage is, higher the probability to flush
MRS/DMS.
e.g.
memory_pressure_percentage = 60%
memory_limit_soft_percentage = 80%
The probability of not flushing MRS/DMS is the value of
run_non_memory_ops_prob. As the memory increases, it gradually
decreases to 0, when thememory usage is 80%.
Change-Id: Idc2fd3a850cf99d54ef2980211b712468440ed80
Reviewed-on: http://gerrit.cloudera.org:8080/20166
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <[email protected]>
> MM: Give a chance to do other OP while server is under memory pressure
> ----------------------------------------------------------------------
>
> Key: KUDU-3407
> URL: https://issues.apache.org/jira/browse/KUDU-3407
> Project: Kudu
> Issue Type: Improvement
> Components: compaction
> Affects Versions: 1.14.0
> Reporter: Song Jiacheng
> Priority: Major
>
> For now, if the server is under pressure(60% memory as default),
> MaintenanceManager always find a memory-flush operation to run. So if all the
> tservers are under pressure for a long time, there will be many pending
> operations, which will lead to many problem, like redos not compact, undo not
> delete, etc..
> It might be better if we add a parameter to give a chance to do other ops,
> the formula is like this:
> Do other works? = (1 - (memory_now - pressure_threshold) / (soft_limit -
> pressure_threshold)) * kChance
> kChange should be configurable.
> This will give a probability to run other maintenance operations.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)