-
Task
-
Resolution: Obsolete
-
Major
-
None
-
False
-
-
False
-
-
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.