~/talk

Better mutual exclusion on the filesystem using Boost.AFIO

Talkat CppCon 2016 · 2016-09-18..09-23· [c-and-cpp, linux-and-operating-systems]
links:none on file
slides:none on file

A shared-memory-map mutual exclusion implementation for Boost.AFIO that detects networked-drive users and falls back to byte-range/lock-file locking is built using mmap, spinlocks, and an FMV-1A hasher to map 63-bit entities to slots; it achieves ~10–20 million ops/s uncontended and far outperforms byte-range and lock-file methods but is anti-social mutual exclusion (high atomic pressure, CPU/battery cost), has known constructor/destructor races and temp-directory/posix-lock caveats, and works fast but with portability risks.

AI-written summary · about

  1. 0:00Introduction and setup
  2. 3:54History and motivation
  3. 13:02Boost.AFIO V2 design
  4. 20:02Prerequisites: monads and locks
  5. 26:30Shared filesystem mutex API
  6. 33:09Algorithm overview
  7. 41:07Memory map implementation
  8. 50:34Lock and unlock mechanics
  9. 53:46Benchmarks and results
  10. 1:01:51Conclusion and Q&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.