![]() ![]() ![]() ![]() ![]() Next: Nesting Up: Properties of Transactions Previous: Serial Transactions   Contents   Index |
In mobile computing it may take a while before the changes made by a transaction reach the server and are (finally) committed there. In the mean time, it makes sense to let new transactions continue working on the in some sense un-committed data. If the first one at a later time is found out to fail then the "following" transactions must fail to, of course. However until that time the doings of a transaction may seem committed to new transactions. This leads to the following definition of pending transactions: A transaction is pending or tentative until it has been committed on the server, though it may appear to be committed from a clients, e.g., a disconnected ones, point of view.
In mobile computing we then have transactions executing and committing (or rolling back) in two stages; on a client and on the server. So an implementation would have to consider the stages of executing, committing, and rolling that are listed in Tables 4.1 and 4.2.
![]() |
Local Execution-Time | execution-time in [34] |
![]() |
Local Commit-Time | tentative commit on client |
![]() |
Server Execution-Time | re-execution on server |
![]() |
Server Commit-Time | commit-time in [34] |
![]() |
Local Execution Rollback | during local execution (![]() |
![]() |
Local Commit Rollback | at local commit time (![]() |
![]() |
Server Execution Rollback | during server (re-)execution (![]() |
![]() |
Server Commit Rollback | at server commit time (![]() |
![]() ![]() ![]() ![]() ![]() Next: Nesting Up: Properties of Transactions Previous: Serial Transactions   Contents   Index |