From aba6855282759feed747fb80cd947f86d5039335 Mon Sep 17 00:00:00 2001 From: antirez Date: Fri, 20 Jul 2018 09:36:44 +0200 Subject: [PATCH] Clarify that clientsCronTrackExpansiveClients() indexes may jump ahead. --- src/server.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/server.c b/src/server.c index 8d49b5bf0..1cb7a9e8e 100644 --- a/src/server.c +++ b/src/server.c @@ -909,7 +909,15 @@ int clientsCronTrackExpansiveClients(client *c) { /* Always zero the next sample, so that when we switch to that second, we'll * only register samples that are greater in that second without considering - * the history of such slot. */ + * the history of such slot. + * + * Note: our index may jump to any random position if serverCron() is not + * called for some reason with the normal frequency, for instance because + * some slow command is called taking multiple seconds to execute. In that + * case our array may end containing data which is potentially older + * than CLIENTS_PEAK_MEM_USAGE_SLOTS seconds: however this is not a problem + * since here we want just to track if "recently" there were very expansive + * clients from the POV of memory usage. */ ClientsPeakMemInput[zeroidx] = 0; ClientsPeakMemOutput[zeroidx] = 0;