Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Concurrent Programming                          Using The Disruptor                            Trisha Gee, Developer at LM...
The Disruptor?Tuesday, 9 October 12
What is it?                  • Data structure and work flow with no                        contention.                  • V...
The Magic RingBufferTuesday, 9 October 12
The Magic RingBufferTuesday, 9 October 12
The Magic RingBufferTuesday, 9 October 12
The Magic RingBufferTuesday, 9 October 12
The Magic RingBufferTuesday, 9 October 12
The Magic RingBufferTuesday, 9 October 12
The Magic RingBufferTuesday, 9 October 12
The Events are BucketsTuesday, 9 October 12
I’ve got a RingBuffer!                    • Erm.... how do I poke things into it?Tuesday, 9 October 12
The PublisherTuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
...so now I want to read                    • The Disruptor provides nice batching                        behaviour for fr...
BatchEventProcessorTuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Tuesday, 9 October 12
Shiny. So what?Tuesday, 9 October 12
Complex WorkflowsTuesday, 9 October 12
...and in the Disruptor?Tuesday, 9 October 12
Let’s go parallelTuesday, 9 October 12
Caveats                    • Your ring buffer needs to be bigger than 12                    • Event handlers are on separa...
You get...                    • A framework the encourages you to model                        your domain                ...
Is that it?                    • Wait strategies                    • Batch publishing                    • Multiple publi...
More Information                    • Github:                        github.com/LMAX-Exchange/disruptor                   ...
Q&ATuesday, 9 October 12
WorkerPoolTuesday, 9 October 12
AggregateEventHandlerTuesday, 9 October 12
WaitStrategies                    • BlockingWaitStrategy                    • BusySpinWaitStrategy                    • Sl...
ClaimStrategies                    • SingleThreadedClaimStrategy                    • MultiThreadedClaimStrategy          ...
Upcoming SlideShare
Loading in …5
×

Introduction to the Disruptor

72,963 views

Published on

Very basic overview of the Disruptor

  • Follow the link, new dating source: ❤❤❤ http://bit.ly/369VOVb ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Got a new Iphone 6 in just 7 days completing surveys and offers! Now I'm just a few days away from completing and receiving my samsung tablet! Highly recommended! Definitely the best survey site out there! ▲▲▲ https://bit.ly/2Ruzr8s
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Ordinary Guy Retires After Winning The Lotto 7 Times ■■■ https://tinyurl.com/t2onem4
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/33tKWiU ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/33tKWiU ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Introduction to the Disruptor

  1. 1. Concurrent Programming Using The Disruptor Trisha Gee, Developer at LMAX @trisha_gee mechanitis.blogspot.comTuesday, 9 October 12
  2. 2. The Disruptor?Tuesday, 9 October 12
  3. 3. What is it? • Data structure and work flow with no contention. • Very fast message passing. • Allows you to go truly parallel.Tuesday, 9 October 12
  4. 4. The Magic RingBufferTuesday, 9 October 12
  5. 5. The Magic RingBufferTuesday, 9 October 12
  6. 6. The Magic RingBufferTuesday, 9 October 12
  7. 7. The Magic RingBufferTuesday, 9 October 12
  8. 8. The Magic RingBufferTuesday, 9 October 12
  9. 9. The Magic RingBufferTuesday, 9 October 12
  10. 10. The Magic RingBufferTuesday, 9 October 12
  11. 11. The Events are BucketsTuesday, 9 October 12
  12. 12. I’ve got a RingBuffer! • Erm.... how do I poke things into it?Tuesday, 9 October 12
  13. 13. The PublisherTuesday, 9 October 12
  14. 14. Tuesday, 9 October 12
  15. 15. Tuesday, 9 October 12
  16. 16. Tuesday, 9 October 12
  17. 17. Tuesday, 9 October 12
  18. 18. Tuesday, 9 October 12
  19. 19. Tuesday, 9 October 12
  20. 20. ...so now I want to read • The Disruptor provides nice batching behaviour for freeTuesday, 9 October 12
  21. 21. BatchEventProcessorTuesday, 9 October 12
  22. 22. Tuesday, 9 October 12
  23. 23. Tuesday, 9 October 12
  24. 24. Tuesday, 9 October 12
  25. 25. Tuesday, 9 October 12
  26. 26. Tuesday, 9 October 12
  27. 27. Tuesday, 9 October 12
  28. 28. Tuesday, 9 October 12
  29. 29. Tuesday, 9 October 12
  30. 30. Tuesday, 9 October 12
  31. 31. Tuesday, 9 October 12
  32. 32. Tuesday, 9 October 12
  33. 33. Tuesday, 9 October 12
  34. 34. Tuesday, 9 October 12
  35. 35. Tuesday, 9 October 12
  36. 36. Shiny. So what?Tuesday, 9 October 12
  37. 37. Complex WorkflowsTuesday, 9 October 12
  38. 38. ...and in the Disruptor?Tuesday, 9 October 12
  39. 39. Let’s go parallelTuesday, 9 October 12
  40. 40. Caveats • Your ring buffer needs to be bigger than 12 • Event handlers are on separate threads • Mileage May Vary - always performance testTuesday, 9 October 12
  41. 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 fastTuesday, 9 October 12
  42. 42. Is that it? • Wait strategies • Batch publishing • Multiple publishers • The Wizard • You don’t even need a RingBuffer...Tuesday, 9 October 12
  43. 43. More Information • Github: github.com/LMAX-Exchange/disruptor • Google Group • BlogsTuesday, 9 October 12
  44. 44. Q&ATuesday, 9 October 12
  45. 45. WorkerPoolTuesday, 9 October 12
  46. 46. AggregateEventHandlerTuesday, 9 October 12
  47. 47. WaitStrategies • BlockingWaitStrategy • BusySpinWaitStrategy • SleepingWaitStrategy • YieldingWaitStrategyTuesday, 9 October 12
  48. 48. ClaimStrategies • SingleThreadedClaimStrategy • MultiThreadedClaimStrategy • MultiThreadedLowContentionClaimStrategyTuesday, 9 October 12

×