Thursday 16:40 - 17:40
Henry Moore Room
In the challenge to reach the lowest possible latencies, as we push the boundaries of transaction processing, the good old fashioned lock imposes too much contention on our algorithms. This contention results in unpredictable latencies when we context switch into the kernel, and in addition limits throughput as Little’s law kicks in. Lock-free and wait-free algorithms can come to the rescue by side-stepping the issues of locks, and when done well can even avoid contention all together. However, lock-free techniques are not for the faint hearted. Programming with locks is hard. Programming using lock-free techniques is often considered the realm occupied only by technical wizards.
This session aims to take some of the fear out of non-locking techniques. Make no mistake this is not a subject for beginners but if you are brave, and enjoy understanding how memory and processors really work, then this session could open your eyes with what is possible if you are willing to dedicate the time and effort in this amazing subject area.
The attendees will learn the basics of how modern Intel x86_64 processors work and the memory model they implement that forms the foundations for lock-free programming. Empirical evidence will be presented to illustrate the raw throughput and potential latencies that can be achieved when using these techniques.
Martin is a high-performance and low-latency specialist, with experience gained over two decades working with large scale transactional and big-data domains, including automotive, gaming, financial, mobile, and content management. He believes Mechanical Sympathy - applying an understanding of the hardware to the creation of software - is fundamental to delivering elegant, high-performance, solutions. Martin was the co-founder and CTO of LMAX, until he left to specialise in helping other people achieve great performance with their software. The Disruptor concurrent programming framework is just one example of what his mechanical sympathy has created.
Video presentations: 4YOW! 2011: Martin Thompson - On Concurrent Programming and Concurrency Folklore
Michael Barker is a lead developer at London Multi-Asset
eXchange (LMAX) and maintainer of the Disruptor project -
a high performance inter-thread messaging library.
Intermingled with travelling to various countries around the world,
Michael's 10+ years of experience has been spent battling unnecessary
complexity across a variety of industries (finance, telecoms,
government) and in whatever technology that happens to have been
hurled in his direction (Java/JavaEE, C++, .NET).
Michael is active
Java community member including sporadic contributions to Open Source
projects (GNU Classpath, JBoss, Mono) and encouraging members of the
London JUG to get involved in the OpenJDK.