When to Use Oracle GoldenGate with Oracle TimesTen

The Oracle TimesTen In-Memory Database (TimesTen) includes functionality that enables it to act as a high performance, in-memory, relational cache for an Oracle Database.

Oracle GoldenGate (GoldenGate) is Oracle’s premier replication and data movement technology. It supports a wide variety of sources and targets, is very flexible and provides rich functionality.

For cases where TimesTen’s built in caching functionality is not suitable, Oracle GoldenGate (GoldenGate) may offer a good alternative for read-only caching. Such use cases include:

  • When it is not possible, or not desirable, to install the necessary schema objects and triggers on the source Oracle database that TimesTen needs to support its native caching.
  • When a continuous real-time refresh of the cached data is required, rather than the time interval based refresh provided by TimesTen’s native caching.
  • When the source is not an Oracle database but is a data source or database that is supported by GoldenGate.
  • When a single TimesTen database must cache data from multiple backend databases.

 

Basic TimesTen + GoldenGate Functionality

The functionality provided by the combination of TimesTen and GoldenGate is similar to that provided by TimesTen’s native READONLY AUTOREFRESH cache groups:

  • GoldenGate captures data changes from one or more tables in the source database (usually an Oracle Database, but not necessarily so)
  • GoldenGate propagates the changed data to the system(s) hosting the target TimesTen database(s).
  • GoldenGate applies the changes to the corresponding tables in the TimesTen database.

As with TimesTen’s native caching, the TimesTen database may also contain regular TimesTen tables as well as tables that are cached copies of data in another database. Indeed, the cached tables that are maintained using GoldenGate are regular TimesTen tables not members of native TimesTen cache groups.

You can learn how to configure GoldenGate for TimesTen to deliver changes to a TimesTen database here, along with a step by step worked example.

 

Advanced TimesTen + GoldenGate Functionality

The combination of TimesTen and Goldengate can deliver some sophisticated caching scenarios and capabilities.

Multiple source databases feeding into a single TimesTen cache database.

Different table owners, names and even definitions between the source and TimesTen, using GoldenGate’s extensive mapping capabilities and filtering of data based on expressions.

The GoldenGate MAP directive has other capabilities too. These include:

  • Computing values for target columns
  • Filtering on numeric values and expressions.
  • Conditional logic and arbitrary processing actions.

For full details on the capabilities of the MAP directive, consult the GoldenGate documentation.

 

Summary

The combination of Oracle TimesTen In-Memory Database and Oracle GoldenGate provides functionality similar to TimesTen’s native READONLY AUTOREFRESH cache groups.

TimesTen + GoldenGate offer flexible READONLY caching capabilities, which may be better suited for some caching scenarios than TimesTen’s native READONLY caching.

Advanced configurations are possible which offer capabilities not available when using TimesTen’s native caching.

The TimesTen database that is acting as a cache can also contain non-cache tables for which TimesTen is the database of record.

 

Resources

TimesTen portal on Oracle.com: https://www.oracle.com/database/technologies/related/timesten.html

TimesTen QuickStart and Samples on GitHub: https://github.com/oracle/oracle-timesten-samples

TimesTen Blogs: https://blogs.oracle.com/timesten

TimesTen Documentation: https://docs.oracle.com/en/database/other-databases/timesten/

GoldenGate documentation: https://docs.oracle.com/en/middleware/goldengate/core/21.3/index.html