Welcome to All Things Data Integration: Announcements, Insights, Best Practices, Tips & Tricks, and Trend Related...

GoldenGate 12c - What is Coordinated Delivery?

In Oracle GoldenGate 12c, the parallel apply is improved with two features: Integrated Delivery and Coordinated Delivery. Different from the Integrated Delivery, Coordinated Delivery is not limited to Oracle Database.This blog discusses the new Coordinated Delivery feature by answering two questions:

  • Why do I need Coordinated Delivery?
  • What is Coordinated Delivery?
  • Why do I need Coordinated Delivery?

    Prior to Oracle GoldenGate 12.1.2, if you hit the performance bottleneck on the target side, one of the best practices is to fan out the work to several Delivery process. There are two typical approaches. One is to splitting the replication based on tables. The other one is to split large tables based on a value range of a column, normally the primary key or unique key columns. The following is an example of splitting tables into multiple Delivery processes. "Rep." is abbreviation for Replicat, which is the executable name for the Delivery process.

    Example 1: Splitting Multiple Tables without Coordinated Delivery

    MAP sales.acct1, TARGET sales.acct1;
    MAP sales.acct2, TARGET sales.acct2;
    MAP sales.acct3, TARGET sales.acct3;

    You have to include dependent tables (such as tables with foreign key references) in one Replicat group.

    The following is the example of splitting large tables into multiple Delivery processes using RANGE:

    Example 2: Splitting Large Tables without Coordinated Delivery REP1.PRM
    MAP sales.acct, TARGET sales.acct,
    FILTER (@RANGE (1, 3, ID));
    MAP sales.acct, TARGET sales.acct,
    FILTER (@RANGE (2, 3, ID));
    MAP sales.acct, TARGET sales.acct,
    FILTER (@RANGE (3, 3, ID));

    Because there are no coordination between the Delivery processes, certain operations such as DDL operations, SQL EXEC may cause issues. Let me give one example:

    Assume Replicat 1 applies insertions for record 1 and 3, and Replicat 2 applies the insertions with record 2 and 4. If an DDL operation happen, as shown in the following figure:


    Without proper coordination, if the DDL operation is executed before completing the insertion of row 4. The insertion pf row 4 may have end up with an error. In  Coordinated Delivery, these operations are called the barrier operations:

  • DDL
  • Primary key update when using RANGE partition
  • Event Actions
  • What is Coordinated Delivery?

    Coordinated Delivery  is a new replication type in Oracle GoldenGate 12c that supporting all databases, such as MySQL, SQL Server and Sybase, supported by Oracle GoldenGate.

    With Coordinated Delivery, you still need to specify the the split in the replication but in a much simplified way. The multiple table split is shown as follows:

    Example 3: Splitting Multiple Tables with Coordinated Delivery

    MAP sales.acct1, TARGET sales.acct1, THREAD(1);
    MAP sales.acct2, TARGET sales.acct2, THREAD(2);
    MAP sales.acct,3 TARGET sales.acct3, THREAD(3);

    The large table split is now as follows:

    Example 4: Splitting Large Table with Coordinated Delivery

    MAP sales.acct, TARGET sales.acct, THREADRANGE(1-3, ID));

    The key benefits of coordinated replication are:

  • A single parameter file
  • Automatic control of the replication order and to ensure  the correctness of transaction splitting process. 
  • Enhancements to facilitate error recovery.
  • One key concept of Coordinated Delivery is full barrier coordination and synchronization. Full barrier coordinate means serialization operation for barrier operations. This means the barrier operation has to wait to be executed until all the prior replication operations are completed and all threads must wait until the barrier thread completes to restart. With Coordinated Delivery, the Delivery processes should not be too far away from synchronization when abended.

    Hope this explains the feature. In the next blog, I will work through an example running Coordinated Delivery with MySQL database.

    Join the discussion

    Comments ( 3 )
    • guest Friday, April 25, 2014

      Hi, There is an Oracle Golden Gate 12c for Teradata target?

    • Jinyu Wang Friday, April 25, 2014

      Yes, Coordinated Delivery is supported when Teradata is the target.

    • Hieu Hoang Thursday, May 8, 2014

      Perfect explanation. Thanks a lot.

    Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha

    Integrated Cloud Applications & Platform Services