DragonFly kernel List (threaded) for 2005-12
Software Transactional Memory?
Someone used a "transactions system" that is found in modern databases to
handle SMP. Quoting:
on modern machines, locks have become a major source of memory contention and
often limit program performance. Transaction systems are able to avoid the
lock-bottleneck by using higher-performance concurrency techniques such as
fine-grain revocable locks and optimistic concurrency control, which would be
impractically difficult for programmers to use directly. We have now reached
the stage where transactions are outperforming locks --- and people are
starting to get interested.
We have produced a new algorithm for implementing object based Software
Transactional Memory that we have found to significantly outperform the
previous best performing algorithms. When run on our 106-processor test
machine, our algorithm is almost five times as fast as the previous best
known algorithm under high contention, almost twice as fast when using large
data sets, and we have yet to find any situation in which another STM
We achieve this by taking care to minimise cache contention and
memory-bandwidth requirements. This leads us to make very different --- often
counter-intuitive --- choices to other STMs, and allows our algorithm to
cause very little additional cache contention overhead, relative to a
Furthermore, unlike some previous STM implementations, our algorithm is
guaranteed to avoid livelock, deadlock, and starvation.
More info here: