[#] Linux Kernel Extension for Databases
habrabot(difrex,1) — All
2017-08-09 22:30:04


![][1]


## Александр Крижановский ( [krizhanovsky][2] )


Сегодня буду рассказывать про внутренности базы данных, про внутренности ОС и о том, что происходит на стыке. Когда я говорю про базу данных, я имею в виду в основном ввод/вывод, управление памятью и обработку транзакций. Это совершенно не про SQL, не про индексы, не про блокировки и т.д. Только ввод/вывод, управление памятью и транзакции.

В тех местах, когда я буду упоминать про базы данных, я буду ссылаться на InnoDB, которая мне наиболее знакома.

![][3]

Если мы посмотрим на движок транзакционной базы, мы увидим примерно такую же картинку. У нас есть буфер pool, в нем живут странички индекса, странички данных. Все эти странички выводятся через транзакционный лог, когда они изменились, проходит это все через планировщик ввода/вывода и в ту, и в другую сторону. Планировщик ввода/вывода, когда он считывает что-то с диска, он делает read ahead. Все это проходит через файловую систему, но это дальше, на диске.
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/d5d/cc2/f98/d5dcc2f98b2d349f3ba80cf9622bcb85.jpg
[2]: https://habrahabr.ru/users/krizhanovsky/
[3]: https://habrastorage.org/getpro/habr/post_images/457/bca/6c2/457bca6c2b8181cfe5b1203c0417b4d7.png
[4]: https://habrahabr.ru/post/335260/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut