~/talk

Evolutionary history of the RabbitMQ .NET Client towards concurrency

Talkat NDC London 2021 · 2021-01-25..01-29· [concurrency]
slides:none on file

The RabbitMQ .NET client evolves from sync to a parallel async path by adding a redundant async worker and a dispatchConsumersAsync flag plus a consumer dispatch concurrency setting; removing lock contention yields up to 6.66× throughput on receives; benchmarks compare TaskCompletionSource (faster enqueue) versus SemaphoreSlim and System.Threading.Channels (less GC, better end-to-end); buffering must be copied unless consumer hands off bytes; current release 6.2 works and future 7/8 target full async model methods.

AI-written summary · about

  1. 0:00Introduction
  2. 1:34Agenda
  3. 3:38What is the client
  4. 4:27What is the broker
  5. 5:59Connection objects
  6. 7:14Model
  7. 10:48Confirms Aware
  8. 11:52Demo
  9. 12:35Why concurrency
  10. 13:33Multiple models
  11. 13:59How to achieve concurrency
  12. 16:03Async void
  13. 16:53Copy the buffer
  14. 17:41concurrency
  15. 17:56semaphore
  16. 18:46advanced trickery
  17. 19:43interleaving calls
  18. 20:18sequential execution
  19. 21:36concurrent exclusive scheduler
  20. 22:51concurrency demo
  21. 23:37buffer copy
  22. 24:29recap
  23. 27:35Consumer Work Service
  24. 28:29CPU Performance
  25. 30:25Batching Work Pool
  26. 32:59Prefetch Count
  27. 36:06Benchmark Results
  28. 38:30Async Connection Factory
  29. 39:43Task Completion Source
  30. 49:10Threading Channel
  31. 53:50concurrency loop
  32. 56:40summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.