An audit of a banking transactions system has found that on an earlier occasion, two joint holders of account \(A\) attempted simultaneous transfers of Rs. 10000 each from account \(A\) to account \(B\). Both transactions read the same value, Rs. 11000, as the initial balance in \(A\) and were allowed to go through. \(B\) was credited Rs. 10000 twice. \(A\) was debited only once and ended up with a balance of Rs. 1000.
Which of the following properties is/are certain to have been violated by the system?
Answer
(B), (C)
Explanation
Each transaction read \(A = 11000\), wrote \(A = 1000\) and added Rs. 10000 to \(B\). The second write to \(A\) overwrote the first: a lost update.
- Isolation is violated. Run one after the other, the second transfer would have seen only Rs. 1000 in \(A\); no serial order gives the observed result.
- Consistency is violated. A transfer must keep the total \(A + B\) unchanged, but the total grew by Rs. 10000.
- Atomicity is not shown to fail: each transaction carried out all of its steps, and nothing was left half done.
- Durability is not shown to fail: the committed writes all survived.
Answer: B, C