eolivelli commented on a change in pull request #9900:
URL: https://github.com/apache/pulsar/pull/9900#discussion_r594350752



##########
File path: 
pulsar-broker-common/src/main/java/org/apache/pulsar/broker/resources/BaseResources.java
##########
@@ -97,6 +98,28 @@ public void set(String path, Function<T, T> modifyFunction) 
throws MetadataStore
         }
     }
 
+    public void set(String path, OrderedExecutor executor, Function<T, T> 
modifyFunction) throws MetadataStoreException {
+        CompletableFuture<Void> callback = new CompletableFuture<>();
+        // Use orderedExecutor to ensure that
+        // concurrent updates in each path are handled by a single thread
+        executor.executeOrdered(path, () ->

Review comment:
       I am not sure we need to "lock"
   now that we know that what is in the case is immutable we are safe
   
   if you need to access the final value of the object we have to return it to 
the caller and then use the final version.
   
   
   additionally,  if you use `executeOrdered` you don't know which of the two 
concurrent operations that are trying to modify the value, so it does not add 
value.
   




----------------------------------------------------------------
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]


Reply via email to