[ 
https://issues.apache.org/jira/browse/IGNITE-27156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

 Kirill Sizov reassigned IGNITE-27156:
--------------------------------------

    Assignee:  Kirill Sizov

> Rework RAFT client to wait for group availability
> -------------------------------------------------
>
>                 Key: IGNITE-27156
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27156
>             Project: Ignite
>          Issue Type: Improvement
>          Components: replication ai3
>            Reporter: Vladislav Pyatkov
>            Assignee:  Kirill Sizov
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> We have a generic timeout for any RAFT operation 
> (RaftConfigurationSchema#retryTimeoutMillis), but for some cases we suppose 
> that the operation has never ended. Also, reties are excessive in the time 
> when the RAFT group is not formed.
> The new RAFT client API should get a timeout from outside, and waiting for 
> availability may be solved using a topology-aware client (IGNITE-27154).
> h3. Definition of done
> A RAFT client that has a method to run a command with a timeout.
> {code}
> <R> CompletableFuture<R> run(Command cmd, long timeoutMillis)
> {code}
> The method has to match the following rules:
> If the service is called without a timeout (timeout = 0), a single attempt 
> will be made to send the command for replication.
> If the service is called with an infinite timeout (timeout = Long.MAX_VALUE), 
> replication attempts will continue indefinitely, or the call will wait until 
> the service becomes ready.
> If the service is called with a bounded timeout, replication attempts will 
> continue only for the specified duration (timeout).
> If the replication command cannot be executed due to the service being 
> unavailable, a ReplicationGroupUnavailableException will be thrown.
> After implementing the client, it is recommended to *immediately integrate it 
> into the CMG/MG manager*.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to