Книга: Database Internals
Базы данных - тема интересная, старая и разносторонняя. И удивительно, что литературы по устройству баз данных не так много. Известные мне книги либо ограничиваются сугубо теоретическими вопросами, либо рассматривают БД с точки зрения программиста-пользователя.
И известные мне классические книги излагают именно традиционный подход к базам данных, когда хранилище целиком умещается на единственную большую машину, и нет никаких серьезных проблем, характерных для распределенных систем.
Поэтому я старательно отслеживаю все новые публикации на тему, и мимо книги с названием "Database Internals: A Deep Dive into How Distributed Data Systems Work" пройти никак не мог.
Автор - Алекс Петров (англ. Alex Petrov) - поставил своей целью рассказать обо всех аспектах современных баз данных: традиционных БД, работающих на одной машине; и больших распределенных системах. Собственно, первая часть книги посвящена аспектам БД, размещенных на единственном сервере, вторая же часть - распределенным алгоритмам.
Первая часть перебирает основные вопросы, связанные с физическим размещением данных, локальными транзакциями и надежностью хранения данных. Изложение в этой части последовательное, и формирует более-менее цельное представление о ключевых проблемах.
Вторая часть касается распределенных систем: распределенные алгоритмы консенсуса, распределенные транзакции, поиск "сломавшихся" узлов кластера и так далее. Тут автор несколько теряет в последовательности изложения и цельной картины после прочтения не получается.
Алекс не углубляется сильно в перечисленные темы, стараясь вместо этого дать интуитивное понимание, и другого ожидать от книги на 300 страниц, пожалуй, не стоит. Для желающих получить действительно глубокое понимание темы каждая из глав и книга в целом сопровождаются богатой библиографией. За кодом же можно пройти к многочисленным открытым проектам, благо в наши дни их хватает.
Словом, это неплохая книга для желающих получить обзорное представление о темах, связанных с современными базами данных.