dsmiley commented on a change in pull request #1446:
URL: https://github.com/apache/lucene-solr/pull/1446#discussion_r416947064
##########
File path: solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
##########
@@ -843,6 +847,31 @@ public void downloadFromZK(String zkPath, Path dir) throws
IOException {
ZkMaintenanceUtils.downloadFromZK(this, zkPath, dir);
}
+ /**
+ * Ensures we can subsequently read the most up-to-date state of the
provided {@code path} and all data below
+ * it, after this method completes.
+ * This should not be called a lot; there may be some delay. Consider
alternative approaches It's often better to try to devise a way to
+ * "watch" for state changed instead of calling this.
+ */
+ public void sync(String path) {
+ // zookeeper.sync is asynchronous; we need to wait till it's done
+ CompletableFuture<Integer> future = new CompletableFuture<>();
+ keeper.sync(path, (rc, path1, ctx) -> future.complete(rc), null);
+ try {
+ Integer status = future.get(zkClientTimeout, TimeUnit.MILLISECONDS);
Review comment:
Why synchronous method do you refer to? If there was one that
accomplishes this task here, I'd call it! keeper.sync() is an asynchronous
method.
##########
File path: solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
##########
@@ -843,6 +847,31 @@ public void downloadFromZK(String zkPath, Path dir) throws
IOException {
ZkMaintenanceUtils.downloadFromZK(this, zkPath, dir);
}
+ /**
+ * Ensures we can subsequently read the most up-to-date state of the
provided {@code path} and all data below
+ * it, after this method completes.
+ * This should not be called a lot; there may be some delay. Consider
alternative approaches It's often better to try to devise a way to
+ * "watch" for state changed instead of calling this.
+ */
+ public void sync(String path) {
+ // zookeeper.sync is asynchronous; we need to wait till it's done
+ CompletableFuture<Integer> future = new CompletableFuture<>();
+ keeper.sync(path, (rc, path1, ctx) -> future.complete(rc), null);
+ try {
+ Integer status = future.get(zkClientTimeout, TimeUnit.MILLISECONDS);
Review comment:
What synchronous method do you refer to? If there was one that
accomplishes this task here, I'd call it! keeper.sync() is an asynchronous
method.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]