Inter Thread Communication (ITC) is not a new concept. Developers have been doing it for quite some time. However, doing it fast and well has been tricky. This mimics almost all of the modern day messaging communication primitives, such as IPC and reliable multicast. That is why I believe that ITC is the new ground for ultra low latency messaging.
Pushing the high performance messaging model to its ultimate, present day, conclusion of message passing between threads in a single process is an exciting concept. The same messaging API used as communication between threads within a process, between processes within a box, and between machines separated by an entire planet is a quantum leap in location transparency. The ability that this abstraction allows is quicker time to market for high performance use cases and much more flexibility to messaging users. It simply makes sense for messaging systems to embrace ITC.
ITC is easy to do, but tough to do well. It has its own challenges from an implementation perspective. To do well, it requires intimate knowledge of many low level components, such as CPU caches, cache consistency models, and instruction pipelines. The payoffs are quite impressive.
At Informatica Ultra Messaging, one of our most aggressive customers in the area of high throughput and ultra low latency is LMAX. Martin Thompson, Michael Barker, and others at LMAX have done, what I believe to be, world leading work in pushing the boundaries of how low you can go with latency and how high can you go with throughput in communicating between two threads. In short, 25 million messages/second and 50 nanoseconds latency on modern commodity CPUs.
An even better part is that they and LMAX are extremely open to discussing the approach and the core ideas. The Disruptor code project is more than worth your time.
Ultra Messaging plans to support not only the notion of ITC as a transport, but to adopt the core ideas of the Disruptor pattern in many ways in our products to further provide world class low latency solutions to our customers. Stay tuned for more in this area and more from UM.
View a replay of a webinar about LMAX.
Martin Fowler has written this great article about LMAX’s architecture.
Here’s a case study on LMAX (PDF).