Subject: System

Keywords: ::transaction
          ::implementation

Title: transaction

--------------------------------------------------

Transactions
  begin
  library updates
  completions :
      can't be undone, but completion request can fail if clash.
  end

Transactions are simultaneous if one begins after the other begins
 but before the other completes.

Multiview updates from simultaneous transactions are not visible to other
 simultaneous transactions. IOW, updates committed after transaction begins
 are not visible to the earlier transaction.

Dependencies :
  Dependencies define graph of objects.
  dependency can be hard reference by the data of an object to another object.
  It can also be notation recorded when an object is read. Such notations will be
  stored in the dependencies of the object being updated when read occurred. 
  Consistency of data can tested. If Object depends on Object and object was
  modified after Object then the dependency can be considered stale.
  dependency includes kind attribute. graph of dependencies of 
  set of kinds is consistent if it is acyclic and no stale dependencies exist. 
     

Clash same object is read or written by simultaneous transactions.
  Read Multiview precludes read clashes since clashing updates are not visible.
      if reading transaction sequentialized first then no clash.
      otherwise transaction succeeds but behaved as though sequentialized first.  
      If transaction did no writes then no detectable effects in persistent state.
      If transaction did write then if updated data depends on clashing data
      then there will exist stale dependency at commit.
      See Transaction read clash
 Write :
      if at completion there exists write clash with transaction which
      has already completed, then the completion will fail. 
      
ACID  ⋅
--------------------------------------------------

Authors: NUPRL:t



Home