Distributed Systems

System Design. Подготовка к сложному интервью - Глава 7 - Проектирование генератора уникальных идентификаторов в распределенных системах

System Design. Подготовка к сложному интервью - Глава 7 - Проектирование генератора уникальных идентификаторов в распределенных системах

Переводы: EN

Генерация уникального идентификатора кажется простой задачей, но не в высоконагруженных распределенных системах!

Эта тема состоит из:

  • Понимание требований и почему это сложная задача
  • Возможные решения:
    • Репликация с несколькими мастерами
    • Универсальный уникальный идентификатор (UUID)
    • Сервер билетов
    • Подход Twitter SNOWFLAKE (похоже, что он наилучший!)
  • Подробности:
    • Штамп времени
    • Номер последовательности
  • Другие вопросы
    • Синхронизация часов
    • Настройка длины секции
    • Высокая доступность

Эти пункты раскрыты в очень интересной главе 7 книги:

“System Design. Подготовка к сложному интервью” Алекса Сюй. Оригинал: “System Design Interview – An insider’s guide” by Alex Xu

System Design. Подготовка к сложному интервью - Глава 6 - Проектирование хранилища типа Ключ-Значение

System Design. Подготовка к сложному интервью - Глава 6 - Проектирование хранилища типа Ключ-Значение

Переводы: EN

Дизайн хранилища типа Ключ-Значене состоит из понимания следующих тем:

  • Что мы хотим от хранилища Ключ-Значение?
  • Односерверное хранилище Ключ-Значение
  • РАСПРЕДЕЛЕННОЕ хранилище Ключ-Значение:
    • Теорема CAP
    • Реальные компромиссы для распределенных систем
  • Системные компоненты:
    • Партиционирование данных
    • Репликация данных
    • Консистентность
    • Разрешение неконсистентности: Версии
    • Обработка всех типов сбоев: Обнаружение сбоев, Обработка ВРЕМЕННЫХ сбоев, Обработка ПОСТОЯННЫХ сбоев, Устранение сбоев в работе центра обработки данных
  • Схема архитектуры системы
  • Путь записи
  • Путь чтения

Эти пункты раскрыты в очень интересной главе 6 книги: