[ 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 <ale...@apache.org> > 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)