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.