yifan-c commented on code in PR #211:
URL: https://github.com/apache/cassandra-sidecar/pull/211#discussion_r2004462373


##########
server/src/main/java/org/apache/cassandra/sidecar/coordination/ClusterLeaseClaimTask.java:
##########
@@ -144,7 +147,13 @@ public ScheduleDecision scheduleDecision()
     @Override
     public DurationSpec initialDelay()
     {
-        return periodicTaskConfiguration.initialDelay();
+        // Return a randomized delay to introduce jitter among all the 
instances participating
+        // in the lease claim process
+        MillisecondBoundConfiguration initialDelay = 
periodicTaskConfiguration.initialDelay();
+        long millis = initialDelay.toMillis();
+        return millis <= 0
+               ? initialDelay
+               : new 
MillisecondBoundConfiguration(ThreadLocalRandom.current().nextLong(millis), 
TimeUnit.MILLISECONDS);

Review Comment:
   Thinking it more. I think the current `RAND(initialDelay)` changes the 
semantics of the initial delay. It is almost guaranteed that the actual value 
is not the `initialDelay`. It could cause surprise. 
   Would it make sense to split it into 2 parts, `minInitialDelay` and 
`maxInitialDelay`? The actual value is randomly picked that in the value range. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org
For additional commands, e-mail: pr-h...@cassandra.apache.org

Reply via email to