1.1.1. Transaction History Log (THL)
Tungsten Replicator operates by reading information from the source
database (MySQL, Oracle) and transferring that information to the
Tungsten History Log (THL).
Each transaction within the THL includes the SQL statement or the
row-based data written to the database. The information also includes
where possible transaction specific option and metadata, such as character
set data, SQL modes and other information that may affect how the
information is written when the data is applied. The combination of the
metadata and the global transaction ID also enable more complex data
replication scenarios to be supported, such as multi-master, without fear
of duplicating statement or row data application because the source and
global transaction ID can be compared.
In addition to all this information, the THL also includes a timestamp and
a record of when the information was written into the database before the
change was extracted. Using a combination of the global transaction ID and
this timing information provides information on the latency and how up to
date an a dataserver is compared to the original datasource.
Depending on the underlying storage of the data, the information can be
reformatted and applied to different data servers. When dealing with
row-based data, this can be applied to a different type of data server, or
completely reformatted and applied to non-table based services such as
THL information is stored for each replicator service, and can also be
exchanged over the network between different replicator instances. This
enables transaction data to be exchanged between different hosts within
the same network or across wide-area-networks.