Memory part 8: Future technologies: transactional memory
Posted Nov 21, 2007 23:17 UTC (Wed) by PaulMcKenney
Parent article: Memory part 8: Future technologies
Transactional memory is indeed a very interesting technology, and there has been quite a bit of work in this area of late! Some researchers believe that they have solved the multiple-cache problem, for example. However, there are a few remaining challenges:
- Non-idempotent operations (such as I/O) must be excluded from transactions.
- Transactions can be subject to priority inversion, see for example Rossbach et al's SOSP paper.
- Although there are proposals to handle very large transactions, these have performance consequences. So the performance of transactional memory usually depends heavily on the size and associativity of the hardware caches.
- Resolving contention among transactions turns out to be non-trivial, though of course designing for low contention is the best approach, and not just for transactional memory!
- As far as I know, transactional memory implementations do not yet take realtime issues into account.
- Efficient handling of read-mostly situations is best served by allowing concurrent transactional and non-transactional access to the same locations, which causes extreme discomfort to most of the transactional-memory people I have talked with.
All that aside, transactional memory certainly does seem like a much better approach than non-blocking synchronization!
to post comments)