-
Bug
-
Resolution: Done
-
Major
-
1.4.1.Final
-
None
-
False
-
False
-
Undefined
-
-
When ingesting data from a SQLServer table if the throughput of that table is very low (i.e. the gap between inserts/updates is large) causes an ever growing increase of usage of TempDB which in time becomes significant enough.
We've experienced this in databases where we store configuration like data that changes at most once a month.
Digging into Debezium's code we've found that the issue is caused by the JDBC Connection is not committed neither roll-backed when there are no new changes and that if the situation last for long it ends up affecting TempDB as each result returned by sys.fn_cdc_get_max_lsn() gets stuck there.
As a side note, when reading from a Read Only DB (applicationIntent: ReadOnly) the issue cannot be reproduced and it is because of the Connection being roll-backed before every read from LSN function.
This last statement makes me aks: What is the reason behind disabling JDBC Connection auto-commit and if it is possible to avoid such behaviour?