[ https://issues.apache.org/jira/browse/IGNITE-17062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17563770#comment-17563770 ]
Vladislav Pyatkov commented on IGNITE-17062: -------------------------------------------- Merged dac5eea8a7e068e70759f21dc180b595c9b7038d [~Denis Chudov] Thank you for the contribution > Add ability to process local events asynchronously > -------------------------------------------------- > > Key: IGNITE-17062 > URL: https://issues.apache.org/jira/browse/IGNITE-17062 > Project: Ignite > Issue Type: Task > Reporter: Alexander Lapin > Assignee: Denis Chudov > Priority: Major > Labels: ignite-3 > > Local events (org.apache.ignite.internal.manager.Event) logic should be > reworked a bit in order to await all subscribers to process corresponding > event before publishing the action. Let's check an example of an expected > behavior: > # TableManager prepares table for creation. > # TableManager notifies all subscribers with Table.CREATE event propagating > to-be-created table. > # TableManager (with the help of > org.apache.ignite.internal.manager.Producer) awaits all subscribers to > acknowledge that Table.CREATE event was successfully processed. E.g. > SqlQueryProcessor prepares calcite schemes and sends ack by completing > event's Future like it's done within ConfigurationRegistry events. > # TableManager on Compound-Like-Future.allOff(events) publishes > corresponding action, e.g. makes table visible to everyone. > Proposed solution is very similar to what we already have in > ConfigurationRegistry > {code:java} > public interface ConfigurationListener<VIEWT> { > /** > * Called on property value update. > * > * @param ctx Notification context. > * @return Future that signifies the end of the listener execution. > */ > CompletableFuture<?> onUpdate(ConfigurationNotificationEvent<VIEWT> ctx); > }{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)