Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-9000

Unify LogMiner transaction filtering semantics

XMLWordPrintable

      The Oracle LogMiner unbuffered implementation processes transactions without interweaving them, which means the implementation can use a single boolean flag to track whether a transaction is skipped. This flag is set at the START event and reset when the COMMIT event is observed.

      However, the buffered implementation receives transactions interwoven, which means that a single boolean flag won't be sufficient and that we'll need to track skipped transactions by transaction ID in a HashSet or equivalent container that provides fast lookup. It may even be helpful to wrap this with a String equality check for situations where we get multiple events back-to-back for the same transaction.

      This would allow us to avoid buffering transactions where the connector does not enable database-level filtering. Still, we want to avoid unnecessarily using the heap to store a transaction that will ultimately be discarded at commit time.

              ccranfor@redhat.com Chris Cranford
              ccranfor@redhat.com Chris Cranford
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: