You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Kirill Gusakov (Jira)" <ji...@apache.org> on 2024/11/20 20:40:00 UTC

[jira] [Created] (IGNITE-23729) Handle possible errors on the metastore put in disaster recovery mechanism

Kirill Gusakov created IGNITE-23729:
---------------------------------------

             Summary: Handle possible errors on the metastore put in disaster recovery mechanism
                 Key: IGNITE-23729
                 URL: https://issues.apache.org/jira/browse/IGNITE-23729
             Project: Ignite
          Issue Type: Improvement
            Reporter: Kirill Gusakov


We need to add the logging of error, at least, for the following metastore put future:
{code:java}
private CompletableFuture<Void> processNewRequest(DisasterRecoveryRequest request) {
        UUID operationId = request.operationId();

        CompletableFuture<Void> operationFuture = new CompletableFuture<Void>()
                .whenComplete((v, throwable) -> ongoingOperationsById.remove(operationId))
                .orTimeout(TIMEOUT_SECONDS, TimeUnit.SECONDS);

        ongoingOperationsById.put(operationId, operationFuture);

        metaStorageManager.put(RECOVERY_TRIGGER_KEY, VersionedSerialization.toBytes(request, DisasterRecoveryRequestSerializer.INSTANCE));

        return operationFuture;
    }
{code}

At the same time - looks like we shouldn't chain this put on the following operationFuture, because the current disaster recovery logic will complete this future only after the put handled together with appropriate watch event on the same key.




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