Аномалии транзакций и их связь с уровнями изоляции
Хороший refresher по аномалиям, возникающим при выполнении транзакций в многопоточной среде. Автор верно замечает, что понимание уровней изоляции транзакций приходит только после осознания аномалий, которые могут возникнуть.
Лично у меня понимание уровней изоляции сформировалось именно после детального разбора аномалий в DDIA (она же «книга с кабанчиком»). Когда понятна сама проблема, гораздо легче вникнуть в механизмы её решения.
А ещё в статье есть красивые схемы и классное саммари по уровням изоляции.
⭐️ Интересные идеи
➡️ Мир был бы намного проще, если бы мы могли выполнять все транзакции последовательно. В принципе, это возможно, но производительность такого решения была бы ужасной.
➡️ Всего три транзакции могут генерировать шесть возможных последовательностей выполнения (3! = 6). Число вариантов растёт экспоненциально, поэтому чем выше OLTP-нагрузка в системе, тем выше вероятность возникновения аномалий.
➡️ Write Skew — аномалия, о которой часто незаслуженно забывают. А ведь она довольно интересная: транзакции читают одни и те же данные и на их основе выполняют изменения, что приводит к конфликтам записи.
Приятного чтения!
// Понравился пост? Ставь 💛
// Есть классный материал? Пришли ссылку в комментах
#programming@tech_fit
➖➖➖➖➖➖➖➖➖➖➖
📝 @tech_fit
Post #15
345