Memory Control Parameters and Replication Server Processing

Replication modes and actions depend on the values you set for memory control parameters.

Replication Server Processing

  1. Replication Server reads a transaction from the outbound queue and estimates the net-change database size.
  2. Replication Server flags the transaction as compilable if the transaction only contains insert, update , and delete commands.
  3. Replication Server flags a transaction as noncompilable when:
    • The number of commands in the transaction exceeds dsi_compile_max_cmds,
    • The estimated net-change database size for the transaction exceeds dsi_cdb_max_size, or
    • The transaction size is larger than the DSI SQT cache.

    Replication Server processes noncompilable transactions in continuous log order mode.

  4. After Replication Server checks if a transaction is compilable, it aggregates successive compilable transactions into a compilable group. However, Replication Server stops increasing the size of a compilable group based on two thresholds:
    • If Replication Server calculates that the number of commands in the group of compilable transaction it is processing added to the number of commands in the new transaction exceeds the dsi_compile_max_cmds threshold value, Replication Server closes and dispatches the group, and adds the new transaction to a new empty group. Otherwise, Replication Server adds the new compilable transaction to the group.
    • If the estimated size of the next net-change database resulting from aggregation of the new transaction to the new group exceeds dsi_cdb_max_size, Replication Server closes and dispatches the group, and adds the new transaction to a new empty group. Otherwise, Replication Server adds the new compilable transaction to the group.
  5. If there are no more compilable transactions in the outbound queue, Replication Server immediately closes and dispatches the group it is processing. Replication Server does not wait for new transactions to enter the outbound queue.

Setting dsi_cdb_max_size to Different Values

Examples that show Replication Server applying a transaction with 100,000 updates on two tables. Table1 has 100 columns and requires approximately 4GB of memory, and Table2 has 10 columns requiring approximately one-tenth the memory—400MB.

dsi_cdb_max_size Value (MB) Table Name Impact on Replication Processing
1024 (default) Table1

Replication Server applies the transaction in continuous log-order replication mode.

1024 (default) Table2

Prerequisite: Set memory_limit in Replication Server to a value large enough to allow the construction of 400MB net-change databases.

Replication Server applies the transaction using HVAR.

4096 Table1

Replication Server applies the transaction using continuous log order replication mode.

4096 Table2

Prerequisite: Set memory_limit in Replication Server to a value large enough to allow the construction of 400MB net-change databases.

Replication Server applies the transaction using HVAR.