Как и зачем MVCC мешает нам пользоваться базой данных и почему это не плохо
Тезисы
Несмотря на распространение различных NoSQL решений для хранения данных в последние годы, реляционные базы данных остаются популярным выбором среди разработчиков из-за своей универсальности и предсказуемости. Большинство из них следуют принципам ACID, который дает нам определенные гарантии. Однако сделать так, чтобы БД им соответствовала, не так-то просто, и мы рассмотрим один из подходов к этому — MVCC. Иногда его работа приводит к неожиданным сайд-эффектам, и в докладе мы рассмотрим несколько примеров.

В качестве примеров я буду использовать PostgreSQL, но MVCC работает одинаково практически везде, так что адаптировать новые знания к своей любимой БД будет довольно просто. Доклад будет полезен как начинающим, так и продвинутым бэкэндерам.

Слушатели узнают больше о том, как работают базы данных "под капотом", на примере реализации изоляции транзакций. Это полезно на практике (так как иногда этот механизм может сыграть злую шутку), легко переносится на другие СУБД (механизм не уникален) и, наконец, просто интересно!
Несмотря на распространение различных NoSQL решений для хранения данных в последние годы, реляционные базы данных остаются популярным выбором среди разработчиков из-за своей универсальности и предсказуемости. Большинство из них следуют принципам ACID, который дает нам определенные гарантии. Однако сделать так, чтобы БД им соответствовала, не так-то просто, и мы рассмотрим один из подходов к этому — MVCC. Иногда его работа приводит к неожиданным сайд-эффектам, и в докладе мы рассмотрим несколько примеров.

В качестве примеров я буду использовать PostgreSQL, но MVCC работает одинаково практически везде, так что адаптировать новые знания к своей любимой БД будет довольно просто. Доклад будет полезен как начинающим, так и продвинутым бэкэндерам.

Слушатели узнают больше о том, как работают базы данных "под капотом", на примере реализации изоляции транзакций. Это полезно на практике (так как иногда этот механизм может сыграть злую шутку), легко переносится на другие СУБД (механизм не уникален) и, наконец, просто интересно!
Видеозапись доклада
Информация о спикере
Дмитрий Цепелев
Backend Engineer, Злые марсиане
  • Программирую бэкэнды на Ruby уже лет 10;
  • Активно участвую в жизни open–source сообщества — коммичу в крупные проекты и поддерживаю парочку своих библиотек;
  • Регулярно выступаю и пишу статьи: преимущественно про Ruby, базы данных и GraphQL.
  • Дмитрий Цепелев
    Backend Engineer, Злые марсиане
    • Программирую бэкэнды на Ruby уже лет 10;
    • Активно участвую в жизни open–source сообщества — коммичу в крупные проекты и поддерживаю парочку своих библиотек;
    • Регулярно выступаю и пишу статьи: преимущественно про Ruby, базы данных и GraphQL.
Все доклады секции