Michael Barker, TweetLead developer at London Multi-Asset eXchange (LMAX)
Biography: Michael Barker
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.
Blog: http://bad-concurrency.blogspot.com. Twitter: @mikeb2701
Presentation: TweetLock-free Algorithms for Ultimate Performance
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.