Mark Volkmann's Software Transactional Memory (STM) Page

This page contains resources related to Software Transactional Memory.

Article Change History

  1. 9/1/09 - fixed lots of reported typos
  2. 9/2/09 - clarified that race conditions are errors
  3. 9/2/09 - added a paragraph explaining that Clojure STM uses both locks and a lock-free strategy
  4. 9/2/09 - clarified that the TVal next field refers to a newer commited value and the TVal prior field refers to an older commited value
  5. 9/2/09 - clarified the reason that RegEx extends Error instead of Exception
  6. 9/2/09 - clarified the use of a timeout within the blockAndBail method of LockingTransaction
  7. 9/2/09 - in the discussion of the first commit step within the description of the LockingTransaction run method, explained how the timing of an ensure call can result in a retry and added a question about why that is allowed
  8. 9/2/09 - resolved the question about why the sets field in LockingTransaction is needed instead of just using the keys in the vals field map
  9. 9/4/09 - noted that getHistoryCount method could acquired a read lock instead of a write lock