Atomikos Forum |
|
We are considering Atomikos as a replacement for JOTM/XAPool.
Our initial load testing found that in a multi-threaded application performing lots of inserts/updates (one transaction per thread), that it was significantly slower than JOTM/XAPool. A little over half the speed. Some digging found that most of the threads were blocked in StreamObjectLog. Turning off transaction logging using "com.atomikos.icatch.enable_logging=false" improved performance back up to the levels we were seeing with JOTM/XAPool. A 50% performance hit is too big for us to take. Is this a problem that is fixed in ExtremeTransactions? I suspect the problem is that each transaction is writing to the same file, which obviously must be done in turn. In effect serialising the transaction commits. Would a better approach be that each transaction (or thread) maintains it's own transaction log?
Performance comparisons are always highly dependent on your particular configuration.
However, we've tried hard to improve performance in our professional subscription offering; it has a different streaming mechanism with a different synchronisation mechanism too. If needed, we'll add more tuning so I recommend considering a subscription if you can secure the budget... HTH |