yifan-c commented on code in PR #9: URL: https://github.com/apache/cassandra-analytics/pull/9#discussion_r1244426547
########## cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/CassandraClusterInfo.java: ########## @@ -338,11 +339,23 @@ public String getVersionFromFeature() public String getVersionFromSidecar() { - LOGGER.info("Getting Cassandra versions from all nodes"); - List<NodeSettings> allNodeSettings = Sidecar.allNodeSettingsBlocking(conf, - cassandraContext.getSidecarClient(), - cassandraContext.clusterConfig); - return getLowestVersion(allNodeSettings); + List<NodeSettings> currentAllNodeSettings = allNodeSettings; + if (currentAllNodeSettings != null) + { + return getLowestVersion(currentAllNodeSettings); + } + + synchronized (this) + { + if (allNodeSettings == null) + { + LOGGER.info("Getting Cassandra versions from all nodes"); + allNodeSettings = Sidecar.allNodeSettingsBlocking(conf, + cassandraContext.getSidecarClient(), + cassandraContext.clusterConfig); + } + return getLowestVersion(allNodeSettings); Review Comment: I think this line could be moved out of the critical section. And further more, it can combine with line#345 and making it the classic double checked locking pattern... -- 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: commits-unsubscr...@cassandra.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org