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

Reply via email to