Wednesday, September 05, 2007

The Transactional Silver Bullet?

Over at his blog, Patrick Logan asks why people find transactional memory to be shiny? I think it's the usual reason: it looks to them like a silver bullet.

I know Patrick worked at GemStone with their transactional products, and I spent a number of years writing an app dev system on top of the GemStone transactional object database as well as writing a custom transaction manager for a port of the app dev system to Java. So we're both aware of the problems with transactional memory and the complexity it can entail.

But if you haven't been there and done that transactional memory is seductive; it promises that you won't have to change much to enjoy the benefits of multi-CPU systems. And like the SOAP stack, it initially seems to deliver on the promises. But as the number of processes accessing the data increases, as transactions get longer, and as the amount of data inside the transactions increases they'll find that the the costs in quickly outweigh the benefits.

I'm expecting that the industry will detour into the transactional memory dead end for awhile, just like they did with the SOAP stack and by the time they come back they'll be ready to make the harder changes necessary to do it with an Actors/Erlang type approach.


Anonymous said...

Can you point to what would be the Actors, Erlang approach, and how it compare to transactional memory purposed benefits.

Redline6561 said...

I was recently having a discussion about Tim Sweeney about this which he kindly allowed me to post here:

codeslinger said...

I had similar thoughts here:

James said...
This comment has been removed by the author.
James said...

Today, Intel released a prototype version of the Intel C/C++ Compiler with support for Software Transactional Memory (STM). It is available from

It is worth a look - and should help exploration by fans and detractors of STM alike. Please enjoy.

The Intel STM Compiler supports Linux and Windows producing 32 bit code for x86 (Intel and AMD) processors. This prototype compiler download requires that you already have the Intel compiler installed - our web site explains how to get an evaluation copy (free for limited time) for the compiler to install, or Linux users can get a 'non-commercial' license - either are enough to use the STM compiler download.