DmlExecutor accepts both stream data and batch data for data manipulation on a specific
table. The two streams will be merged into one and then sent to downstream.
If a transaction’s data is less than MAX_CHUNK_FOR_ATOMICITY * CHUNK_SIZE, we can provide
atomicity. Otherwise, it is possible that part of transaction’s data is sent to the downstream
without barrier boundaries. There are some cases that could cause non-atomicity for large
transaction. 1. The system crashes.
2. Actor scale-in or migration.
3. Dml’s batch query error occurs at the middle of its execution. (e.g. Remove UDF function
server become unavailable).