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:
- Scripting languages (on both the server and the client) may be
concurrent, with shared main memory, requiring such constructs.
- Concurrent scripting languages may be able to use these
techniques to describe and manage atomic transactions on shared
database storage.
References
- Software
transactional memory, entry in Wikipedia (as of 8 Nov 2005)
- N. Shavit and D. Touitou, Software Transactional Memory, Proc.
14th ACM Symp. on PODC (1995), 204-213.
- T. Harris et al., Composable Memory Transactions, Proc.
ACM Symp. on PPoPP (2005), 48-60.
- T. Harris et al., Haskell on a shared-memory multiprocessor,
Proc. ACM SIGPLAN Workshop on Haskell (2005), 49-61.
- 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.