TGViewer
Человек и машина Человек и машина @manandthemachine · 1.69K subscribers
Post #722 1.98K
#машины_разное

В ядре Linux есть интересный системный вызов mmap (memory map) , “привязывающий” указатель на файловый дескриптор к пространству имен внутри процесса.

Штука довольно полезная. Например, можно считать часть файла или даже загрузить его целиком, проводить с ним работу, периодически сохраняя изменения на диск с помощью flush.

В виду удобства использования, mmap иногда использовуют в качестве прослойки между storage engine у СУБД и операционной системой. Работа с файлами и хранилищем - довольно скучный и неблагодарный труд, так что неудивительно, что ее пытаются отдать на откуп операционной системе.

Однако mmap откровенно не подходит для СУБД (передаю привет MongoDB). Он не обеспечивает изоляцию и атомарность транзакций, поскольку файл может быть записан на диск самой ОС в любой момент и это не поддается контролю, но обходится с помощью Copy-on-Write. mmap может так же считать файл из кеша, что по сути дублирует один и тот же файл в памяти дважды.

Исследователи из университета Карнеги-Меллона (в очередной раз) провели исследование о совместимости mmap и СУБД, (в очередной раз) придя к выводу, что смешивать их не стоит. Стоит использовать O_DIRECT и писать свой собственный buffer cache/pool.

Написанный ими paper рекомендуется к прочтению любителям всего низкоуровнего из моей подписоты, контент там очень полезный. Остальные могут потратить буквально 10 минут на просмотр краткой выжимки в виду уморительной лекции.
db.cs.cmu.edu Are You Sure You Want to Use MMAP in Your Database Management System? MMAP Databases = 💩
More from @manandthemachine
  1. Jan 17, 2026#прощальное Вы могли заметить, что из канала исчезли комменты, а чат был удален. Подробнее…
  2. Dec 31, 2025#новогоднее Если бы мне пришлось охарактеризовать 2025-ый год одним единственным словом, я…
  3. Oct 24, 2025#машины_aws Пожалуй, лучший инцидент, что я когда либо видел. Если вкратце: 1. Управление…
  4. Sep 30, 2025#машины_разное Моя любимая рубрика «Разработчики СУБД знают лучше». Вы наверняка помните,…
  5. Sep 26, 2025#пятничное Инженер-программист Шивам Баларани рассеянно смотрел в монитор. Через блеклый и…
  6. Sep 24, 2025Вот это я конечно не попал в лимиты телеграма. 🤦‍♂️
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →