Мартин Клеппман

Проектирование высоконагруженных приложений
Важнейшие принципы в основе надёжных, масштабируемых и сопровождаемых систем

Перевод в редакции
Тимура Фаизова и Софьи Должанской
Избранные главы 3, 5 и 8.

Спонсор оригинальной публикации: Scylla DB
Содержание
Глава 3. Хранение и извлечение данных. Часть 1
Структуры данных, которые наполняют вашу базу данных
Хэш-индексы
SST-таблицы и LSM-деревья
B-деревья

Глава 3. Хранение и извлечение данных. Часть 2
Сравнение B-деревьев и LSM-деревьев
Другие индексные структуры данных

Глава 3. Хранение и извлечение данных. Часть 3
Транзакционная обработка или аналитика?
Хранилище данных
Звезды и Снежинки: схемы для аналитики
Агрегация: Кубы данных и материализованные представления

Глава 3. Хранение и извлечение данных. Часть 4
Столбцово-ориентированное хранилище
Сжатие столбцов
Порядок сортировки в хранилище столбцов
Запись в столбцово-ориентированное хранилище
Заключение

Глава 5. Репликация баз данных
Лидеры и последователи
Проблемы с задержкой в репликации
Репликация с несколькими лидерами
Репликация без лидера
Заключение

Глава 8. Проблемы распределённых систем
Сбои и частичные отказы
Облачные вычисления и супервычисления
Ненадёжные сети
Сетевые сбои на практике
Обнаружение сбоев
Тайм-ауты и неограниченные задержки
Синхронные сети против асинхронных
Ненадёжные часы
Монотонные часы против часов истинного времени
Синхронизация часов и точность
Расчёт на синхронизированные часы
Паузы в процессе
Знание, истина и ложь
Истина определяется большинством
Византийские сбои
Модель системы и реальность
Заключение