We are posting dremio jobs through Dremio’s SQL API. We are trigerring subsequent SQL jobs that update an Iceberg table, however some of the jobs are failing with the below error:
Concurrent DML operation has updated the table, please retry. (Attached screenshot for your reference)
Please let us know if we can issue multiple DML commands on an Iceberg table concurrently.
Yes, we tried introducing delay between the SQL statements, but still some updates coincides with the commit of other update statements and is failing some of the updates. Please let us know if there is a way around issuing multiple update statements on the same iceberg table simultaneously.
@Sumi et all - did you find a way to do this? We also have a similar issue in that we want to support multiple processes deleting data in the same iceberg table. We know there will be no clashes between these delete statements but they need to be executed concurrently ideally.
@Ken I see you are running multiple concurrent inserts to the same table. Is that not correct?
However, Apache Iceberg’s Serializable Isolation level with non-locking table semantics can result in scenarios in which write collisions occur. In these circumstances, the SQL command that finishes second fails with an error. Such failures occur only for a subset of combinations of two SQL commands running concurrently on a single Iceberg table