Within a commit group, no new transaction should be allowed to start after a transaction has been committed, because the effect of the previous commit is not visible yet and this can cause database corruption.
No two transactions on the same namespace should be allowed in the same commit group. Otherwise there can also be database corruption, in the following case:
Two transactions on the same database are started in the same commit group.
Both transactions are committed.
The commit group is committed. The mutation history is no longer linear, and the database is now corrupt. last_write_version check isn't sufficient here, because the commit itself is atomic.
last_write_version
check isn't sufficient here, because the commit itself is atomic.