~/talk

Using STM for Modular Concurrency: An Industrial Experience Report on Software Transactional Memory

Talkat Haskell 2020 · 2020-08-27..08-28· [functional-programming, concurrency]
links:none on file
slides:none on file

Industrial Cardano node reimplementation uses Haskell STM pervasively and claims STM scales to a large, security-sensitive, concurrent system built over ~20 months. Design uses a pull-based cue-less design with components exposing STM queries as observables (unidirectional TVar ownership, fingerprints to detect relevant changes) and composes guarded actions with orElse alternatives and retry. Timeouts use registered-delay TVars. Testing runs the exact production code in a pure deterministic simulator with deterministic simulation with QuickCheck, finds many bugs, and prevents production failures.

AI-written summary · about

  1. 0:00Intro
  2. 1:06Summary
  3. 4:04Project context
  4. 5:49Background ideas
  5. 8:21The STM primitives
  6. 12:33Blocking on alternatives
  7. 15:50Design thought process
  8. 20:29Observing relevant changes
  9. 24:57Acting on the current state
  10. 26:56A real example: block fetch
  11. 30:13A modular variation on the state observation pattern
  12. 31:34Modular guarded actions
  13. 32:57A real example: Peer-to-peer control loop
  14. 33:57Testing
  15. 35:03Simulation
  16. 41:56Use of STM within Cardano
  17. 45:18Contrast with message passing
  18. 47:05Conclusion
  19. 48:01Acknowledgements
~/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.