Серебряной пули нет: как СУБД балансируют скорость и надежность через Write-Ahead Logging?

Базы данных и системы хранения

PostgreSQL
Отказоустойчивость
MySQL (MariaDB, Percona Server)
Хранилища

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Разработчики и архитекторы систем хранения данных, разработчики СУБД.

Тезисы

Обеспечение надежного сохранения данных и их восстановления после сбоев — ключевая задача систем обработки данных. Любая ошибка записи может привести к потере транзакций или повреждению данных, а масштабные системы требуют при этом высокой производительности и быстрой доступности после сбоя. Мы в OtterBrix тоже столкнулись с задачей проектирования собственного WAL, и довольно быстро выяснили, что универсального рецепта здесь не существует.

Проектирование WAL — это поиск инженерного компромисса между скоростью записи, временем фиксации транзакций, временем восстановления после сбоя и надёжностью системы хранения. В зависимости от требований, для каждой отдельной СУБД этот компромисс будет решатся по-разному.

В докладе я покажу модель принятия решений при проектировании WAL на примере PostgreSQL, SQLite и DuckDB, а также расскажу, как в OtterBrix мы построили собственный WAL.

Михаил Федоренко

Open Source: OtterBrix

C++-разработчик, занимаюсь серверными и инфраструктурными системами обработки данных. Мейнтейнер фреймворка обработки данных OtterBrix.

Студент магистратуры ИТМО.

Видео

Другие доклады секции

Базы данных и системы хранения