25.02.2021 15:07, Dimitry Sibiryakov wrote:
25.02.2021 13:04, Dmitry Yemanov wrote:
25.02.2021 13:39, Dimitry Sibiryakov wrote:
Is there option to set "database = inet://remote:database" in
replication.conf for a replica?
Nope. Something like that is considered for future versions.
But network protocol has support for IReplicator so what is actually
problem?
If you mean connecting primary->replica remotely and using IReplicator,
then it works out of the box and called synchronous replication ;-) e.g.
"sync_replica = inet://remote:database".
If you want the same but write the journals on the replica side instead
of applying them immediately, and afterwards use the regular
asynchronous queue, then it's a semi-synchronous replication. It can be
supported with some extra coding if it will be demanded.
But AFAIU you want to connect replica->primary and pull the journals
remotely. IReplicator cannot be used in such scenario, it's purely
push-based (and transport-irrelevant). To make it pull-aware, replica
must ask for a particular segment (using its sequence number) and return
stream as a reply. The primary should maintain the "oldest segment" mark
from multiple replicas to know where the segment can be removed from
log_archive_directory. Not a piece of cake, so it was deferred.
If you had something different in mind, please explain better.
Dmitry
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel