smiklosovic commented on code in PR #4394:
URL: https://github.com/apache/cassandra/pull/4394#discussion_r2377826895


##########
src/java/org/apache/cassandra/gms/Gossiper.java:
##########
@@ -2070,6 +2071,74 @@ public void setLooseEmptyEnabled(boolean enabled)
         EndpointState.LOOSE_DEF_OF_EMPTY_ENABLED = enabled;
     }
 
+    @Override
+    public Map<String, Map<String, Object>> echoAllNodesWithTiming()

Review Comment:
   Thank you for your draft! I am aware that this is a draft and not a proper 
PR yet but I think it is OK to comment on this already.
   
   My conceptual issue with this is that, imagine you have a cluster of 200 
nodes and you execute this JMX method. If you have e.g. a cluster of 5 nodes, 
even 10, it does not look like a big issue. But if you have 100+, then it is.
   
   You have specified that the timeout is 5 seconds, right? So 200x5 = 1000s ~ 
16 min. So _at worst_, we would need to wait 16 minutes until this method 
returns? What happens if you "ctrl+c" nodetool ping? What happens with the 
echoes being scheduled for the execution?
   
   To speed up the pinging, you might either ping multiple nodes at once (e.g. 
bulk pinging, 10 nodes simultaneously so it happens in parallel), We do not 
want to ping "one node at a time" because it is too slow and  we do not want to 
ping "everybody at once" as it would flood the cluster with echoes. 
   
   Simultaneous pinging for predefined number of nodes (might be configurable 
by nodetool parameter) is a compromise between "waiting too long" and not 
flooding cluster with echoes.
   
   It is still questionable what would happen if we kill pining nodetool 
command before it returns. We might schedule a "pinging task" and return 
immediately and the result would be stored. Then we might query the result 
independently. That way we might also see if pining is still in progress or 
finished etc. 
   
   Also, it would be nice  to have a way to specify DC I want to ping and also 
rack in specific DC I want to ping. You can add that as flags to nodetool 
command. 



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to