Resources: BW - Chapter 7 - Atomic actions, concurrent tasks and reliability.pdf
Atomic Action
An atomic action is an indivisible operation in computing that completes entirely or not at all, ensuring data consistency and preventing interruptions or intermediate states.
Link to original
Two-Phase Atomic Actions Atomic Transactions
The Resumption Model of Asynchronous Notification Handling The Termination Model of Asynchronous Notification Handling
Requirements for atomic actions
Well-defined boundaries: Each atomic actions should have a start, an end and a side boundary.
- Start boundary: Marks the precise point where the action begins. It defines the moment from which the operation is considered indivisible and uninterruptible, ensuring that once started, the action will proceed to completion without any interference or visibility of partial states to other processes or threads.
- Side boundary: The side boundary separates those tasks involved in the atomic action from those in the rest of the system.
- End boundary: An end boundary in an atomic action marks the point where the operation is completed. It ensures that the action has fully executed and that all changes are applied as a single, indivisible unit. After this boundary, the results of the atomic action become visible to other processes or threads, ensuring data consistency and integrity. Indivisibility (isolation): Prevents the exchange of information between inside and outside tasks (except resource managers). No synchronization at the start, only at the end. Nesting: Atomic actions may be nested as long as they do not overlap with other atomic actions. Concurrency: It should be possible to launch atomic actions concurrently.