~/talk

Going Multi-Node with ExUnit

Talkat ElixirConf EU 2021 · 2021-09-09..09-10· [distributed-systems]
links:none on file
slides:none on file

Shows how to make ExUnit run tests across BEAM nodes by monkey‑patching the runner at runtime: changed spawn to node.spawn and use rpc.multi_call to compile tests on every node; modifies test_helper .exs to redefine the runner and compiler so each node loads test code into its code server. Benchmarks: 19.1s → 7.2s → 3.7s (series, single‑node parallel, three‑node cluster). It works for CPU‑bound, pure tests but hits code server limitations and needs extra work for stateful apps.

AI-written summary · about

  1. 0:00Intro
  2. 0:46Theory
  3. 2:56Parallel
  4. 5:51Picture
  5. 8:05Distributed
  6. 10:53Benchmarks
  7. 13:23The Code Server
  8. 14:54Anonymous Functions
  9. 15:37Beam Files
  10. 17:06Parallel or Distributed
  11. 17:27Changing the Runner
  12. 20:05Undefined function error
  13. 21:15Code servers
  14. 23:10Remote code loading
  15. 27:45ExUnit compiler
  16. 28:50RPC multicall
  17. 30:11Real Code
  18. 30:52Benchmark
  19. 31:20Performance
  20. 33:50Modules
  21. 35:08Questions
~/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.