TGViewer
Kali Linux Kali Linux @linuxkalii · 55.5K subscribers
Post #2113 7.85K
`O_DIRECT`: когда база данных обходит page cache

В Linux флаг O_DIRECT позволяет читать и писать файл почти напрямую, минуя page cache ядра.

Зачем это нужно базам данных?

У PostgreSQL, MySQL, RocksDB и других систем часто уже есть свой buffer pool.
Если ещё и ядро будет кэшировать те же страницы, получится двойное кэширование и лишняя трата памяти.

Но у O_DIRECT есть неприятное условие: всё должно быть выровнено по блоку.

• buffer
• file offset
• размер чтения / записи

Например, под 4 KB блоки нельзя просто так прочитать 123 байта в любой `malloc`-буфер.
Промахнулся с alignment — read() вернёт EINVAL.

Именно поэтому низкоуровневый I/O в базах выглядит таким странным: там важны не только данные, но и то, как они лежат в памяти.
  • 👍 23
  • ❤ 11
  • 🔥 6
More from @linuxkalii
  1. Sep 30, 2026Почему `kill -9` не может убить главный процесс Linux Обычно SIGKILL завершает любой проце…
  2. Sep 30, 2026📌 Anthropic оценила кибервозможности GLM-5.3 Anthropic впервые оценила открытую китайскую…
  3. Sep 28, 2026Linux приближается к 2000 уязвимостей за один релиз Ещё несколько лет назад речь шла приме…
  4. Sep 28, 2026🚨 Claude-Red: библиотека навыков для пентестов с Claude. В репозитории собраны файлы SKIL…
  5. Sep 27, 2026🚨 OpenAI и Anthropic расследуют уже не десятки, а десятки тысяч проблемных эпизодов с AI-…
  6. Sep 26, 2026🚨 Claude выкинули из оборонной цепочки США и суд поддержал Пентагон История вокруг Anthro…
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 →