~/talk

Jmvx: Fast Multi-threaded Multi-Version eXecution and Record-Replay for Managed Languages

Talkat OOPSLA 2024 · 2024-10-20..10-25
links:none on file
links:none on file
slides:none on file

Jmvx instruments Java bytecode to intercept native and nondeterministic library calls (found via strace signals), implements a lock‑free shared mmap ring buffer between JVMs, and enforces monitor ordering with a Lamport clock monitor ordering so multi-threaded MVX and RR tolerate JVM GC/JIT divergence. Evaluation shows MVX overhead averaging 5% when multithreading support is disabled and 47% when enabled, recording costs 8% (25%) and replay 13% (73%), and it beats RR’s 4.33x/4.7x costs with 1.25x/1.73x for record/replay.

AI-written summary · about

  1. 0:00JMVX introduction and goals
  2. 1:04Record replay for debugging
  3. 2:06From replay to multi-version execution
  4. 3:09JMVX design for JVM complexities
  5. 4:12Nondeterministic Java APIs
  6. 4:55Instrumenting Java methods
  7. 5:56Class loading and concurrency handling
  8. 6:37Thread ordering with Lamport clocks
  9. 7:41Bytecode for synchronized methods
  10. 8:01Fast multi-threaded execution
  11. 8:23Divergences in program output
  12. 9:06JMVX instrumentation performance
  13. 10:08Record replay vs RR
  14. 10:50Chronicler multi-threaded comparison
  15. 11:55JMVX poor Lucene performance
  16. 12:38Ring buffer size impact
  17. 12:59Scaling with threads and benchmarks
  18. 13:41Key takeaways and capabilities
  19. 14:04Q&A
~/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.