What is the expected behavior of SQL if the transaction is committed to the database, it is successfully written to the database, but client fails in some way (timeout, network problem) and the final information that transaction is committed never reaches the client. So the final state is: transaction is committed and the client time-outed or failed in some unusual way. Does this leave database in dirty state where client thinks that transaction is not committed or SQL will ensure that if this information doesn't reach client, the transaction will be aborted?