Hi Chris,
Thank you for your detailed analysis. Here are my responses to your questions:
1. Filtering possibilities:
Unfortunately, filtering by specific database users or client sessions is not feasible in our setup. We need to capture all activity from the monitored tables.
2. SQL parsing time and table structure:
The maximum number of columns read by the source connector is 11. All 33 tables.
However, in the original source db tables, some tables have up to 60 columns.
Regarding your question about high SQL parsing time (41 minutes): We do use a date column as part of a primary key that changes frequently. When this happens, we send 3 messages to Kafka (metadata, DELETE of old record, and INSERT of new record). Could this be contributing to the parsing overhead?
3. Batch size concerns:
You asked: "Is 6M really necessary?"
Our observation: When we reduce log.mining.batch.size.max and log.mining.batch.size.default, the metrics LagFromSourceInMilliseconds and MilliSecondsBehindSource gradually increase to 2+ hours. Should we not rely on these metrics?
Current behavior with our settings:
CommitThroughput reaches ~7000 but then drops when lag decreases.
The lag metrics are unstable.
4. Current experiments:
We're testing with increased batch sizes:
"log.mining.batch.size.max": 15000000,
"log.mining.batch.size.default": 5000000
Results after 1 hour:
- LagFromSourceInMilliseconds reduced to ~150000 ms (2.5 minutes)
- CommitThroughput: 2800
- But then both lag metrics started increasing again
- TotalResultSetNextTimeInMilliseconds is at 1,534,467 ms and steadily growing
5. I'll try to find out about switching logs.
вторник, 2 декабря 2025 г. в 21:58:05 UTC+4, Chris Cranford: