Открытый урок: как на самом деле работают транзакции в Postgres | MVCC, уровни изоляции и блокировки
Java_Beginner
0:00 / 0:00
Открытый урок: как на самом деле работают транзакции в Postgres | MVCC, уровни изоляции и блокировки
705 просмотров · 2 месяца назад
Java_Beginner
1,02 тыс. подписчиков
705 просмотров · 2 месяца назад
Прошу прощения за звук, Егора почти не слышно...
В этом открытом уроке разбираю, как на самом деле работают транзакции в PostgreSQL и почему одного @Transactional недостаточно для защиты от проблем конкурентного доступа.
Поговорим не только о теории, но и о том, что реально происходит внутри PostgreSQL и Spring-приложений.
В уроке:
• Что такое MVCC и зачем PostgreSQL хранит несколько версий строк
• Почему читатели не блокируют писателей
• Dirty Read, Non-repeatable Read, Phantom Read, Lost Update и Write Skew
• READ COMMITTED, REPEATABLE READ и SERIALIZABLE в PostgreSQL
• Как работают снимки данных (snapshots)
• Строковые, табличные и индексные блокировки
• FOR UPDATE и FOR SHARE
• Почему SELECT может не видеть строку, а INSERT уже конфликтует по UNIQUE индексу
• Optimistic Locking (@Version) в Hibernate
• Pessimistic Locking (PESSIMISTIC_WRITE, PESSIMISTIC_FORCE_INCREMENT)
• Как выбирать стратегию блокировок для реальных задач
• Практические примеры на Spring Boot + PostgreSQL
Этот урок является частью моего подхода к менторингу Java Backend-разработчиков, где основной акцент делается не на запоминании аннотаций, а на понимании механизмов, которые стоят за ними.
Таймкоды:
00:00 Введение
05:25 MVCC и снимки данных
23:42 Аномалии конкурентного доступа
43:49 Уровни изоляции PostgreSQL
01:09:12 Optimistic Locking (@Version)
01:17:56 Pessimistic Locking
01:29:00 Как выбирать стратегию блокировок
01:31:08 Демонстрация
Наш канал в телеграмм https://t.me/Java_for_beginner_dev.
Мы не претендуем на правильность всего сказанного в видео, мы только учимся))
Знаете что-то лучше и готовы поделиться - добро пожаловать!
#PostgreSQL #Java #SpringBoot #Spring #Backend #MVCC #Hibernate #JPA #Database #Transactional