Роберт

Backend-разработчик
Пишу о программировании, музыке, книгах и жизни

Главная

Высоконагруженные приложения. Программирование, масштабирование, поддержка

Читал книгу в переводе от издательства "Питер", которое перевело название книги как "Высоконагруженные приложения". Заметим, что ни слова про высокую нагрузку по данным :) В остальном перевод вышел довольно хорошим.

О качестве книги говорит то, что после первых 2 глав я заказал себе бумажную копию книги и поставил рядом с 4 томиками Кнута, книжкой GoF и другими классическими книгами. Кстати, отдельно надо сказать про иллюстрации к каждой главе - они превосходны.

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

Книга разбита на три части и 12 глав:

  1. Основы информационных систем
  2. Распределенные данные
  3. Производные данные

Первая часть является вводной и состоит из глав:

  1. Надежные, масштабируемые и удобные в сопровождении системы
  2. Модели данных и языки запросов - SQL, NoSQL, Map Reduce, Cypher и SparQL
  3. Подсистемы хранения и извлечения данных - SSTables, LSM, B-Tree, Звезды и снежинки, столбцовое хранение данных
  4. Кодирование и эволюция - json, xml, thrift, protobuf, avro. Миграции данных :)

Вторая часть включает в себя главы:

  1. Репликация - синхронная/асинхронная, master/slave, master/master, no-master
  2. Секционирование - типа ключ/значение, по диапозонам ключе, сеционирование и репликация, секционирование и вторичные индексы, перебалансировка секций
  3. Транзакции - ACID/BASE, 2PL(two-phase locking), SSI (serializable snapshot isolation)
  4. Проблемы распределенных систем - сбои и отказы, ненадежные сети, ненадежные часы, знание/истина/ложь
  5. Согласованность и консенсус

Часть 3 состоит из глав:

  1. Пакетная обработка
  2. Потоковая обработка
  3. Будущее информационных систем P.S. Книга просто превосходна для тех, кому приходится проектировать/разрабатывать системы, которые хранят/обрабатывают данные :) 
Роберт Фатхуллин

Статья Роберт Фатхуллин

Web-разработчик