OGG Performance
OGG Performance
OGG Performance
Part 1
What is a Lag?
Latency or lag is the period of time that has passed between when a change (DML or DDL) occurred in the
source database and the current point in time.
Extract latency is
the time that has elapsed since the change
occurred to the source table and the time it was extracted and written to the trail file
Replicat latency is
the time that has elapsed from the source table change to the time it was applied to the target database
You can see the increase in the Time Since Checkpoint, when extract/pump/replict was stopped or when extract or replicat is processing a
long running transaction or if its blocked by other sessions
→ Lag at Checkpoint
For Extract, lag is the difference, in seconds, between the time that a record was processed by Extract (based on the system clock) and the
timestamp of that record in the data source
.
For Replicat, lag is the difference, in seconds, between the time that the last record was processed by Replicat (based on the system clock)
and the timestamp of the record in the trail.
But why is there a Lag? Lets investigate...
For Replicat,
Many a times from w stack trace of core dump file, we get segmentation fault
gghome> ls -lart | grep -i core
Eg:
gdb ./ggsci core.134021
→ BATCHSQL
When Replicat is in BATCHSQL mode, smaller row changes will show a higher gain in performance than larger row changes.
Usage Restrictions:
Many a times from w stack trace of core dump file, we get segmentation fault
gghome> ls -lart | grep -i core
Eg:
gdb ./ggsci core.134021
→ BATCHSQL
When Replicat is in BATCHSQL mode, smaller row changes will show a higher gain in performance than larger row changes.
Usage Restrictions:
When enabled, BATCHSQL sorts the DMLs to attempt the transaction. This can sometimes fail as the DMLs are sorted and replicat will
abort the transaction and reattempt this transaction with BATCHSQL disabled. Then it will enable this again for the next
transaction.
BATCHSQL statistics:
A smaller value for GROUPTRANSOPS will result in more commits, greater checkpointing and more frequent updates
to reporting.--> more overhead and less throughput. Will reduce speed of replicate and lag will increase
→ MAXTRANSOPS:
Its used to split large source transactions into smaller ones on the target system.
This parameter can be used when the target database is not configured to accommodate large transactions. For
example, if the Oracle rollback segments are not large enough on the target to reproduce a source transaction
that performs one million deletes, you could specify MAXTRANSOPS 10000, which forces Replicat to issue a commit
after each group of 10,000 deletes.
Intergrated Replicat:
Because transactions are applied serially in direct apply mode, heavy use of such operations may reduce
the performance of the integrated Replicat mode.