[ 
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)

Reply via email to