STM: 160k transactions/second

February 16, 2009

For the last 4 months I have been working on a Java based STM implementation. With 2 main priorities:

  1. predictability (especially the concurrency control part)
  2. performance

One of the performance test is a simple producer consumer problem with 2 threads and with a stack in between and with my dual core laptop I get roughly 160.000 transactions per second. If I execute a similar test with classic concurrency control and a Stack (a Deque to be honest because a java.util.Stack has no blocking support even though it is thread-safe) I get roughly 5.000.000 transactions per second. So there is quite some room for improvement.