[ 
https://issues.apache.org/jira/browse/IGNITE-17062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17563762#comment-17563762
 ] 

Vladislav Pyatkov commented on IGNITE-17062:
--------------------------------------------

LGTM

> Add ability to process local events synchronously
> -------------------------------------------------
>
>                 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)

Reply via email to