72 похожих чатов

Объясните как работает Serializable Snapshot Isolation. Как там трекается нарушение

изоляции? вот я, например, сделал некий селект: select count(*) from table1 where group_id = 10; и потом, если этот count(*) > 2 делаю update table2 set flag ='Y' where group_id = 10. как база поймет, что кто-то уже изменил этот флаг? Мне хочется понять идеи, чтобы потом понять документ, который написан by Dan R. K. Ports и Kevin Grittner

20 ответов

14 просмотров

Такого нет. Есть Snapshot Isolation и Serializable. Это два отдельных уровня. Serializable выше по уровню изоляции по Грею и товарищам. Кроме этого, Serializable - по стандарту ANSI, вообще максимальный уровень изоляции транзакций из всех возможных, потому что по нему запрещены любые аномалии работы с данными, в том числе даже те, которые ещё неизвестны науке. Snapshot Isolation по Грею равновысок уровню Repeatable Read из ANSI, поскольку оба выше Read Commited, но оба ниже Serializable, и оба имеют одинаково ненормальные аномалии работы с данными, которые разные и несоотносимы друг с другом. Уточни свой вопрос, тогда на него можно будет ответить.

https://wiki.postgresql.org/wiki/Serializable А вообще, почему Вы не спрашиваете там, где положено ответят с куда большей вероятностью ( https://t.me/pgsql )? ;)

Nikolay- Автор вопроса
Yaroslav Schekin
https://wiki.postgresql.org/wiki/Serializable А во...

так я помню, что вы его как-то упоминали. и вот спросил в надежде, что вы тут ответите

Nikolay- Автор вопроса
Ilya Zviagin
Такого нет. Есть Snapshot Isolation и Serializable...

Это дастаточно новый уровень. первый раз в 2008 году его описали. из известных баз он только в постгресе https://github.com/postgres/postgres/blob/master/src/backend/storage/lmgr/README-SSI

Ну тогда это просто видимо snapshot + блокировка изменяемых записей. Но лучше в PG и спрашивать, конечно.

Nikolay
Это дастаточно новый уровень. первый раз в 2008 го...

Это не уровень, это новая реализация serializable.

Ilya Zviagin
Ну тогда это просто видимо snapshot + блокировка и...

И ничего подобного. Это действительно совершенно новый подход (в "классических" учебниках его нет, потому что сам алгоритм был изобретён (открыт?) только в 2008).

Nikolay
как он работает?

Я же Вам ссылку дал, где это разжёвывается (и там есть ссылки на примеры, оригинальную статью и т.п.)?!

Nikolay- Автор вопроса
Yaroslav Schekin
Я же Вам ссылку дал, где это разжёвывается (и там ...

мне поговорить интересно. ссылки нагуглить я и сам могу. должны же быть в чате люди, кто в 5 предложениях может обьяснить как он работает

Nikolay
мне поговорить интересно. ссылки нагуглить я и сам...

Там всё равно написано лучше. Зачем copy/paste "учебника"? ;)

Nikolay
мне поговорить интересно. ссылки нагуглить я и сам...

'поговорить интересно' - это к психологу, с почасовой оплатой

Николай, он врач, давай ближе к делу и без трёпа.

Конечно, нет (и не мог быть). Кстати, в Oracle вообще не serializable, а одно название.

Трудно объяснить короче, чем написано там, и не упустить суть, IMHO.

Речь была о Serializable Snapshot Isolation, а не snapshot isolation (MVCC). Это действительно новый метод... в общем, я (и не только я) это уже писал выше, и приводил ссылки.

How about сделать это самому? И как насчёт того, чтобы читать все относящиеся к делу сообщения?

Т.е. Вы не знаете, что это такое, OK.

Хоть голос оборвите, мне всё равно. По сути есть что возразить, или как обычно?

Похожие вопросы

Обсуждают сегодня

Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
Карта сайта