| | 1 | = Transactions in Fortress = |
| | 2 | |
| | 3 | Transactional memory was proposed as a programming language feature by [http://citeseer.ist.psu.edu/herlihy93transactional.html Maurice Herlihy and Eliot Moss] in 1993. In modern processors the implementation overhead is not large, and transactions solve several performance and correctness problems often associated with locking. Locking tends to introduce a tension between correctness (conservatively ensured by reducing parallelism) and performance (harmed by reduced parallelism) and deadlock (caused when locks are not always obtained in the same order in different threads); properly-implemented transactions provide all three (though performance inevitably suffers when true contention is high). |
| | 4 | |
| | 5 | Fortress uses [http://research.sun.com/scalable/pubs/OOPSLA2006.pdf DSTM2 (pdf)] to implement its transactions; in the future, when hardware support is more mature, we expect to use [http://research.sun.com/spotlight/2007/2007-08-13_transactional_memory.html hybrid transactional memory]. |