~/talk

Implementing Raft in RabbitMQ

Talkat SpringOne Platform 2017 · 2017-12-04..12-07· [distributed-systems]
slides:none on file

RabbitMQ adopts Raft to replace fragile queue mirroring: a mostly complete Raft library (to be open‑sourced under Apache‑2/MPL‑1.1) is built after ~9–10 months, exercised with property‑based testing and Bosch deployment checks. Early tests with a thousand Raft-backed queues show massive fsync contention, so a shared write‑ahead log per node with batched fsyncs and a central heartbeat reduces chatter and disk pressure. Work is functional in testing, exposes tradeoffs (fsync latency, quorum needs, single‑leader bottleneck) and remains a work‑in‑progress.

AI-written summary · about

  1. 0:00Intro
  2. 0:30Safe Harbor Statement
  3. 0:54What is RabbitMQ
  4. 1:42RabbitMQ nodes can form clusters
  5. 2:02Sections
  6. 2:37RabbitMQ High Availability
  7. 3:23RabbitMQ HA story isn't perfect!
  8. 5:12Chain replication
  9. 6:11RabbitMQ Mirrored Queue ring
  10. 6:55RabbitMQ Queue Mirror failure detection
  11. 7:26RabbitMQ Mirrored Queue reforms ring
  12. 8:30RabbitMQ Queue mirror sync
  13. 9:09RabbitMQ documentation wisdom
  14. 9:58RabbitMQ Queue Mirroring
  15. 10:46What do we need?
  16. 12:30Options
  17. 15:42Raft provides
  18. 17:27Raft protocol: replicate entry
  19. 18:05Raft protocol: reply + commit
  20. 19:30Taking action
  21. 20:56Raft vs Queue Mirroring failure handling
  22. 21:50Raft vs Queue Mirroring leader failure
  23. 23:09In response to (potential) failure
  24. 23:46Raft in RabbitMQ
  25. 27:43Message store replication
  26. 30:22Raft challenges
  27. 32:30Operational changes
  28. 33:25Ra: a Raft library
  29. 37:32Ra: implementation testing
  30. 39:35Summary
  31. 40:56RabbitMQ 3.7
~/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.