The race condition
Three writer processes race to update the same chunked image. Each lap, every team uploads a fresh photo of its own racer to say "we're in the lead". But the writes overlap in time...
- Zarr: every chunk write lands on the shared array immediately, so three concurrent uploads interleave into a patchwork of all three racers. Often who is leading is undefined!
-
Icechunk: each writer stages its upload in a
private session, then commits it atomically. The
mainsnapshot is only ever one whole racer, so the leader is always clear, and past leaders stay in the commit history.
Writer 1
Writer 2
Writer 3
☁️ Cloud storage
Zarr no transactions
Who's in the lead?
???
Icechunk ACID
sessions
main #0
Who's in the lead?
Green