The goal of the task is to extend snapshot locking modes list, so that wider range of scenarios is covered. Debezium user may decide about the tradeoff between consistency and the impact on other transactions.
- none - Minimised locking at the cost of snapshot consistency. Neither reads nor writes of other transactions are blocked. Limitation: DDLs mustn't be executed at the time.
- snapshot - the entire snapshot process runs in SNAPSHOT isolation level. Other transactions are not being blocked in any way. Limitation: DDLs mustn't be executed at the time.
- consistent (current none) - Guards against data changes.
- exclusive (current exclusive) - Guards against DDL and data changes.
Snapshot is run in read committed isolation level. In result neither table locks nor row-level locks are taken.
See details here:
Snapshot is run in repeatable read isolation level. No table locks are taken, even during schema snapshot. Row-level shared locks are taken during data snapshot, though.
Snapshot is run in repeatable read isolation level. Table exclusive locks are taken only during schema snapshot. Only row-level shared locks are taken during data snapshot.