[
https://issues.apache.org/jira/browse/IGNITE-16044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mirza Aliev updated IGNITE-16044:
---------------------------------
Summary: Configuration should provide a revision after a change completed
(was: Configuration should provide a revision after a change complited)
> Configuration should provide a revision after a change completed
> ----------------------------------------------------------------
>
> Key: IGNITE-16044
> URL: https://issues.apache.org/jira/browse/IGNITE-16044
> Project: Ignite
> Issue Type: Improvement
> Reporter: Vladislav Pyatkov
> Priority: Major
> Labels: ignite-3
>
> Today we faced with issue where we cannot distinguish which an operation is
> completed on Metastorage notification.
> Several asynchronous updates over one table are initiated, but which of them
> completed when Metastorage gives an information about update the table is not
> clear. Currently, we compete all active operations when the even one
> notification received. It is obviously wrong.
> For solving the issue, Configuration should return a Metastorage revision
> number where the change is completed:
> {code:title=ConfigurationTree.java}
> /**
> * Changes this configuration node value.
> *
> * @param change CHANGE object.
> * @return Future that is completed when configuration change is finished
> either successfully or not. If the change finished successfully, the future
> will contain a revision that corresponds to the change and will get in
> notification {@link ConfigurationNotificationEvent#storageRevision}.
> */
> CompletableFuture<Long> change(Consumer<CHANGET> change);
> {code}
> {code:title=ConfigurationValue.java}
> /**
> * Update this configuration node value.
> *
> * @param change New value for the configuration. Must not be null.
> * @return Future that signifies end of the update operation. Can also be
> completed with {@link ConfigurationValidationException} and
> * {@link ConfigurationChangeException}. If the change finished
> successfully, the future will contain a revision that corresponds to the
> change and will get in notification {@link
> ConfigurationNotificationEvent#storageRevision}.
> */
> CompletableFuture<Long> update(VIEWT change);
> {code}
> After a change applied, the associated revision will be available, and the
> same revision is available when Metastorage notifies the handler through a
> configuration listener.
> {code:title=ConfigurationNotificationEvent.java}
> /**
> * Returns monotonously increasing counter, linked to the specific storage
> for current configuration values. Gives a unique change
> * identifier inside a specific configuration storage.
> *
> * @return Counter value.
> */
> long storageRevision();
> {code}
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)