Hi Don,
I'm glad the online_mining strategy is working. The reason you're
likely seeing the smaller chunks is more a product of timing than
anything else. With the default strategy, you'll often see a
longer start-up time while the data dictionary has to be written
to the redo logs and analyzed, so you'll see a larger number of
rows but that should eventually reach the same levels as the
online_mining strategy as long as you don't have any log swaps.
Either way if you don't need to track DDL, then the online_mining
strategy is definitely better performance wise on Oracle.
Both methods are equally reliable and the Xstream method is based
on LogMiner at its foundation.
The biggest difference is that Xstream does quite a bit out of the
box such as combining events into transactional batches, merges
multi-operations into single logical events (i.e. blob/clobs), so
all the connector code is respond to the receipt of a LCR change
event that is handed to the callback handler. With the LogMiner
implementation, the ownership of the entire process is on
Debezium. This means when we mine changes, we have to build the
transactional batches, merge multi-operations, and manage the logs
that are to be mined. It seems like a lot but it does have the
advantage that we're in full control of the pipeline, allowing us
to adjust that pipeline as needed.
HTH,
Chris