A C Replicator (CREP) architecture allows the target database to be a source database for any number of other target databases. This enables you to set up different replication topologies such as bidirectional replication, a multi-layered hierarchical topology (similarly to solidDB Advanced Replication), and a flexible many-to-many topology.
Each time a new database server joins a replication topology, it must synchronize its data from its specified source database. This is done in the following two steps:
▪ An initial load is done from a snapshot of the source database.
▪ Catchup executes the transactions that were performed in the source database while the initial load was taking place.
Note The data comes from the specified source database, which is not necessarily the ultimate source in a multi-layered topology.
For bidirectional replication, or any topologies with cycles, processing loops in replication must be handled properly. CREP does this by marking the replicated transactions with a unique database id (UUID). The transactions that are replicated by a particular CREP server are not replicated again.
Note The UUID is a unique property that is assigned to a solidDB database instance when the database is created. solidDB HotStandby primary and secondary databases are logically the same database instance and share the UUID. Hence, either of a pair of HotStandby (HSB) database instances can pick up the replication from where the other one left it. The UUID is also retained in backups.