Did you know? DZone has great portals for Python, Cloud, NoSQL, and HTML5!

DeuceSTM 1.3

March 08, 2010 AT 2:10 AM
  • submit to reddit

DeuceSTM 1.3 was finally released including major bug fixes and few enhancement. For more details see: www.deucestm.org

  • Deuce is a powerful open source java support for software transactional memory(STM). 
  • Deuce lets you develop highly concurrent applications without worrying about concurrency.
  • Deuce allows you to write your application as if it was a single threaded application while in fact it runs many threads.
  • Deuce is an extensible framework, which allows developers to develop/extend their own STM algorithms.
Location: 
www.deucestm.org
0

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Peter Veentjer replied on Mon, 2010/03/08 - 2:30pm

Congratulations with the new release guy.

Is there a feature list of what is added to the 1.3 release?

James Imber replied on Fri, 2010/03/12 - 12:31pm

A question: what is the performance like compared to simple synchronized method?

I've seen that you've pitched several different locking algorithmbut not the 'standard' thing.

I would love to see the exact same stuff done with synchronized and @Atomic with a variable number of threads.

 

Peter Veentjer replied on Sun, 2010/03/14 - 4:13pm in response to: im-james

It depends on the situation how much overhead there is. If inside an atomic block only reads are done, the reads can be executed with the same performance as a volatile read, the writes are going to be a littlebit more expensive compared to a volatile write because it is very likely that multiple cas operations need to be executed  for a commit.

Yesterday I fixed one of my manual instrumented references that is used in the Akka project and on a single thread I'm able to do 160M readonly get transactions/second (one volatile read is done without objects being created; transaction is completely inlined) and 12M set transactions/second (also inlining of transaction). Eventually this is going to be added to the instrumentation, but it shows the potential.

When more is done in a transaction the costs increase. And as long as there is no hardware support (accessable inside the jvm) it wil in most cases be slower.

I see stm's as a different programming model that is a hybrid between traditional databases (transactions and easy or programming) and traditional in memory concurrency control (performance, blocking operations, etc). So if stm is a good fit for project, it could be a great technology I expect (there still is a lot to be discovered).

Guy Korland replied on Tue, 2010/03/16 - 5:07pm in response to: im-james

Deuce supports it as part of the release.
If you add -Dorg.deuce.transaction.global=true deuce will not add any code instrumentation but will add only a single global lock (synchronized).
See how to replace between the different algorithms:
Writing your own STM algorithm Guy

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.