How TCapture RepServer works #9
tcapturesupport
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
A Java engine continuously monitors the database transaction log for newly committed transactions that have been marked for replication. When it finds one, the replication sends it to the RepServer process that runs somewhere outside primary db.
IIt should be noted that that replicate database does have to be Postgresql.
On the primary side, the entity to be replicated is published, and this can be subscribed to by one or more replicate databases.
Such an entity can be an individual database table, or an entire database. The latter is often used for ‘warm standby’ configurations where all changes in a database are replicated to a standby.
This means that when the database transaction in the primary database commits, it will be picked up and applied to the replicate database shortly afterwards, decoupled from the primary transaction.
Consequently, when using asynchronous replication, there is always some latency: some time will pass before a primary transaction gets been applied to the replicate side.
The challenge is to keep this latency as short as possible.
In a well-designed and well-tuned replication system, latencies of no more than single-digit seconds are typical, even when the replicate database is on a WAN.
An unwillingness to accept latency is sometimes used as an argument in favor of a synchronous replication approach. Here, the idea is that the primary transaction does not commit until the transaction has committed in the replicate database as well. The big downside is that the replicate site must always be available: if it is not, transactions cannot commit at the primary site. In practice, this makes the overall system more vulnerable, since there are now two points of failure.
TCapture RepServer is designed under the assumption that it is normal for network connections to temporarily fail, and then come back into service.
Once a connection fails, RepServer will automatically keep retrying until the connection is back, and then proceed replication where it left off.
Beta Was this translation helpful? Give feedback.
All reactions