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]