STM implementations

40 views
Skip to first unread message

dth

unread,
Nov 20, 2008, 5:06:06 AM11/20/08
to Deuce-STM
Hi,

I have been working on and off on implementing STM for java in some of
my spare time. I recently decided to try and have a look at it again,
and ran into Deuce, which looks very interesting.

I checked out the source and started poking around a bit, but
obviously it's a bit of a mouthful to get under the skin of such a
project quickly.

So is there any documentation on what the architectur/structure is
like, what mechanisms are used etc.?

My own (proof-of-concept) framework can be described like this in the
grand perspective:

- Annotation or configuration of affected classes
- A classloader transforms affected classes to simply intercept all
field read and write operations
- The transactional framework gets events (invocations) for all reads
and writes, and implements concerns such as locking and isolation.
Obviously several strategies can be plugged in here.

My vision for these things - in broad terms - are something like this:

- Indicating which classes are to be considered transactional shared
resources by annotations, configuration etc. Integration with
frameworks like terracotta and spring might be the way to go here.
- Bytecode transformation supported by classloader, JVM agent or
compile-time. Again integration with popular frameworks are
interesting.
- Simple SPI for plugging in locking and isolation strategies/
algorithms.

The maturity of Deuce is a bit unclear to me, but I am wondering if
the best way to go would be to participate here, and perhaps
contribute what I already have.

All comments are welcome. I hope to get somewhere with this :)

Thanks,

-dennis

Guy Korland

unread,
Nov 20, 2008, 6:58:10 AM11/20/08
to deuc...@googlegroups.com
Hi Dennis,

Deuce is in its last steps to be publicly available.
As you described your work Deuce is trying to do similar things.
1. @Atomic annotation to indicate transactional Methods
2. Class loading or offline bytecode manipulation using ASM.
3. An open API for different STM algorithms to be implemented.
Currently there're three: Single global lock, LSA and TL2.

You're more than welcome to download the source and contribute.
There's a issue tracker with many tasks and can think on your own.
We're currently working on improving the performance.

Guy
--
Guy Korland
Reply all
Reply to author
Forward
0 new messages