Изоляция в смысле #ACID означает, что конкурентно выполняемые транзакции изолированы друг от друга — они не могут помешать друг другу. Классические учебники по базам данных понимают под изоляцией сериализуемость (serializability). То есть каждая транзакция выполняется так, будто она единственная во всей базе. БД гарантирует, что результат фиксации транзакций такой же, как если бы они выполнялись последовательно (serially, одна за другой), хотя в реальности они могут выполняться конкурентно.
Чтение зафиксированных данных (read comitted):
Самый базовый уровень изоляции транзакций — чтение зафиксированных данных. Он обеспечивает две гарантии.
▪При чтении из БД клиент видит только зафиксированные данные (никаких «грязных» операций чтения).
▪При записи в БД можно перезаписывать только зафиксированные данные (никаких «грязных» операций записи).
«Грязные» операции чтения. Клиент читает записанные другим клиентом данные до их фиксации. Уровень изоляции чтения зафиксированных данных и более сильные предотвращают «грязные» операции чтения.
«Грязные» операции записи. Клиент перезаписывает данные, которые другой клиент записал, но еще не зафиксировал. Практически все реализации транзакций предотвращают «грязные» операции записи.
Изоляция снимков состояния и воспроизводимое чтение:
Ее идея состоит в том, что каждая из транзакций читает данные из согласованного снимка состояния БД, то есть видит данные, которые были зафиксированы в базе на момент ее (транзакции) начала. Даже если данные затем были изменены другой транзакцией, каждая транзакция видит только старые данные, по состоянию на конкретный момент времени. Позволяет предотвратить асимметрии чтения.
Асимметрия чтения (невоспроизводимое чтение). Клиент видит различные части базы данных по состоянию на разные моменты времени. Чаще всего такую проблему предотвращают с помощью изоляции снимков состояния, при которой транзакция читает данные из согласованного снимка состояния, соответствующего определенному моменту времени. Обычно это реализуется благодаря многоверсионному управлению конкурентным доступом (MVCC).
Сериализуемость (serializability):
Обычно считается самым сильным уровнем изоляции. Она гарантирует, что даже при конкурентном выполнении транзакций результат останется таким же, как и в случае их последовательного (по одной за раз) выполнения, без всякой конкурентности. Следовательно, база данных гарантирует, что правильно выполняющиеся последовательно транзакции будут столь же правильно выполняться конкурентно. Другими словами, база предотвращает все возможные состояния гонки.
Большинство современных БД, обеспечивающих сериализуемость, применяют один из трех методов:
По-настоящему последовательное выполнение транзакций. Если вы можете сделать отдельные транзакции очень быстрыми, причем количество транзакций, обрабатываемых за единицу времени на одном ядре CPU, достаточно невелико, то для обработки этот вариант окажется простым и эффективным.
Двухфазная блокировка. На протяжении десятилетий она была стандартным способом обеспечения сериализуемости, но многие приложения стараются ее не использовать из-за плохих показателей производительности.
Сериализуемая изоляция снимков состояния (SSI). Довольно свежий алгоритм, лишенный практически всех недостатков предыдущих подходов. В нем используется оптимистический подход, благодаря чему транзакции выполняются без блокировок. Перед фиксацией транзакции выполняется проверка, и если выполнение было несериализуемым, то транзакция прерывается без фиксации.
@sqlhub #techinterview
Please open Telegram to view this post
VIEW IN TELEGRAM
Ресурсы для подготовки к system design интервью
👩🎓 Курсы:
https://www.udemy.com/course/system-design-interview-prep/
https://www.educative.io/courses/grokking-the-system-design-interview
https://www.coursera.org/specializations/software-design-architecture
https://www.udemy.com/course/system-design-a-comprehensive-guide/
https://www.educative.io/courses/web-application-software-architecture-101
🙂 Бесплатные материалы:
https://github.com/donnemartin/system-design-primer
https://github.com/karanpratapsingh/system-design
❓ Вопросы:
https://medium.com/double-pointer/top-25-system-design-interview-questions-c468e025b370
☑️ Выделю отдельно educative, тут есть каталог вопросов и ответов на них:
https://www.educative.io/courses/grokking-the-system-design-interview
👨🏫 По процессу прохождения system design интервью:
https://habr.com/ru/company/piter/blog/650785/
https://habr.com/ru/company/getmatch/blog/516718/
https://hackernoon.com/anatomy-of-a-system-design-interview-4cb57d75a53f
Список будет дополняться.
Источник: https://t.iss.one/bigtechdream/37
#SystemDesign #interview #techinterview
👩🎓 Курсы:
https://www.udemy.com/course/system-design-interview-prep/
https://www.educative.io/courses/grokking-the-system-design-interview
https://www.coursera.org/specializations/software-design-architecture
https://www.udemy.com/course/system-design-a-comprehensive-guide/
https://www.educative.io/courses/web-application-software-architecture-101
🙂 Бесплатные материалы:
https://github.com/donnemartin/system-design-primer
https://github.com/karanpratapsingh/system-design
❓ Вопросы:
https://medium.com/double-pointer/top-25-system-design-interview-questions-c468e025b370
☑️ Выделю отдельно educative, тут есть каталог вопросов и ответов на них:
https://www.educative.io/courses/grokking-the-system-design-interview
👨🏫 По процессу прохождения system design интервью:
https://habr.com/ru/company/piter/blog/650785/
https://habr.com/ru/company/getmatch/blog/516718/
https://hackernoon.com/anatomy-of-a-system-design-interview-4cb57d75a53f
Список будет дополняться.
Источник: https://t.iss.one/bigtechdream/37
#SystemDesign #interview #techinterview
Udemy
Mastering the System Design Interview
Insider tips for your system design interview from a former Amazon hiring manager – plus 6 mock interviews for practice!
#Собесы… (надо было такой #тег сделать, то каждый раз ищу, какие там сделал.. #interview #techinterview 😅 )
Я, на самом деле, не особо согласен с обоими авторами, но почитать (и пописАть под пост) и посмотреть доклад (сам пересматривать буду)) с размышлениями на эти непреходящие темы точно стоит! (доклад вообще, вроде бы, стал топ #1 на той конфе, где был!🔥 )
Я в целом люблю и«глупые вопросы» давайте их всё-таки назовём «дурацкие задачки» (пч бывают реально «глупые вопросы» – для меня это другое), и лайвкодинг, и местами даже алгосы заходят (хотя считаю себя среднячокм в обоих-трёх, тут как делить, дисциплинах), но я и сами собесы в целом люблю, поэтому, может, я и не очень репрезентативен 😁
«Задачки» дают возможность интервьюеру посмотреть, как человек размышляет над чем-то нестандартным, вообще, как он расмышляет... Да, в работе, особенно не новой, не часто приходится прям что-то совсем не стандартное решать, и понятно, что точно не приходится решать что-то похожее на «сколько мячиков влезет в автобус». Думаю, что что-то полезное для себя интервьюер может с этого получить, раз уж запихнул это в интервью – давайте будем верить, что это так, и оставим ему это право. Да и в целом задачки клёвые бывают! Заставляют и на собесе мозгами поскрипеть, и после их с друзьями порешать) Если есть, конечно, такие друзья, кто такое любит (у меня есть, и это и правда интересно их потом помучать)).🤓
#Алгосы и вообще #лайвкодинг… Да, алгосы и раньше то были довольно далеки от практических задач, а в эру ChatGPT как-будто бы вообще теряет свою актульность, но… лайвкодинг – это же просто интересно!)) Beleave me! Feel it!😁
– Даёт возможность покодить на собесе: не странная ведь гипотеза, что для многих разрабов это будет получше всяческих распросов, местамитупых не самых продуманных??..), ну если алгосы – это, конечно, на любителя, но иногда ведь кроме них и норм задачки дают! 😁
– Если среда лайвкодинга с code-runner’ом, то вообще можно оценить, как разраб кодит и отлаживается, если без запуска (как в яндексах всяких), то... ну да, тоже скилл, такой себе довольно полезный в работе – писать код с минимумом ошибок, если сложно локальное окружение развернуть и данные подтащить для быстрой отладки, и проходится ждать пока все CIи одупляться после очередного коммита!😑
Я когда собесил, ни то, ни другое мы не использовали, но задачки на написание кода мы давали, хоть и на бумажке (а это прям🤮 – согласен), но если кто-то спрашивал возможность ноут использовать, то не отказывали (это был далёкий 201.. ну пусть 17-18й) и это прям норм – надо делать, конечно. Разработчик должен уметь кодить, в тч что-то и на интервью.
А, ещё сисдизайн… ну «нарисовать сисдизайн твиттера» – согласен, это такое…😅 У меня по сисдизайну было всего одно интервью (ДЕшникам не часто такое дают, наверное), и вообще без опыта, тч стартовало оно довольно тяжко, но к концу прям попёрло!.. В общем, впечатление, инсайты (и даже скиллов немного) остались от него самые позитивные! 👍
https://t.iss.one/bigtechdream/190
Я, на самом деле, не особо согласен с обоими авторами, но почитать (и пописАть под пост) и посмотреть доклад (сам пересматривать буду)) с размышлениями на эти непреходящие темы точно стоит! (доклад вообще, вроде бы, стал топ #1 на той конфе, где был!
Я в целом люблю и
«Задачки» дают возможность интервьюеру посмотреть, как человек размышляет над чем-то нестандартным, вообще, как он расмышляет... Да, в работе, особенно не новой, не часто приходится прям что-то совсем не стандартное решать, и понятно, что точно не приходится решать что-то похожее на «сколько мячиков влезет в автобус». Думаю, что что-то полезное для себя интервьюер может с этого получить, раз уж запихнул это в интервью – давайте будем верить, что это так, и оставим ему это право. Да и в целом задачки клёвые бывают! Заставляют и на собесе мозгами поскрипеть, и после их с друзьями порешать) Если есть, конечно, такие друзья, кто такое любит (у меня есть, и это и правда интересно их потом помучать)).
#Алгосы и вообще #лайвкодинг… Да, алгосы и раньше то были довольно далеки от практических задач, а в эру ChatGPT как-будто бы вообще теряет свою актульность, но… лайвкодинг – это же просто интересно!)) Beleave me! Feel it!
– Даёт возможность покодить на собесе: не странная ведь гипотеза, что для многих разрабов это будет получше всяческих распросов, местами
– Если среда лайвкодинга с code-runner’ом, то вообще можно оценить, как разраб кодит и отлаживается, если без запуска (как в яндексах всяких), то... ну да, тоже скилл, такой себе довольно полезный в работе – писать код с минимумом ошибок, если сложно локальное окружение развернуть и данные подтащить для быстрой отладки, и проходится ждать пока все CIи одупляться после очередного коммита!
Я когда собесил, ни то, ни другое мы не использовали, но задачки на написание кода мы давали, хоть и на бумажке (а это прям
А, ещё сисдизайн… ну «нарисовать сисдизайн твиттера» – согласен, это такое…
https://t.iss.one/bigtechdream/190
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
BigTechDream
Глупые вопросы на собеседовании 🧑💻
Сколько в городе настройщиков пианино? Сколько мячиков для гольфа поместится в самолет? Если сжать вас до размера монетки и бросить в блендер, как вы выберетесь?
Кто достаточно старый как и я, тот вспомнит, что в свое…
Сколько в городе настройщиков пианино? Сколько мячиков для гольфа поместится в самолет? Если сжать вас до размера монетки и бросить в блендер, как вы выберетесь?
Кто достаточно старый как и я, тот вспомнит, что в свое…
❤3
Data & IT Career
#Собесы… (надо было такой #тег сделать, то каждый раз ищу, какие там сделал.. #interview #techinterview 😅 ) Я, на самом деле, не особо согласен с обоими авторами, но почитать (и пописАть под пост) и посмотреть доклад (сам пересматривать буду)) с размышлениями…
YouTube
Техническое интервью без балансировки скобок
Девушка составила огромный список вопросов, от которого должен поседеть любой работодатель. Но всё же нашелся рекрутер, который устроил ей часовой созвон и рассказал о вакансии всё.
Забираем список себе, чтобы однажды найти работу мечты.
https://t.iss.one/cringetoborn/4500 #techinterview #interview #собесы #вопросы #Ядоебистаяшопиздец #костыль #софтскилос #качат
– Я доебистая шо пиздец
- https://pikabu.ru/story/imenno_tak_vyiglyadit_put_k_schastlivoy_rabote_i_strashnyiy_son_yeychara_10497601
Забираем список себе, чтобы однажды найти работу мечты.
https://t.iss.one/cringetoborn/4500 #techinterview #interview #собесы #вопросы #Ядоебистаяшопиздец #костыль #софтскилос #качат
– Я доебистая шо пиздец
- https://pikabu.ru/story/imenno_tak_vyiglyadit_put_k_schastlivoy_rabote_i_strashnyiy_son_yeychara_10497601
👏2