3. Atomic transactions in concurrent programming

This section covers high-level programming constructs based on software transactional memory to support atomic transactions in concurrent programming, particularly concurrent functional prgramming.

The details may be studied in the references below.

It is not yet clear how relevant these techniques are to transaction processing for Internet applications. However, two possible applications are as follows:

References

  1. Software transactional memory, entry in Wikipedia (as of 8 Nov 2005)
  2. N. Shavit and D. Touitou, Software Transactional Memory, Proc. 14th ACM Symp. on PODC (1995), 204-213.
  3. T. Harris et al., Composable Memory Transactions, Proc. ACM Symp. on PPoPP (2005), 48-60.
  4. T. Harris et al., Haskell on a shared-memory multiprocessor, Proc. ACM SIGPLAN Workshop on Haskell (2005), 49-61.
  5. A. Discolo et al., Lock-Free Data Structures using STMs in Haskell, Submitted to FLOPS'06. Abstract This paper explores the feasibility of re-expressing concurrent algorithms with explicit locks in terms of lock free code written using Haskell's implementation of Software Transactional Memory (STM). Preliminary experimental results are presented which show that for multi-processor systems the simpler lock free implementations offer competitive or superior performance when compared to their corresponding the lock based implementations.