Need to write software that makes effective use of multi-core CPUs? JActor provides the ideal solution.
The high-performance messaging provided by JActor means that you can use many small actors with good separation of concerns while still enjoying unbelievable throughput.
JActor is a high-performance actor framework designed to make vertical scalability easy.
We offer both consulting and seminars to help you best leverage our products.
Vertical scaling is today a major issue when writing server code. Threads and locks are the traditional approach to making full utilization of fat (multi-core) computers, but the result is code that is difficult to maintain and which to often does not run much faster than single-threaded code.
Actors make good use of fat computers but tend to be slow as messages are passed between threads. Attempts to optimize actor-based programs results in actors with multiple concerns (loss of modularity) and lots of spaghetti code.
The approach used by JActor is to minimize the messages passed between threads by executing the messages sent to idle actors on the same thread used by the actor which sent the message. Message buffering is used when messages must be sent between threads, and two-way messaging is used for implicit flow control. The result is an approach that is easy to maintain and which, with a bit of care to the architecture, provides extremely high rates of throughput.
On an Intel i7, between 80 and 200 million messages, depending on the mode of transport, can be passed between actors in the same JVM per second–several orders of magnitude faster than comparable actor frameworks.
A fully durable in-memory database was also developed as a proof of concept, which processes transactions at a rate of 1 million per second when using an SSD for the backing store. Again, this is orders of magnitude greater than comparable approaches.*
Our products are Open Source (LGPL). We offer both consulting and seminars to help you best leverage our products.
Test Environment: i7-3770 @ 3.40 GHz ASUS P8Z77-M Motherboard 16 GB Corsair DDR3 1600 MHz RAMVertex 3 SATA III SSD