The document discusses the Disruptor, a data structure and work flow that allows for high-performance concurrent programming with no contention. The Disruptor uses a ring buffer to pass messages between threads very quickly in a parallel manner. Publishers can insert events into the ring buffer, while batch event processors can read the events in batches to process them in parallel threads. The Disruptor framework encourages modeling the problem domain and provides reliable ordering, parallelism, and high performance.
1 of 48
Downloaded 7,036 times
More Related Content
Introduction to the Disruptor
1. Concurrent Programming
Using The Disruptor
Trisha Gee, Developer at LMAX
@trisha_gee
mechanitis.blogspot.com
Tuesday, 9 October 12
40. Caveats
• Your ring buffer needs to be bigger than 12
• Event handlers are on separate threads
• Mileage May Vary - always performance test
Tuesday, 9 October 12
41. You get...
• A framework the encourages you to model
your domain
• The ability to run in parallel but single-
threaded
• Nice, simple Java
• Reliable ordering
• ...and it can be very fast
Tuesday, 9 October 12
42. Is that it?
• Wait strategies
• Batch publishing
• Multiple publishers
• The Wizard
• You don’t even need a RingBuffer...
Tuesday, 9 October 12
43. More Information
• Github:
github.com/LMAX-Exchange/disruptor
• Google Group
• Blogs
Tuesday, 9 October 12