Читал книгу в переводе от издательства "Питер", которое перевело название книги как "Высоконагруженные приложения". Заметим, что ни слова про высокую нагрузку по данным :) В остальном перевод вышел довольно хорошим.
О качестве книги говорит то, что после первых 2 глав я заказал себе бумажную копию книги и поставил рядом с 4 томиками Кнута, книжкой GoF и другими классическими книгами. Кстати, отдельно надо сказать про иллюстрации к каждой главе - они превосходны.
Очень наглядно отображены взаимосвязи между сущностями, про которые дальше упоминает автор книги. Прочтение книги у меня заняло почти месяц с перерывами, т.к. книга чрезвычайно емкая по содержанию.
Книга разбита на три части и 12 глав:
- Основы информационных систем
- Распределенные данные
- Производные данные
Первая часть является вводной и состоит из глав:
- Надежные, масштабируемые и удобные в сопровождении системы
- Модели данных и языки запросов - SQL, NoSQL, Map Reduce, Cypher и SparQL
- Подсистемы хранения и извлечения данных - SSTables, LSM, B-Tree, Звезды и снежинки, столбцовое хранение данных
- Кодирование и эволюция - json, xml, thrift, protobuf, avro. Миграции данных :)
Вторая часть включает в себя главы:
- Репликация - синхронная/асинхронная, master/slave, master/master, no-master
- Секционирование - типа ключ/значение, по диапозонам ключе, сеционирование и репликация, секционирование и вторичные индексы, перебалансировка секций
- Транзакции - ACID/BASE, 2PL(two-phase locking), SSI (serializable snapshot isolation)
- Проблемы распределенных систем - сбои и отказы, ненадежные сети, ненадежные часы, знание/истина/ложь
- Согласованность и консенсус
Часть 3 состоит из глав:
- Пакетная обработка
- Потоковая обработка
- Будущее информационных систем P.S. Книга просто превосходна для тех, кому приходится проектировать/разрабатывать системы, которые хранят/обрабатывают данные :)