May 2018
Intermediate to advanced
576 pages
30h 25m
English
There is a small window of uncertainty for any transaction that is in progress just at the point the master goes down. This can be handled within the application by checking the return code following a commit operation, rather than just assuming that it has completed successfully, as developers often do.
If the commit fails, it is possible that the server committed the transaction successfully, but was unable to communicate that to the client, but we don't know for certain. We can resolve that uncertainty by rechecking a unique aspect of the transaction, such as reconfirming the existence of an object identifier that was inserted.
If such an object identifier doesn't exist, we can create a table for this purpose:
CREATE TABLE ...