Тёмный

Введение в транзакции (Владимир Кузнецов) 

Sergey Nemchinskiy
Подписаться 360 тыс.
Просмотров 31 тыс.
50% 1

Опубликовано:

 

28 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 116   
@eugenstakhursky9604
@eugenstakhursky9604 4 года назад
Сергей был прав - на этом канале есть люди которым это интересно, спасибо Владимир! С удовольствием посмотрю продолжение!
@dmChanal1
@dmChanal1 4 года назад
блин, у человека талант классно рассказывать. давайте ему эфир почаще
@ПетрБугров-с4ы
@ПетрБугров-с4ы 4 года назад
Благодрю! На редкость четкая и понятная способность говорить о сложном доступно и по существу. Еще! :)
@GreatNorthernWar1700
@GreatNorthernWar1700 4 года назад
Слишком хороший контент) Даже не верится что он бесплатный)))
@rubik6169
@rubik6169 4 года назад
Замечательные темы поднимаете! Буду с нетерпением ждать продолжения
@pavelkostetskiy7561
@pavelkostetskiy7561 4 года назад
ого, не ожидал настолько качественного контента прямо с утра) спасибо)
@egos_ua
@egos_ua 3 года назад
уже на половине видео неудержался и поставил лайк. Найс, спасибо
@olehhusiev4271
@olehhusiev4271 3 года назад
Думаю где ж я его видел :) а, точно, соседний кабинет на военной 2, были времена :)
@EshkinKot1980
@EshkinKot1980 4 года назад
Сергей, огромное спасибо за ролики с Владимиром. Как-то пропустил появление роликов с ним, но зашел на канал и увидел целый плейлист, сразу настроение стало лучше.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
У меня их уже два с Володей :)
@romantsyupryk3009
@romantsyupryk3009 4 года назад
Жду вашего следующего видео. Спасибо вам.
@andreekzz
@andreekzz 4 года назад
Нужно больше информации. Чем быстрее тем лучше. Спасибо
@legomonsters6888
@legomonsters6888 4 года назад
Да, интересно я как раз сотрудник по работе с данными, так что послушаю с удовольствием✌️😉
@thomwhite4565
@thomwhite4565 4 года назад
Круто! Надо будет все видосы по бд у вас посмотреть! Благодарю
@paulbolhar921
@paulbolhar921 4 года назад
Жестка, очень вводно. Ждём продолжения)
@ВиталийСидякин-н6п
Сергей обычно говорит "Начнем от Адама и Евы". Так что данный ролик - именно о них :) Ждем продолжения...
@anatolyx1151
@anatolyx1151 4 года назад
Мужик, по чаще бы тебя видеть.
@Gook7Angel
@Gook7Angel 3 года назад
Все круто и стул и перфоратор
@Pewdew
@Pewdew 4 года назад
Дядя Сережа, оч интересно, зови дяядю Вову еще!)
@romantsyupryk3009
@romantsyupryk3009 4 года назад
Большое вам спасибо.
@antonzernov3702
@antonzernov3702 4 года назад
Потрясающая мотивация делать видео)) бухать с Сергеем)))
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
ага. В прошлый раз мы с вовкой выпили практически по литру. Я - виски, он - текилы... Так что ну его нахер такие пьянки
@antonzernov3702
@antonzernov3702 4 года назад
Надо же, мне тоже виски нравится, хоть что-то общее с Java разработчиком есть)))
@ni55an
@ni55an 4 года назад
Здесь Владимир бодрее, чем в предыдущих выпусках про БД
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-pFJ62vlZbls.html
@dsmenov
@dsmenov 4 года назад
Сразу видно, что вы в Люксофт работали. Слово в слово, это же спрашивают там на собеседовании.
@ЖумабекЖумабекович-д9ю
Здравствуйте всем у меня вопрос. Я попалнял тройку на 3 месяца прикладывал тройку экране спрашивает попалнят я прикладываю сбер карту снимают деньги а потом отказ транзакции и я поехал дальше ждала 2 дня деньги не возвращаются. .И начинается футбольный мячик отправляют банк из банка транспортной компании итоге жду до сих пор кто знает куда мне подъехать и позвонить.😶😶‍🌫️
@Livesms
@Livesms 4 года назад
Просьба/совет - если микрофон на столе (не петличка) то меньше стучать по столу ))) А то выходит бух-бух... 4:00
@me_000_xXx
@me_000_xXx 4 года назад
ну или делать бух-бух-бух ритмично и в такт)))
@Dmittry
@Dmittry 4 года назад
Это музыкальное сопровождение. Чтобы ютуб не забанил за авторские права.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
Учтем в следующий раз :)
@ВладимирКачетов
@ВладимирКачетов 4 года назад
С инстансами не очень понял. Можно ведь каждую транзакцию хранить в таблице для транзакций и просто менять ее статус на "реализована", когда юзер ее подтверждает. А для подтверждения сделать условие, чтоб на счету всегда была переводимая сумма плюс комиссия. Неужели для современного железа проблематично обслуживать такой механизм? Или я где-то туплю?
@ОлексійВискворкін
Дрель на фоне круто зашла 😁
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
да этот человек-дрель вообще достал
@Tpona
@Tpona 4 года назад
Спасибо!
@DimaVort
@DimaVort 4 года назад
Уделите пожалуйста в следующих выпусках внимание блокировкам. Их типы и простые наглядные примеры с объяснениями. А также взаимоблокировки. Спасибо.
@HowItWorks
@HowItWorks 4 года назад
Как то очень давно хотел устроится в один банк программистом. Пришел на собеседование. Задали ряд вопросов. Ну вроде норм. Потом на последок спросили "Сколько транзакций в день ты выполняешь?". Я ушел и больше никогда не ходил на собеседования в банки.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
ахахахаха
@tolik8
@tolik8 4 года назад
Я юмора не понял... что не так с вопросом? И почему больше не ходил в банки?
@RusFarFaz
@RusFarFaz 4 года назад
Владимир, в каком-то из видео вы ответили мне в комментарии и посоветовали книгу Клеппмана "Высоконагруженные системы", сейчас ее читаю, книга просто супер! Какие книги вы еще посоветуете читать? Спасибо
@oleksandrkireiev7628
@oleksandrkireiev7628 4 года назад
Первый )) Уже смотрю и лайк сходу. Начало по интонации звучит как признание в кругу анонимных алкоголиков - меня зовут ... и я разработчик программного обеспечения )
@oleksandrkireiev7628
@oleksandrkireiev7628 4 года назад
@@AlekseiKazantcev Чёй-то ?
@AlekseiKazantcev
@AlekseiKazantcev 4 года назад
@@oleksandrkireiev7628 Ты не первый кстати, автор видео первый, ти двоечник
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
В прошлом цикле я уже покаялся: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-MgQO5cRUNM0.html :)
@oleksandrkireiev7628
@oleksandrkireiev7628 4 года назад
@@vladymyrkuznietsov8815 точно - помню же когда то уже такое видел)
@Aticinsane
@Aticinsane 4 года назад
Спасибо! Жду продолжение. Пожелания: скрипящий стул очень отвлекает + не хватает петличного микрофона.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
микрофон должен скоро приехать. ждем
@gods3760
@gods3760 4 года назад
Если много инстансов одного приложения, то активный скажем пишет в поле БД что конкретный счет блокирован. Другой инстанс приложения читая из БД видит, что счет блокирован и не обрабатывает операцию,только разрешенные поля при блокировки.Владимир, верно понял суть?
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
Да, это один из вариантов. В реальности чуть сложнее. Обычно учет ведется по паттерну, известному нынче как Event Sourcing, а в 13 веке - как Double-entry bookkeeping :) Идея в том, что у нас есть счет, как сущность. На нем может быть остаток на начало цикла (дня). И лог (Leger) в котором записываются все транзакции: дебет-кредит. И реальный остаток на счету - он вычисляется, как сумма транзакций, в которых он принимает участие. Беда в том, что когда при проведении нашей операции мы сначала вычисляем остаток и на основе этого принимаем решение - можно ли проводить операцию - кто-то, кто быстрее нас, может провести свою операцию (например, снять все деньги). В результате мы можем уйти в минус. Это очень паскудный "феномен", называется write skew, который пробивает почти все уровни изоляции (об этом - позднее). Как вариант - перед началом операции мы проверяем счет, с которого снимаем, на предмет блокировки. Если все ок - то блочим его для всех других пользователей. По окончании операции - не забываем снимать блок.
@gods3760
@gods3760 4 года назад
@@vladymyrkuznietsov8815 Спасибо, ждем следующей части)
@piasteroluywerty5905
@piasteroluywerty5905 4 года назад
Ничего не понятно но ОООчень интересно.
@sayhellotoroy
@sayhellotoroy 4 года назад
:) посмотрим что из этого выйдет. Речь идет о read commit?
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
Блин, заяц с барабаном... :)
@me_000_xXx
@me_000_xXx 4 года назад
ахах)))в точку👌
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
@Byzantine 1 да, в этом цель :)
@ms_shifu7047
@ms_shifu7047 4 года назад
думал будет опять видос про notepad++ и для чего он нужен, ан нет, уже что-то интересное.
@yuriyfedoryshyn5206
@yuriyfedoryshyn5206 4 года назад
Дякую! З поверненням!!!
@alenka_mak
@alenka_mak 4 года назад
тема интереснейшая. Но изложение и картинки - на троечку :-(
@horlonangel
@horlonangel 4 года назад
Я бы сказал, что и на троечку не тянет...
@цензураговно
@цензураговно 4 года назад
Было интересно, но меня пугала мысль что я ничего не понимал. и только в конце видео меня отпустило, когда оказалось что понимать придется в следующих видео сегодня моя самооценка в минус не уйдет
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
Следующее будет тоже "разогревочное". А вот начиная с 4-й пойдет технопорно, типа различие 2PL и MVCC :)
@Tiertey
@Tiertey 4 года назад
Ну вот почему сразу не рассказать ..., шутка. :) Буду ждать продолжения, очень интересно :)
@mykolachadovych7863
@mykolachadovych7863 4 года назад
Спасибо
@sergem2794
@sergem2794 4 года назад
Агонь. Ещо!
@owl1891
@owl1891 4 года назад
Как-то информация, поступающая от человека в майке с надписью "Cheat" воспринимается неоднозначно 😁
@stan5214
@stan5214 4 года назад
На картинке к видео Сергей ☺️
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
А это именно то, что мы делаем: мы продаем то, что у нас есть, типа память, дисковое пространство, процессорное время за то, что нам надо, и пытаемся намухлевать на курсе ;)
@-boiadeiro-
@-boiadeiro- 4 года назад
забавный пример)
@MaksUsanin
@MaksUsanin 3 года назад
Я уже думал он скажет "Здраствуйте это все еще Сергей Немчинский" ))
@ruslangr4209
@ruslangr4209 4 года назад
По столу бить не надо
@Vittallii
@Vittallii 4 года назад
как всегда, на самом интрересном месте... когда след. серия?
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
на следующей неделе
@RomaxSinergy
@RomaxSinergy 4 года назад
*3:28** Смотреть отсюда*
@eugenemorozov9463
@eugenemorozov9463 4 года назад
Вспомнилась foxpro со своим Set exclusive on
@Макс-ы1п5н
@Макс-ы1п5н 3 года назад
Есть ощущение, что автор для храбрости, возможно, таки принял на грудь пару стопочек 🤏😜
@dixydo
@dixydo 4 года назад
Да? Да? Да!
@amr3184
@amr3184 4 года назад
1:51 У меня просьба к Владимиру не бейте по столу , не приятно слушать вашу речь при шумах скрипящего стула на котором вы сидите и ДАЖЕ прикосновение рук к столу довольно хорошо слышно и это *БОЛЬШЕ* *ВСЕГО* *БЕСИТ!* 12:41 кто то сверлить начал. По поводу баз данных и взаимодействия мастер сервера между бд и клиентом довольно интересная тематика.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
Стул и меня бесит, в следующий раз попрошу табуретку :) А со столом лажа вышла, да... Микрофон очень стук усилил...
@VaeV1ct1s
@VaeV1ct1s Год назад
Типичный ютуб. Гуглю уровни изоляции, получаю ЭТО. Какие то мычания, вас невозможно слушать. Пример никакой. Что значит синий прямоугольник слева(90)? То что остаётся в банке на счету магазина? Но тогда почему там 90, если товар стоит 100? ОК, допустим это значит остаток на счёте. Тогда что значчит прямоугольник слева? Опять остаток на счёте? допустим. Тогда почему, после реджекта, нет красного прямоугольника справа? На счету же осталось 50, они не списались. логика напрочь отсутствует
@Igor_user
@Igor_user 4 года назад
5:43 - можем параллельно обработать запрос, 7:04 - не можем параллельно обработать запрос. Так можем или не можем? 9:27 Владимир Кузнецов начал просто читать с экрана ноута.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
В первом случае можем, потому что операции над разными счетами не связаны. Во втором - не можем, потому что в этом случае счет один. Можем нарушить констрейнт и снять больше ,чем есть на счету. И читать Владимир начал раньше раньше, гораздо раньше чем 9:27 :)
@karabasbarabas2000
@karabasbarabas2000 4 года назад
пусть хоть всю лекцию читает. где записаться в фанклуб?) 0_0
@DimaVort
@DimaVort 4 года назад
Наверно стоит уточнить, что в больших масштабах ситуацию одновременного списания со счета обычно разрешают и загоняют баланс в минус. Иногда такие коллизии легче изредка решать извинениями и компенсациями, чем получить постоянно лежащий сервис где запросы обрабатываются неприемлемо долго. Банки уже не стесняются присылать СМС о списании денег со счета, когда платеж не прошел. А потом через пол-часа шлют СМС о возврате средств.
@andriihromov2942
@andriihromov2942 4 года назад
А что бухаете?) Можно третьим буду?
@vladislavkuzmenko4005
@vladislavkuzmenko4005 4 года назад
Тема очень интересная, но о простом как-то затянуто и сложно получилось... Еще, уровни изоляции транзакций в ms sql server и postgresql схожи по названию, но у postgresql, например, на serializable криво работает. А также, если Вам надо сделать, например, отчёт Анализ счёта, а у Вас в регистрах бухучета n-десятков миллионов записей, то решение разработать отчёт в приложении будет провально, т.е., проверку того же сальдо по счету клиента надо перекладывать на скуль, как и все громоздкие операции, просто потому, что у скуля это займет секунды или их доли, а Ваша логика приложения будет делать перебор, который займет часы....
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
Ну полностью serializable сделать сложно, тот же Oracle его не дает (типа, хотите хендлить skew - юзайте блокировки сами, благо Oracle дает такую возможность). Собсно, 2PL c как-бы предикативными локами дает только SQL Server и DB2... Постргесс до 9.1 хендлил serializable как и все базы с MVCC... Только может, чуть меньше этого стеснялся :) И, кстати, именно он сейчас дает SSI - аналог 2PL c предикативными локами только на оптимистичных локах. Его только в 2008 представили... Свежачок :)
@vladislavkuzmenko4005
@vladislavkuzmenko4005 4 года назад
@@vladymyrkuznietsov8815 Как бы да, только в постгресе старые версии строк будут удаляться по факту признания их ненужными и mvcc в чистом виде мы не получим. Это ясно. И именно по этому serializable работает "криво" в понимании/сравнении с ms sql. Типа мы и умные и красивые. А по факту, мы ни того не другого не достигаем и получаем всякие артефакты... Изначально ремарка была о том, что немного затянуто и сложно, а позже ниточка к способу реализации проверок через логику базы данных со сравнением скорости выполнения данной операции через приложение. Ограничения, которые Вы описали - понятны.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
@@vladislavkuzmenko4005 "А по факту, мы ни того не другого не достигаем и получаем всякие артефакты..." Ну почему же не получаем-то? Уровень изоляции Snapshot, который принес MVCC не матчится полностью на serializable из-за write skew. Это можно поправить либо явными локами как предлагает Orecle, либо как это делает тот же MySQL, неявными шаред локами... SSI в постгрессе вполне serializable. Там, правда, иногда ложные срабатывания бывают, но вроде как не так часто, чтобы это стало проблемой...
@vladislavkuzmenko4005
@vladislavkuzmenko4005 4 года назад
@@vladymyrkuznietsov8815 взяли ms sql. Используем блокировки или контроль версий для конкретной транзакции. Оговорили, настроили бл, погнали работать. Контроль версий не предполагает блокировок как таковых, за исключением операций восстановления. Берём постгрес. Вам необходимо обновить две трети таблицы на миллион записей. Вы открываете транзакцию в ser. В этот момент я обновляю те записи, до которых Вы не дошли. Транзакция у Вас откатывается. А где тут Лок на диапазон ключей?
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
@@vladislavkuzmenko4005 Хе-хе, так в этом то и идея оптимистической блокировки - мы откатываем транзакцию. И есть огромное количество девов, которые не обрабатывают этот вполне валидный кейс :) Я с Вами согласен, мне тоже как-то понятнее подход sql server, но там дедлок поймать легче легкого :)
@horlonangel
@horlonangel 4 года назад
Если чесно, то это видео не о чем. Куча поднятых вопросов и ни одного ответа. Все эти проблемы можно решить написав одно маленькое приложение (буквально несколько строк кода) со своим API, которое будет выстраивать в очередь все запросы на изменеия в базе, а напрямую сделать доступ только для чтения, хотя его тоже можно и не делать, а давать доступ через то же приложение (ведь всеравно доступ читать нужно разграничить). И никаких транзакций не нужно. Задачи в которых нужны транзакции совершенно другого характера, я даже не встречал где нужны только они и никак по-другому их не решить.
@Pavel-r5r
@Pavel-r5r 4 года назад
Ахаха. Так смешно видеть пролайканые все комментарии кроме тех кто пишет про стучание по столу и скрипящий стул. Автор, не бойся критики, лучше скажи спасибо, что люди дают фидбек. И просто исправьте эти моменты
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
уже исправили :) Купили пушку
@владимирсенцов-р1ю
Володя как будто после пьянки суровой.
@ИльяКсенофонтов-ч1л
всё хорошо, но тяжело слушать стук по столу
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
в следующий раз поставлю пушку :)
@MrDexis01
@MrDexis01 4 года назад
Можно чуть покороче, а то прям как СантаБарбара)
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
нит
@ИвановИван-ъ2э
@ИвановИван-ъ2э 4 года назад
вы будете смеяться но инфографика не совсем информативна.
@АлексейПоляков-ш1э
Все видео на зулип дергался)))
@АлексейСоловьев-о9д
На Верку сердючку похож
@RTDox
@RTDox 4 года назад
Почему у тим-лида на видео зубы чёрные? Он мало зарабатывает?
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
пей по 6 чашек кофе в день, и у тебя такие будут ;)
@АлександрМирошниченко-е2м
Пол ролика трендёжа ниочём
@dmitryb530
@dmitryb530 4 года назад
Почти три минуты трепа не по теме. Никого не волнует кто ты. Волнует что говоришь
@LiffeApp
@LiffeApp 4 года назад
Какой то бред. Не смотрите . вода как у Портнягина
@Erwin_Anderson
@Erwin_Anderson 4 года назад
это очень плохая идея так делить видео.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
А какая хорошая?
@Erwin_Anderson
@Erwin_Anderson 4 года назад
@@vladymyrkuznietsov8815 не прерываясь больше инфы дать, от того что я эту часть посмотрел я считай ничего не узнал, а теперь жди, а когда след. выйдет уже предыдущий надо будет пересматривать что бы вспомнить смысл
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
@@Erwin_Anderson Хм... А многие жалуются, что большой кусок труднее смотреть, и если честно, его трудно писать... Возможно, по окончанию курса надо будет собрать все в один длинный ролик.
@Erwin_Anderson
@Erwin_Anderson 4 года назад
​@@vladymyrkuznietsov8815 Лучше всего плэйлистом, когда видео делят тему на подразделы и проще по ним навигироваться и в поиске они больше запросов по теме охватят. А чтобы видео было короче лучше поменьше левой болтовни и более лаконично, я в начале половину видео пролистал. Это вообще большая проблема всевозможных туторов на русском всегда больше такой болтовни, тупых шуточек, хуже структура повествования, особенно всякие вебинары на 3 часа где инфы на 10 минутный видосик на инглише. У буржуев все четко по делу с инфографикой и примерами.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 4 года назад
​@@Erwin_Anderson Не всем такое заходит. Вот пример ролика без петросянства и одним логическим куском: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-TQAzmpdwJGA.html Я на него потратил времени как на все остальные, вместе взятые. 2 раза переписывал. Как мы можем понять он вообще "не зашел". Хотя он очень актуален. Я могу винить автора и формат. Автора мне менять сложно, проще формат :)
@sergeysharov1331
@sergeysharov1331 4 года назад
13 минут пустословия. Зря потраченное время.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 года назад
это вводная серия. Не все так хорошо разбираются в предмете, как вы
Далее
Как Linux рисует окна?
48:46
Просмотров 45 тыс.
Базы данных. MySQL. Транзакции
41:32