Skip to content
Eugine Blikh edited this page Aug 10, 2017 · 2 revisions

Методы использования СУБД в интернет-приложениях, Техносфера Mail.Ru, 2014 г.

Курс лекций разделен на 4 части. В конце каждой части проводится коллоквиум.

Структуры данных и алгоритмов для двухуровневой памяти

  1. Классические алгоритмы организации даных для двухуровневой памяти (1)

    • B-деревья
    • Инвертированные списки
    • Многопроходная сортировка слиянием
    • Стоимостная модель DAM

    Литература:

  2. Современные специализированные алгоритмы хранения данных в двухуровневой памяти (2)

    • Понятие cache-oblivious алгоритма
    • Базовые cache-oblivious алгоритмы
    • Понятие write amplification
    • Фрактальные деревья
    • LSM деревья
    • Bloom фильтры

    Домашнее задание: Реализовать библиотеку для хранения данных на диске.

    Литература:

  3. Кэширование как механизм повышения эффективности системы (3)

    • Понятие online алгоритмов
    • Кэширование
    • Алгоритм FIFO
    • Алгоритм LRU
    • Алгоритм LFD
    • Проблема конистентности кэша
    • Алгоритм RCU
    • Протокол MESI
    • Проблема холодного старта

    Домашнее задание: Реализовать LRU/midpoint insertion cache для библиотеки хранения данных на диске.

    Литература:

Основы устройства СУБД

  1. Принципиальная схема СУБД (4)

    • Сетевая подсистема
    • Разбор и оптимизация запросов
    • План выполнения запроса
    • Управление страницами
    • Управление блокировками
    • Журналирование

    Домашнее задание: Реализация конкурентного доступа к данным с использованием библиотеки хранения данных на диске.

    Литература:

  2. Свойства транзакции, консистентность данных и модели консистентности данных (5)

    • Принцип двойной записи
    • Запрет на исправления
    • Семантика и допустимость овердрафта в интернет-приложениях
    • Понятие истории изменений
    • Транзакции в распределённых системах
    • Виды аномалий при конкурентном доступе к данным
    • Пессимистичные блокировки
    • 2PL теорема

    Литература:

    • Database Systems. The Complete Book by Ullman, Widom ..
    • Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery by Weikum, Vossen
  3. Управление конкурентным доступом к данным на основе иерархии блокировок (6)

    • Иерархические блокировки
    • Специальные блокировки
    • Дедлоки
    • Приоритеты локов
    • Понятие hot spot
    • Алгоритмы поиска дедлоков
    • Понятие насыщения системы массового обслуживания в применении к транзакционной системе

    Литература:

  4. Управление конкурентным доступом к данным на основе временных меток (7)

    • Понятие оптимистичного управления транзакциями
    • Временные метки
    • Правила установки меток
    • Протокол многоверсионного управления транзакциями

    Литература:

  5. Проблемы физического размещения данных при двухуровневом хранении (8)

    • Фрагментация
    • Управление разделами
    • Назначение сегментов и экстентов
    • UNDO/REDO логирование
    • Восстановление после сбоя
    • Управление кэшем страниц
    • Стратегии Steal/No Steal

Масштабирование и высокая доступность

  1. Автоматизация роста распределённой системы (9)

    • Принцип эластичности
    • Шардинг
    • Консистентное хэширование
    • Алгоритм SUMBUR

    Литература:

  2. Модели слабой консистентности в специализированных приложениях, CAP теорема и протокол 2PC (10)

    • Резервирование отелей и авиалиний
    • Корзина покупок пользователя
    • Последовательные коммуницирующие процессы и состояние распределённой системы
    • Виртуальная синхрония

    Литература:

  3. Очереди, принципы и приёмы обработки очередей (11)

    • Задача банковского перевода
    • Очереди как средство обеспечения высокой доступности системы и балансировки нагрузки

    Литература:

  4. Репликация, разрешение конфликтов и векторное время. (12)

    • Принципы работы асинхронной репликации
    • Задачи решаемые семи-синхронной и синхронной репликациейэ
    • Включение и исключение узлов из распределённой реплицированной системы без введения единой точки отказа
    • Мульти-мастер репликация и понятие репликационного конфликта

    Литература:

  5. Консистентность распределённого ДКА, Paxos и Raft (13)

    • Paxos: разбор алгоритма
    • Multi-Paxos
    • Raft

    Литература:

  6. Понятие сбоя и принципы восстановления после сбоя (14)

    • Оценка надёжности системы: MTTR и MTBF
    • Причины и частота сбоя
    • Оценка экономической целесообразности программных и аппаратных решений в контексте вероятности сбоя
    • Протокол Gossip

    Литература:

Современные тенденции развития СУБД: NoSQL и NewSQL

  1. Обзор различных моделей данных СУБД. (15)

    • Модель сущность-связь
    • Иерархическая модель
    • Реляционная модель
    • Сетевая модель
    • Проблемы разнообразия, скорости изменения и общего объёма данных

    Литература:

  2. Модели данных в NoSQL. (16)

    • Достоинства и недостатки реляционной модели для работы с данными в Интернет
    • Модель данных ключ-значение
    • Модель BigTable
    • Различия между документом и объектом
    • Понятие агрегата хранения
    • Управление схемой данных
    • Компромисс между консистентностью и производительностью
    • Конкурентный доступ к данным в клиент-серверной и полностью распределённой архитектуре
    • Пример графовых задач в РСУБД

    Домашнее задание: Реализация библиотеки типовых операций с графом на основе реляционной СУБД (MySQL/PostgreSQL/etc).

    Литература