Size: a a a

DBA - русскоговорящее сообщество

2021 March 29

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Nikolay
вот. если он не дердит read lock до конца транзакции, то это не 2PL.
Да. Потому что более низкие уровни изоляции достигаются игнорированием тех или иных требований протокола.
Конкретно в MS SQL, например (пишу по памяти, если важно — стоить уточнить):
. SERIALIZABLE — полный SSP2PL.
. REPEATABLE READ — не накладываются предикатные блокировки вообще, все остальные удерживаются до конца транзакции.
. READ COMMITTED — то же, что в RR, но ещё и не удерживаются блокировки на чтение (отпускаются сразу после чтения).
. READ UNCOMMITTED — то же, что в RC, но ещё и игнорируются все блокировки на чтение других транзакций.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Nikolay
и truncate можно сделать и drop можно сделать в oracle в read commited. но это , конечно только в тех случая, которые были описаны. Если кто-то сделал Insert/update/delete и т.д, то будет ожидание. то все потому, что не держит он блокировок уже после того, как прочел таблицу
Нет, минуту.
Вот я в RR читаю таблицу (какие-то записи). Прочитал один раз, значит, запросив во второй, должен прочитать их (и точно в том же состоянии). Как Oracle обеспечивает эту гарантию, если он даёт кому-то DROP-нуть таблицу, пока моя транзакция активна?
источник

N

Nikolay in DBA - русскоговорящее сообщество
Yaroslav Schekin
Да. Потому что более низкие уровни изоляции достигаются игнорированием тех или иных требований протокола.
Конкретно в MS SQL, например (пишу по памяти, если важно — стоить уточнить):
. SERIALIZABLE — полный SSP2PL.
. REPEATABLE READ — не накладываются предикатные блокировки вообще, все остальные удерживаются до конца транзакции.
. READ COMMITTED — то же, что в RR, но ещё и не удерживаются блокировки на чтение (отпускаются сразу после чтения).
. READ UNCOMMITTED — то же, что в RC, но ещё и игнорируются все блокировки на чтение других транзакций.
Так я понял, что если что-то игнорируется из протокола, то вы считаете, что это все тот же 2PL. Можно и так считать.  Как по мне так 2PL - это именно когда есть 2 фазы. в одной набираем блокировки( и никогда количество блокировок не уменьшается, а только растет), а потом во второй фазе все отпускаем.
источник

N

Nikolay in DBA - русскоговорящее сообщество
Спасибо за интересное обсуждение. Мне было очень полезно.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Nikolay
Так я понял, что если что-то игнорируется из протокола, то вы считаете, что это все тот же 2PL. Можно и так считать.  Как по мне так 2PL - это именно когда есть 2 фазы. в одной набираем блокировки( и никогда количество блокировок не уменьшается, а только растет), а потом во второй фазе все отпускаем.
Да, если говорить о RC и ниже, это уже вопрос мнения. Почему мне нравится такая точка зрения, я выше написал.
Тем не менее, на REPEATABLE READ принцип 2PL полностью сохраняется.
источник

N

Nikolay in DBA - русскоговорящее сообщество
Ilia Zviagin
Two phase commit может?
2PC - это для респределенных транзакций. ОН скорее для A в ACID,  а не для I
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Zzz 111
Подскажите новичку, может ли первичный ключ в одной таблице ссылаться на первичный ключ в другой (как если бы один из них был внешним)?
Может, блин, зачем по всем чатам то ...
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Nikolay
2PC - это для респределенных транзакций. ОН скорее для A в ACID,  а не для I
Илья, наверное, имел в виду — может, Вы вообще не о том спросили (нередко путают, просто потому, что названия похожие). ;)
источник

n🐈

nikoinlove 🐈 in DBA - русскоговорящее сообщество
Zzz 111
Подскажите новичку, может ли первичный ключ в одной таблице ссылаться на первичный ключ в другой (как если бы один из них был внешним)?
так создай и проверь)
источник

N

Nikolay in DBA - русскоговорящее сообщество
Yaroslav Schekin
Илья, наверное, имел в виду — может, Вы вообще не о том спросили (нередко путают, просто потому, что названия похожие). ;)
а я то подумал, что Илья напутал )
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Nikolay
а я то подумал, что Илья напутал )
Я ж просто спросил..
Про это two phase locking вообще очень мало кто знает
источник

A

Adv0cat in DBA - русскоговорящее сообщество
А те кто знает, знают не всё 😅
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Так кто пользуется Oracle — неужели так на самом деле всё так плохо, как пишет Nikolay?
Что на самом деле происходит в ситуации https://t.me/dba_ru/133367 ?
источник

N

Nikolay in DBA - русскоговорящее сообщество
источник

N

Nikolay in DBA - русскоговорящее сообщество
"According to note: We get this error when, tables are being dropped/truncated while a SQL statement for those tables is still in execution."
источник

N

Nikolay in DBA - русскоговорящее сообщество
есть специальная ошибка для такого случая "ORA-08103: object no longer exists
Cause: The object has been deleted by another user since the operation began, or a prior incomplete recovery restored the database to a point in time during the deletion of the object."
источник

N

Nikolay in DBA - русскоговорящее сообщество
Ilia Zviagin
Я ж просто спросил..
Про это two phase locking вообще очень мало кто знает
Надеюсь, что вас не обидел своим предположением. Если что, извините.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Nikolay
Надеюсь, что вас не обидел своим предположением. Если что, извините.
Не не, все ок
источник

Z1

Zzz 111 in DBA - русскоговорящее сообщество
Ilia Zviagin
Может, блин, зачем по всем чатам то ...
Таков путь 😅
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Я просмотрел, но как-то это мутно (чёткого repro и описания там нет, а "далеко" по ссылкам я не ходил).
Ладно, если транзакция откатывается в такой ситуации, то это формально нормально (просто непривычно).
Спасибо!
источник