Praefect: avoid early request cancellation when queueing replication jobs
When Praefect receives modification RPC it must create replication events and put them into the storage, so they can be fetched and executed for proper storage. Each RPC call has a context.Context
that is usually time-limited.
Now same Context
is used for execution of RPC and for storing of replication events.
Propagation of RPC call can take too long and there won't be enough time to persist replication events. As a result secondary storages won't be properly updated/modified (possible data loss).
/cc @zj-gitlab @jramsay
Edited by Pavlo Strokov