Изоляции транзакций для собеса в IT и как это спасет тебя(тотальный гайд, которого нигде больше нет)
Вставка
- Опубліковано 28 лип 2024
- Telegram post: t.me/koduryem/22
Изоляции Транзакций. Isolation Levels.
Всем привет, друзья! Сегодня поговорим про уровни изоляций транзакций в базах данных. Одна из самых популярных тем на интервью во всем мире, но которая разбросана поверхностно кусками по интернету и недостаточно полно освещена. Мы попробуем это исправить, подробно обсудим и забрейнштормим все вопросы, процессы, варианты и аномалии, которые могут возникать. Где и как их использовать. Какие есть способы их реализаций и какие есть исследования, которые могут сделать их еще производительнее. Сделаем то, чего еще никто не делал. Остальным остается только копировать! Это будет легко, интересно и поставит вас на 100 уровней выше! Но, мы на этом не остановимся, а пойдем еще дальше и в следующем видео разберем все эти случаи на практике! Поэтому, stay tuned и всем приятного просмотра!
Telegram post: t.me/koduryem/22
Telegram: t.me/koduryem
Leetcode: leetcode.com/idfumg
GitHub: github.com/idfumg
Gists: gist.github.com/idfumg
0:00 Болтаю об жизни
3:45 ACID (АСИД :) )
5:23 Transaction (Транзакция)
7:36 Isolation (Изоляция)
10:57 Почему несколько уровней?
12:41 Phenomenon (Феномен)
14:53 Lost Update (Потерянное обновление)
20:46 Missing or Double Read (Потерянное или двойное чтение)
25:33 Dirty Read (Грязное чтение)
30:03 Non-Repeatable Read (Не повторяющееся чтение)
35:31 Phantom Read (Фантомное чтение)
41:43 Write-Skew #0 Anomaly
48:23 Write-Skew #1 Anomaly
54:37 Write-Skew #2 Anomaly
59:20 Read-Skew Anomaly
1:10:45 Isolation Level Types (Типы уровней изоляций)
1:11:24 Read Uncommitted
1:12:02 Read Committed
1:14:35 Repeatable Read
1:19:58 Serializable
1:24:29 Advantages and Disadvantages (Плюсы и минусы)
1:25:52 How to choose? (Как выбрать?)
1:30:12 Nuances with Read Committed (Ньюансы с Read Committed)
1:32:02 Nuances with Serializable (Ньюансы с Serializable)
1:44:15 SSI Performance (Serializable Snapshot Isolation Performance)
1:44:19 Concurrency Control Types (Виды контроля Конкарренси)
1:46:51 Isolation Levels are not always an answer (Уровни Изоляций не всегда решают)
#isolation #isolation_levels #transaction #transaction_isolation_levels #programming #database #interview #job #backend #developer #изоляция #уровни_изоляции #транзакции #изоляция_транзакций #базы данных #бд #интервью #работа #собес #собеседование #бэкенд #разработка - Наука та технологія
Первый человек, кто смог нормально объяснить про изоляции с кучей примеров. Спасибо)
Топ, спасибо за такой всеобъемлющий разбор!
Много кто будет смотреть. Продолжайте, сэр! Мало специфического контент, спасибо за труд
Спасибо за создание такого контента. Здорово, что столько полезного можно узнать в рамках одного видео.
Отличный, структурированный контент. Почитал кабанчика, и полирнул этим видео.
Братуха ты лучший, реально пушечный разбор, всё четко, ясно, понятно. От души!
Спасибо)
Очень хороший контент, очень подробно, схемы супер, доходчиво и понятно!
Спасибо за такой крутой контент!
Крутой контент, супер полезно. Мидл - синьёр знать обязательно, если хочешь залететь на 300К=)
Очень интересно было смотреть видео. Спасибо за пояснения. ценная информация и желаю продвижения каналу. Хочется больше практики на каких-то реальных примерах и того, как можно избежать приведенных здесь ситуаций, как выработать системный подход к использованию уровня изоляций или же локов
🎉 реально удачныьй разбор и подача материала!! Голова просто не успевае впитываеть ..😊 очень нужный контент. Продолжайте. Лайк и подписка
Крутой гайд, досмотрел до конца)
Спасибо за проделанную работу! Хорошая подача, интересно послушать, и освежить знания =)
Большое спасибо :)
Это конечно заняло у меня 4 захода, но супер полезно. Хорошо что видео длинное. Всё в одном месте, это хорошо. Спасибо!
Спасибо за ваш труд!
Спасибо за контент!
Как раз готовлюсь к собесу, и это реально очень хорошо, спасибо!
Очень круто! спасибо!
Продолжай) интересно
Спасибо, отличный разбор
Спасибо тебе. Все понятно.
Большое спасибо
Период дыхания в 1час 52 минуты несовместим с жизнью. Из этого следует, что ты знатный звездобол.
дай бог тебе здоровья!!!
Хорошая работа!
Сможете сделать такое же подробное видео о SOLID принципах? Спасибо
1:27:22 дошел, пишу)) Спасибо огромное за твой труд! Очень классно все разжевал
Дошел до How to choose. Конспектирую дальше.
Я дошёл "до сюда)"(1:26:20) спасибо тебе огромное за видос
Классно, спасибо!
Пожалуйста :)
круто ! успехов в развитии канала
Спасибо :)
офигенно
в поддержку за транзяшку!
Спасибо :)
Привет.
Спасибо за работу. Очень интересное видео.
Пара технических вопросов по формату.
1. Есть ли где-то пошареный excalidraw файл презентации?
2. Разные слои это фишка Excalidraw+, или есть и в бесплатной версии? (во время презентации слева. Например "7. Non-Repeatable Read")
3. Курсор-указатель, с красной временной обводкой, при нажатии ЛКМ, это как сделано?
Отличнное видео! Но есть пара замечаний:
1) read uncommitted всеже от одной аномалии защищает - lost update (если верить Wikipedia)
2) snapshot - этот термин более уместен в отношении repeatable read, а не к read commited (опять же из Wikipedia)
Ты немного запутался. Не верь вики и проверь сам в следующем видео. И посмотри ещё видео про concurrency control. Про снэпшот тоже - постарайся не использовать вики как first source of truth. И старайся, когда слово слышишь, учитывать контекст и его смысл, назначение. Он может меняться в разных контекстах. Это важно. В видево я ещё говорил про SI и SSI. Посмотри, какие это уровни.
спасибо
1:27:23 полёт нормальный!
Лацк за южный парк
Лайк и сабскрайб 👍
Я досмотрел до 1:27:33 если что, все круто! :))
Спасибо большое :)
Вопрос - а как может изменить значение ноды перед, если мы ее залочили(shared lock)?
Другая транзакция будет ждать, пока первая не отпустить блокировку.
Это я про Missing or Double Read
Щикагно
1:27 - отвечаю на вопрос - доходят :)
подождём видео с практикой применения... проблемы понятны, как их решать не очень.
Привет! Через одно видео как раз пообсуждаем основные паттерны, которые плюс минус варьируются. Я решил сильно видосы не нагружать сразу всем подряд поверхностно, а постепенно идти. Чтобы потом можно было быстро открыть и вспомнить все или попробовать.
Я дошел до того момента, не волнуйся)
пропустил пару тем пока, но тоже дошел до 1:27:00 ))
Мы в следующем видео посмотрим их все прямо на практике с реальным docker+pg. Чтобы каждый потыкать мог. А потом будет интересное видео как избегать разного рода таких проблем и не только в бд + практика. Stay tuned :)
Собственно вопрос: почему вы коснулись только 4х стандартных аномалий при объяснении уровней изоляции? просто интересно на каком уровне например не возможна Lost Update?
Привет. В видео не только их четыре, а много других. Про лост апдейт - там тоже есть описание, когда можно защититься. В видео по практике мы пытаемся проверить это. В целом, эта аномалия может иметь разные формы и не всегда изоляция защитит. В последнем видео про concurrency control есть и другие способы решения этой проблемы. Думаю, тебе оно может тоже понравиться!
@@koduryem Гуд, спасибо за оперативный ответ))
Привет оратору на 1:27:00
а что за локи, про которые ты постоянно говоришь? и без примеров в коде плохо воспринимается.
Привет! В следующем видео вместе все попробуем прямо в консоли потыкать.
@@koduryem ок, товарищ Пушкин.
Сдох на 500 странице книги с кабанчиком, сейчас смотрю это видео. Собираюсь пройти открытые курсы для dev from postgresql. Но до сих пор понять не могу зачем мне все это. Я ведь простой свитчер работающий qa automation😂. Засосало)))
Я ее когда прочитал, понял, что она оставляет дохрена открытых вопросов и сложно использовать. Типа вроде понятно, но куча мест, где чуть влево и вправо и хз уже. Но, енивей, очень хороша все равно и видно громадные усилия автора :)
По крайней мере мозги вправляет. После нее фраза "раз мы хреново пишем монолиты, то почему кажется, что сможем хорошо микросервисы писать." Кажется менее смешной и более грустной.
@@grigorii9019 не говори :)
1:27:26
я дошел
я дошел до 1:27:25))
1:27 - продолжаю смотреть, правда парочку аномалий пропустил, т.к. всё равно забудется через день
Да, забывается. Важно помнить не детали, а принципы. Тогда можно быстро подсмотреть, когда нужно.
используй для этих целей интервальное повторение и ничего не забудешь, в течение месяца повторяй. Для этих целей есть anki - создаешь карточки и учишь. Набросай множество тем, выдели час - полтора времени для ежедневного использования. Потом на уровне автоматизма это всё рассказывать будешь, наравне с владением языком
Всё классно, просто ваш контент не совсем для новичков, поэтому люди видимо не знают что написать)
Возможно, конечно, стоит миксовать с темами по-проще. Енивей, спасибо большое за коммент ❤️
@@koduryem Я вот новичек, по факту, учусь только основам всего, но вижу это видео и понимаю, что совсем скоро оно мне понадобиться и сохраняю его.
Я дошел до 1.5 часов😂.
Теперь в случае чего сможешь быстро найти, отмотать и вспомнить :)
ты не должен казаться умней интервьювера, не возьмут на работу).
зачем на работу идти вообще? Сейчас столько интересных хакатонов по всему миру. Изучи различные темы и сделай свой проект, там и единомышленников в процессе найдешь, сейчас нет смысла работать, труд свой ты отдаешь навсегда, с его помощью зарабатывают, а ты после ухода ничего не получаешь. Тем более сейчас очень помогают в этом генеративные сети, если ты усидчивый, то сможешь сделать чудесные вещи. Набираешь с таких видео базовую информацию, фиксируешь темы, а потом придумываешь ситуации и описываешь их генеративной сетке, так обучаешься очень быстро