~/talk

Memory mapped storage

Talkat Meeting C++ 2015 · 2015-12-04..12-05· [rust]
links:none on file
slides:none on file

Yandex Maps uses memory-mapped files to serve dozens-to-hundreds of gigabytes (examples cite ~100 GB) so reads hit almost zero read time when OS cache is warm; serialization is a two-pass writer that lays out var-size payloads then fixed headers, stores pointers as relative offsets, and exposes STL-like read-only types via reinterpret_cast. Benchmarks show traversal is within ~10% of in-memory STL speed, deserialization latency is essentially eliminated, but serialization is ~3× slower, files are larger, and format is non‑extensible and architecture‑dependent.

AI-written summary · about

  1. 0:00Intro
  2. 0:50Who we are
  3. 1:30Data usage patterns
  4. 4:00Data reading
  5. 5:33Serialization: a usual approach
  6. 6:53The same thing in RAM
  7. 7:50Reconstructing the layout
  8. 8:26Storing pointers
  9. 10:26A string approaches
  10. 11:32A kind of duplicity
  11. 12:14Templates to the rescue!
  12. 13:27Key concepts (on a single slide)
  13. 14:37What can be serialized
  14. 15:14Two passes
  15. 16:38User-defined structs
  16. 17:35Pitfalls
  17. 18:54Containers
  18. 19:30vector
  19. 21:29deque, list, rope, slist...
  20. 22:18map, set
  21. 23:17unordered map, unordered set
  22. 25:48Downsides
  23. 28:01Data versions
  24. 29:22What we measure
  25. 30:24Outcome
  26. 32:23What we've got
  27. 33:20Possible use cases
~/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.