Изоляции транзакций для собеса в IT и как это спасет тебя(тотальный гайд, которого нигде больше нет)

Sdílet
Vložit
  • čas přidán 28. 07. 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 #изоляция #уровни_изоляции #транзакции #изоляция_транзакций #базы данных #бд #интервью #работа #собес #собеседование #бэкенд #разработка
  • Věda a technologie

Komentáře • 79

  • @stalkerandrei9984
    @stalkerandrei9984 Před 3 měsíci +10

    Первый человек, кто смог нормально объяснить про изоляции с кучей примеров. Спасибо)

  • @hhgforfhuv
    @hhgforfhuv Před 2 dny

    Топ, спасибо за такой всеобъемлющий разбор!

  • @eazy_profit
    @eazy_profit Před 3 měsíci +4

    Много кто будет смотреть. Продолжайте, сэр! Мало специфического контент, спасибо за труд

  • @dashaermolich1733
    @dashaermolich1733 Před 3 měsíci +2

    Спасибо за создание такого контента. Здорово, что столько полезного можно узнать в рамках одного видео.

  • @Brodyaga30
    @Brodyaga30 Před 2 měsíci +1

    Отличный, структурированный контент. Почитал кабанчика, и полирнул этим видео.

  • @nostradamus_tech
    @nostradamus_tech Před 26 dny +1

    Братуха ты лучший, реально пушечный разбор, всё четко, ясно, понятно. От души!

  • @odoyevsky
    @odoyevsky Před 3 měsíci

    Очень хороший контент, очень подробно, схемы супер, доходчиво и понятно!

  • @vsaliyy
    @vsaliyy Před 3 měsíci +1

    Спасибо за такой крутой контент!

  • @firemanhood1526
    @firemanhood1526 Před měsícem +1

    Крутой контент, супер полезно. Мидл - синьёр знать обязательно, если хочешь залететь на 300К=)

  • @user-iq2st2el2d
    @user-iq2st2el2d Před 3 měsíci

    Очень интересно было смотреть видео. Спасибо за пояснения. ценная информация и желаю продвижения каналу. Хочется больше практики на каких-то реальных примерах и того, как можно избежать приведенных здесь ситуаций, как выработать системный подход к использованию уровня изоляций или же локов

  • @kostiantynjohanlanguedoc3155

    🎉 реально удачныьй разбор и подача материала!! Голова просто не успевае впитываеть ..😊 очень нужный контент. Продолжайте. Лайк и подписка

  • @dmitriyshevtsov1675
    @dmitriyshevtsov1675 Před 11 dny

    Крутой гайд, досмотрел до конца)

  • @RA-Foundation
    @RA-Foundation Před 3 měsíci +2

    Спасибо за проделанную работу! Хорошая подача, интересно послушать, и освежить знания =)

    • @koduryem
      @koduryem  Před 3 měsíci

      Большое спасибо :)

  • @ivantrubchaninov1844
    @ivantrubchaninov1844 Před měsícem

    Это конечно заняло у меня 4 захода, но супер полезно. Хорошо что видео длинное. Всё в одном месте, это хорошо. Спасибо!

  • @vova_dev
    @vova_dev Před 3 měsíci

    Спасибо за ваш труд!

  • @Sergey-we4ck
    @Sergey-we4ck Před 3 měsíci

    Спасибо за контент!

  • @Scarlett-hs9fd
    @Scarlett-hs9fd Před 3 měsíci +1

    Как раз готовлюсь к собесу, и это реально очень хорошо, спасибо!

  • @user-zp7pq5mb8w
    @user-zp7pq5mb8w Před 3 měsíci

    Очень круто! спасибо!

  • @v.demchenko
    @v.demchenko Před měsícem

    Продолжай) интересно

  • @IlyaDenisov
    @IlyaDenisov Před 3 měsíci

    Спасибо, отличный разбор

  • @user-bl3pq8ip3l
    @user-bl3pq8ip3l Před 4 dny

    Спасибо тебе. Все понятно.

  • @aghori267
    @aghori267 Před 3 měsíci

    Большое спасибо

    • @zex3920
      @zex3920 Před 3 měsíci

      Период дыхания в 1час 52 минуты несовместим с жизнью. Из этого следует, что ты знатный звездобол.

  • @Mihes22
    @Mihes22 Před 3 měsíci +1

    дай бог тебе здоровья!!!

  • @glebfadeev9782
    @glebfadeev9782 Před 3 měsíci

    Хорошая работа!

  • @alexei3366
    @alexei3366 Před 19 dny +1

    Сможете сделать такое же подробное видео о SOLID принципах? Спасибо

  • @Bankai_Kitetsu
    @Bankai_Kitetsu Před 3 měsíci

    1:27:22 дошел, пишу)) Спасибо огромное за твой труд! Очень классно все разжевал

  • @user-uv6pm4hs3o
    @user-uv6pm4hs3o Před 3 měsíci

    Дошел до How to choose. Конспектирую дальше.

  • @paulparker3664
    @paulparker3664 Před 12 dny

    Я дошёл "до сюда)"(1:26:20) спасибо тебе огромное за видос

  • @vova_dev
    @vova_dev Před 3 měsíci

    Классно, спасибо!

    • @koduryem
      @koduryem  Před 3 měsíci

      Пожалуйста :)

  • @AutomationCraft
    @AutomationCraft Před 3 měsíci

    круто ! успехов в развитии канала

  • @denis1999ish
    @denis1999ish Před měsícem

    офигенно

  • @AntonPh-wm4yr
    @AntonPh-wm4yr Před 3 měsíci

    в поддержку за транзяшку!

  • @stealthylama6846
    @stealthylama6846 Před 3 měsíci

    Привет.
    Спасибо за работу. Очень интересное видео.
    Пара технических вопросов по формату.
    1. Есть ли где-то пошареный excalidraw файл презентации?
    2. Разные слои это фишка Excalidraw+, или есть и в бесплатной версии? (во время презентации слева. Например "7. Non-Repeatable Read")
    3. Курсор-указатель, с красной временной обводкой, при нажатии ЛКМ, это как сделано?

  • @kostinaleksey
    @kostinaleksey Před 2 měsíci

    Отличнное видео! Но есть пара замечаний:
    1) read uncommitted всеже от одной аномалии защищает - lost update (если верить Wikipedia)
    2) snapshot - этот термин более уместен в отношении repeatable read, а не к read commited (опять же из Wikipedia)

    • @koduryem
      @koduryem  Před 2 měsíci

      Ты немного запутался. Не верь вики и проверь сам в следующем видео. И посмотри ещё видео про concurrency control. Про снэпшот тоже - постарайся не использовать вики как first source of truth. И старайся, когда слово слышишь, учитывать контекст и его смысл, назначение. Он может меняться в разных контекстах. Это важно. В видево я ещё говорил про SI и SSI. Посмотри, какие это уровни.

  • @TorinoSG
    @TorinoSG Před 3 měsíci

    спасибо

  • @zion4d
    @zion4d Před 3 měsíci

    1:27:23 полёт нормальный!

  • @Apranzo
    @Apranzo Před 3 měsíci

    Лацк за южный парк

  • @andreip9378
    @andreip9378 Před 3 měsíci

    Лайк и сабскрайб 👍

  • @user-yu8kx2mo7k
    @user-yu8kx2mo7k Před 3 měsíci +1

    Я досмотрел до 1:27:33 если что, все круто! :))

    • @koduryem
      @koduryem  Před 3 měsíci

      Спасибо большое :)

  • @vladimireliseev7602
    @vladimireliseev7602 Před 3 měsíci

    Вопрос - а как может изменить значение ноды перед, если мы ее залочили(shared lock)?
    Другая транзакция будет ждать, пока первая не отпустить блокировку.
    Это я про Missing or Double Read

  • @shananboiara
    @shananboiara Před 3 měsíci

    Щикагно

  • @stasian11
    @stasian11 Před 3 měsíci

    1:27 - отвечаю на вопрос - доходят :)

  • @GuruNemo
    @GuruNemo Před 3 měsíci

    подождём видео с практикой применения... проблемы понятны, как их решать не очень.

    • @koduryem
      @koduryem  Před 3 měsíci +1

      Привет! Через одно видео как раз пообсуждаем основные паттерны, которые плюс минус варьируются. Я решил сильно видосы не нагружать сразу всем подряд поверхностно, а постепенно идти. Чтобы потом можно было быстро открыть и вспомнить все или попробовать.

  • @halfbelf5923
    @halfbelf5923 Před 11 dny

    Я дошел до того момента, не волнуйся)

  • @mvrschgn
    @mvrschgn Před 3 měsíci

    пропустил пару тем пока, но тоже дошел до 1:27:00 ))

    • @koduryem
      @koduryem  Před 3 měsíci +1

      Мы в следующем видео посмотрим их все прямо на практике с реальным docker+pg. Чтобы каждый потыкать мог. А потом будет интересное видео как избегать разного рода таких проблем и не только в бд + практика. Stay tuned :)

  • @viktorros431
    @viktorros431 Před 2 měsíci

    Собственно вопрос: почему вы коснулись только 4х стандартных аномалий при объяснении уровней изоляции? просто интересно на каком уровне например не возможна Lost Update?

    • @koduryem
      @koduryem  Před 2 měsíci +1

      Привет. В видео не только их четыре, а много других. Про лост апдейт - там тоже есть описание, когда можно защититься. В видео по практике мы пытаемся проверить это. В целом, эта аномалия может иметь разные формы и не всегда изоляция защитит. В последнем видео про concurrency control есть и другие способы решения этой проблемы. Думаю, тебе оно может тоже понравиться!

    • @viktorros431
      @viktorros431 Před 2 měsíci

      @@koduryem Гуд, спасибо за оперативный ответ))

  • @Sixez-ib2dz
    @Sixez-ib2dz Před 3 měsíci

    Привет оратору на 1:27:00

  • @GuruNemo
    @GuruNemo Před 3 měsíci

    а что за локи, про которые ты постоянно говоришь? и без примеров в коде плохо воспринимается.

    • @koduryem
      @koduryem  Před 3 měsíci

      Привет! В следующем видео вместе все попробуем прямо в консоли потыкать.

    • @GuruNemo
      @GuruNemo Před 3 měsíci

      @@koduryem ок, товарищ Пушкин.

  • @grigorii9019
    @grigorii9019 Před 2 měsíci

    Сдох на 500 странице книги с кабанчиком, сейчас смотрю это видео. Собираюсь пройти открытые курсы для dev from postgresql. Но до сих пор понять не могу зачем мне все это. Я ведь простой свитчер работающий qa automation😂. Засосало)))

    • @koduryem
      @koduryem  Před 2 měsíci +1

      Я ее когда прочитал, понял, что она оставляет дохрена открытых вопросов и сложно использовать. Типа вроде понятно, но куча мест, где чуть влево и вправо и хз уже. Но, енивей, очень хороша все равно и видно громадные усилия автора :)

    • @grigorii9019
      @grigorii9019 Před 2 měsíci

      По крайней мере мозги вправляет. После нее фраза "раз мы хреново пишем монолиты, то почему кажется, что сможем хорошо микросервисы писать." Кажется менее смешной и более грустной.

    • @koduryem
      @koduryem  Před 2 měsíci

      @@grigorii9019 не говори :)

  • @genarazmakhnin3336
    @genarazmakhnin3336 Před 3 měsíci

    1:27:26

  • @andreyko_o9014
    @andreyko_o9014 Před 10 dny

    я дошел

  • @user-du3uv6jc5x
    @user-du3uv6jc5x Před 3 měsíci

    я дошел до 1:27:25))

  • @vermilinguas
    @vermilinguas Před 3 měsíci

    1:27 - продолжаю смотреть, правда парочку аномалий пропустил, т.к. всё равно забудется через день

    • @koduryem
      @koduryem  Před 3 měsíci +1

      Да, забывается. Важно помнить не детали, а принципы. Тогда можно быстро подсмотреть, когда нужно.

    • @user-iq2st2el2d
      @user-iq2st2el2d Před 3 měsíci

      используй для этих целей интервальное повторение и ничего не забудешь, в течение месяца повторяй. Для этих целей есть anki - создаешь карточки и учишь. Набросай множество тем, выдели час - полтора времени для ежедневного использования. Потом на уровне автоматизма это всё рассказывать будешь, наравне с владением языком

  • @user-su5by2uj6q
    @user-su5by2uj6q Před 3 měsíci +1

    Всё классно, просто ваш контент не совсем для новичков, поэтому люди видимо не знают что написать)

    • @koduryem
      @koduryem  Před 3 měsíci +1

      Возможно, конечно, стоит миксовать с темами по-проще. Енивей, спасибо большое за коммент ❤️

    • @mirfees260
      @mirfees260 Před 3 měsíci

      @@koduryem Я вот новичек, по факту, учусь только основам всего, но вижу это видео и понимаю, что совсем скоро оно мне понадобиться и сохраняю его.

  • @grigorii9019
    @grigorii9019 Před 2 měsíci

    Я дошел до 1.5 часов😂.

    • @koduryem
      @koduryem  Před 2 měsíci

      Теперь в случае чего сможешь быстро найти, отмотать и вспомнить :)

  • @igor5379
    @igor5379 Před 3 měsíci +5

    ты не должен казаться умней интервьювера, не возьмут на работу).

    • @user-iq2st2el2d
      @user-iq2st2el2d Před 3 měsíci +1

      зачем на работу идти вообще? Сейчас столько интересных хакатонов по всему миру. Изучи различные темы и сделай свой проект, там и единомышленников в процессе найдешь, сейчас нет смысла работать, труд свой ты отдаешь навсегда, с его помощью зарабатывают, а ты после ухода ничего не получаешь. Тем более сейчас очень помогают в этом генеративные сети, если ты усидчивый, то сможешь сделать чудесные вещи. Набираешь с таких видео базовую информацию, фиксируешь темы, а потом придумываешь ситуации и описываешь их генеративной сетке, так обучаешься очень быстро