Release 10.1B: OpenEdge Replication
User Guide


Replication and after-image extents

As database changes are performed, the actions required to make those changes are recorded as transaction-log records. The OpenEdge Replication server reads after-image blocks then sends them using TCP/IP to the OpenEdge Replication agent. The OpenEdge Replication agent then applies the transaction-log records contained in the after-image block to the target database.

When a database is enabled for Replication and database activity continues without OpenEdge Replication being active, the after-image extents provide a persistent store for all of the source database activity. Once Replication is restarted, all non-replicated database activity is replicated using the data in the after-image extents. Given this, it is essential that all after-image data remain accessible so that OpenEdge Replication can properly process it. Once the after-image data is replicated, the space it occupies can be reused by the RDBMS. Reusing after-image space is accomplished by emptying FULL-UNLOCKED after-image extents using the following command:

rfutil db-name -C aimage empty 

The source and target databases are interdependent in two ways. First, the target database requires after-image blocks and transaction-log records generated by the source database in order to remain synchronized with the source database. All source database update operations generate transaction-log records (notes) that are written into after-image extents. The second and subtler dependency is the fact that the state of the source database after-image extents depends on normal replication activity between the source and target databases. As long as normal replication occurs between the source and its target databases, filled source after-image extents can be archived and emptied. However, if normal replication is not occurring, source database after-image extents continue to fill but they will remain in a LOCKED state until they are replicated in their entirety. The fact that source database activity can occur without replication actively being performed is reliant upon the total capacity of source after-image extents being greater than that of non-replicated databases.

In addition to the increased capacity of source after-image extents, there is another factor involved when sizing after-image extents for a source database. When a database is enabled as a source database, the RDBMS generates additional transaction-log records that are written into the recovery log (BI) and the after-image log. The overhead generated by these additional transaction-log records must be considered when developing successful after-image sizing and management schemes when using OpenEdge Replication. The replication-specific transaction-log records group logical-record operations and consist of a begin operation and an end operation.

The OpenEdge RDBMS protects low-level record integrity using a special type of operation called a logical operation. A logical operation prevents records from being accessed until all updates for that record are complete.

A typical logical operation may include the following database actions:

While a logical operation is being performed, access to the record being added, updated, or deleted is blocked until the logical operation is complete.


Copyright © 2006 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095