Разбираемся в букавках ACID.
00:00 Вступление, неуклюжие попытки пошутить
00:59 Транзакция, транзакционная база данных
01:17 Расшифровка ACID
01:40 Atomicity (атомарность)
02:46 Consistency (консистентность)
05:19 Isolation (изоляция)
06:16 Read committed
08:14 Snapshot isolation (repeatable read)
09:11 Демонстрация отличий read committed и repeatable read на примере MySQL
16:06 MVCC
16:26 Проблема lost update
18:36 Durability
Разбираемся в букавках ACID.
00:00 Вступление, неуклюжие попытки пошутить
00:59 Транзакция, транзакционная база данных
01:17 Расшифровка ACID
01:40 Atomicity (атомарность)
02:46 Consistency (консистентность)
05:19 Isolation (изоляция)
06:16 Read committed
08:14 Snapshot isolation (repeatable read)
09:11 Демонстрация отличий read committed и repeatable read на примере MySQL
16:06 MVCC
16:26 Проблема lost update
18:36 Durability
1. На 17:18 я сказала, что мы не можем прочитать значение, так как установлена эксклюзивная блокировка. На самом деле значение можно прочитать простым SELECT, но для установки другого exclusive lock или shared lock придется подождать.
2. На 18:50 я говорю, что разные виды S3 имеют разную Durability, но судя по всему количество девяток в S3 не зависит от того есть ли риск полной потери данных из-за их расположения в одной availability zone (One Zone-IA), видимо эти риски уже заложены, а распределение данных по разным AZ в S3 Standard и других тарифах выдается в виде дополнительной гарантии (но это уже больше вопрос маркетинга Амазона).
3. Не неточность, но то, что я не упомянула в видео: абсолютно любая операция в транзакционной СУБД - это транзакция, даже если вы явно не используете start transaction/commit. Любой запрос, чтения или записи - это транзакция. Явно использовать синтаксис start transaction/commit нужно, когда вы хотите сделать несколько операций в одной транзакции.