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

Как немногие из вас знают, я большой поклонник баз данных. А с недавних пор еще и поклонник того, что творится в их внутренностях.

Внутри СУБД реализован компонент под названием page cache (он же buffer pool, он же buffer cache - в разных СУБД и в разные времена оно называется по-разному, но суть та же). В это быстрое (потому что в памяти) и временное хранилище попадает транзакция, прежде чем закрепиться в бинарном логе, а затем уже и в файле данных на диске.

Page Cache во многих СУБД имплементирует ту самую комбинацию кеширований Lazy Loading и Write-Through. Свежий INSERT/UPDATE считается оттуда - Write-Through. SELECT, пришедший из диска, ляжет в него - Lazy Loading.

Однако читатели, сведущие во внутренностях *nix-подобных заметят - page cache присутствует не только в СУБД, он есть еще и в ОС! И будут совершенно правы. Linux kernel тоже кеширует page из диска в свободную оперативную память, чтобы эффективнее выполнять операции ввода/вывода (IO).

СУБД общается с хранилищем через Storage Engine, тот обращается к диску через VFS. Получается, что запрос от клиента идет по следующей цепочке: RDBMS Page Cache → OS Page Cache → Disk.

Совсем неэффективно, плюс дупликация информации, если один и тот же page хранится в кешах и СУБД, и ОС. Как же быть?

Вот здесь получился конфликт. Разработчики СУБД решили, что кеширование ОС им не нужно, и делают запросы в диск с использованием флага O_DIRECT, который говорит ядру: "Не смотри в своем кеше, отправь меня сразу в диск." Разумеется, одному финну это не понравилось, но консенсус не найден и вряд ли будет.
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 →