|
|
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
pkarklin - я про определение IBM. И ссылку дал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 16:51 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
ппмсколько бы раз запрос не повторялся в текущей транзакции, набор записей должен возвращатся неизменным Согласен. ппмстало быть,если insert может изменить этот набор данных, то такой insert не будет выполнен. Это значит, всего лишь хреновую реализацию. В fb, например, insert не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 16:55 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
hvlad NajuТранзакциями которые пишут, управляет "шедулер", который их не блокирует а пытается по возможности отложить их выполнение в случае конфликтов перестраивая очередь . Как транзакции конкурируют в очереди это и есть ноухау каждой MVCC базы.Можно пример из жизни ? Вот статья http://www.citforum.ru/database/articles/multiversion/ Поскольку эти технологии не достаточно открыты и нет четкой терминологии, тем не менее общие принципы и подход используют все БД, не все алгоритмы нам доступны, а тем более их реализации. Поэтому примеры это те же MySQL, PostgreSQL для которых есть исходники, но что там и как конкретно я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 16:58 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
FreemanZAV - дык IBM имеет блокировочник. И только в следующем году обещают доступ к last commited данным строки. Что не мешает, собственно, решать задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 17:00 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
у меня есть догадка, почему IBM так держится за блокировочник, но это только догадка. Только из соображения производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 17:02 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
ппмFreemanZAV - дык IBM имеет блокировочник. Хоть какое-то оправдание. ппмЧто не мешает, собственно, решать задачи. Ну это конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 17:03 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
FreemanZAVЭто значит, всего лишь хреновую реализацию. В fb, например, insert не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор. Гм... Тут, кмк, стоит все-таки указывать, при каких TIL выполняется читающая транзакция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 17:06 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
ппм пишет: > FreemanZAV - почему плохо? Согласно определения RR, сколько бы раз > запрос не повторялся в текущей транзакции, набор записей должен > возвращатся неизменным, стало быть, если insert может изменить этот > набор данных, то такой insert не будет выполнен. Нет, набор ПОЛУЧЕННЫХ первый раз записей НЕ МОЖЕТ изменяться. А вот НОВЫЕ записи, удовлетворяющие этим же условиям, могут появляться (феномер фантомов). Так что INSERT можно разрешать на RR. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 17:22 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
MasterZiv А вот НОВЫЕ записи, удовлетворяющие этим же условиям, могут появляться (феномер фантомов). Этот "феномен", как уже сказал softwarer - всего лишь прогиб стандарта под мелкомягкие реалии. Оттого эти "стандартные" определения уровней изоляции всеми критикуются и не принимаются всерьёз. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 19:42 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЭтот "феномен", как уже сказал softwarer - всего лишь прогиб стандарта под мелкомягкие реалии. Ошибаешься, Дим. Этот феномен - прогиб стандарта под суровую реальность, в которой еще никто не додумался до способа организовать блокировку предикатов с устраивающей эффективностью. Стандарту приходится прогибаться и под чересчур "дубовые" блокировки, и под чересчур "оптимистичные" версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 20:05 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
Naju hvlad NajuТранзакциями которые пишут, управляет "шедулер", который их не блокирует а пытается по возможности отложить их выполнение в случае конфликтов перестраивая очередь . Как транзакции конкурируют в очереди это и есть ноухау каждой MVCC базы.Можно пример из жизни ? Вот статья http://www.citforum.ru/database/articles/multiversion/Я просил - из жизни. NajuПоскольку эти технологии не достаточно открыты и нет четкой терминологии, тем не менее общие принципы и подход используют все БД, не все алгоритмы нам доступны, а тем более их реализации.Открою большой секрет - на www.ibase.ru достаточно информации и об алгоритмах, и о терминологии. На русском. А на http://firebird.cvs.sourceforge.net/firebird/firebird2/ можно и реализацию найти. NajuПоэтому примеры это те же MySQL, PostgreSQL для которых есть исходники, но что там и как конкретно я не знаю.Тогда не нужно ничего утверждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 23:55 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
pkarklin FreemanZAVЭто значит, всего лишь хреновую реализацию. В fb, например, insert не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор. Гм... Тут, кмк, стоит все-таки указывать, при каких TIL выполняется читающая транзакция.Не мешает - при любых. Если читатель - serializable, то insert ему тоже не помешает, ибо сам будет ждать окончания читателя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 23:57 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
softwarer Dimitry SibiryakovЭтот "феномен", как уже сказал softwarer - всего лишь прогиб стандарта под мелкомягкие реалии. Ошибаешься, Дим. Этот феномен - прогиб стандарта под суровую реальность, в которой еще никто не додумался до способа организовать блокировку предикатов с устраивающей эффективностью. Стандарту приходится прогибаться и под чересчур "дубовые" блокировки, и под чересчур "оптимистичные" версии. А зачем городить блокировку предикатов, если можно делать блокировку индексов? Ну а если разработчик не построил индекс - тады лочить таблицу целиком (криворукому разработчику по шее, масштабируемость при кривых руках всегда будет хреновая). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 03:12 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
hvladГм... Тут, кмк, стоит все-таки указывать, при каких TIL выполняется читающая транзакция.Не мешает - при любых. Если читатель - serializable, то insert ему тоже не помешает, ибо сам будет ждать окончания читателя.[/quot] Гм... "при любых" и "Если читатель - serializable" подвигает меня к выводу, что в ib RR так же подвержен феномену фантомов, и уже получается, что не "при любых ...не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 08:19 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
pkarklinподвигает меня к выводу, что в ib RR так же подвержен феномену фантомов, Неожиданный и неверный вывод. pkarklin уже получается, что не "при любых ...не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор И ни чего не получается. В fb, наоборот возникают некотрые затруднения, если нужно заблокировать инсёрт для параллельной транзакции. Забавно, что люди делают выводы о том, о чём не имеют ни малейшего представления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 08:32 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
FreemanZAV Неожиданный и неверный вывод. Т.е. RR в ib, как такового и нет?!И его заменяет SNAPSHOT, который, "якобы соответствует RR от ANSI SQL", за исключением того, что SNAPSHOT не обеспечивает видимость фантомов. FreemanZAV И ни чего не получается. В fb, наоборот возникают некотрые затруднения, если нужно заблокировать инсёрт для параллельной транзакции. Забавно, что люди делают выводы о том, о чём не имеют ни малейшего представления. И эти "некоторые затруднения", насколько я понимаю, связана с отсутствием "честного" Serializable?! Читаем: Режимы транзакций сервера IBУровень изоляции SNAPSHOT. Транзакция в момент старта получает "снимок" БД, который является неизменным до конца транзакции. Чтение данных, измененных конкурирующей транзакцией, разрешено, однако внесенные ей изменения не доступны. Попытка изменения данных, обновляемых другой транзакцией, приводит к конфликту (Deadlock, SQLCODE = -913). После завершения конкурирующих транзакций обновленные ими данные все равно изменять нельзя, поскольку полученный "снимок" уже не отражает текущего состояния БД (Deadlock. Update conflicts with concurrent update. SQLCODE = -913). Оригинальная трактовка дедлока... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 08:54 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
pkarklinТ.е. RR в ib, как такового и нет?! Там есть лучше. pkarklinИ его заменяет SNAPSHOT, который, "якобы соответствует RR от ANSI SQ И просто зашибись, что не соответсвует pkarklin исключением того, что SNAPSHOT не обеспечивает видимость фантомов. А от этого я вообще тащусь. pkarklin И эти "некоторые затруднения" Ну про затруднения я загнул немного, pkarklin, насколько я понимаю, связана с отсутствием "честного" Serializable?!, Я не пойму, нахрена нужно блокировать всё и вся, если можно нормально, по тихому, многократно читать одни и те же данные и при этом не мешать другим делать insert, например. Причём довольно странно, что некоторые это воспринимают как минус. pkarklinОригинальная трактовка дедлока... По моему, всё логично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:24 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
FreemanZAVТам есть лучше. ... И просто зашибись, что не соответсвует ... А от этого я вообще тащусь. Лучше, зашибись и тащится можно когда есть и RR, и Serializable и Snapshot, как в MS SQL. ;) FreemanZAVНу про затруднения я загнул немного, Судя по всему, Вы не так далеки от истины. FreemanZAVЯ не пойму, нахрена нужно блокировать всё и вся, если можно нормально, по тихому, многократно читать одни и те же данные и при этом не мешать другим делать insert, например. Причём довольно странно, что некоторые это воспринимают как минус. Как "минус" воспринимается неполнота существующих уровней изоляции транзакций. А ситуации в жизни, когда возникает именно необходимость блокировать, возникают, и не так уж и редко. FreemanZAVПо моему, всё логично. Что-то я не вижу при одной читающей транзакции и одной с INSERT классической картины дедлока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:35 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
pkarklinЛучше, зашибись и тащится можно когда есть и RR, и Serializable и Snapshot, как в MS SQL. ;) Особенно радует невозможность вставки записей в параллельных транзакциях. pkarklin А ситуации в жизни, когда возникает именно необходимость блокировать, возникают, и не так уж и редко. Да уж, заблокировать MS SQL может лего, а вот что делать, когда нет такой необходимости? pkarklinЧто-то я не вижу при одной читающей транзакции и одной с INSERT классической картины дедлока. Да потому что в fb читатель писателя не блокирует. Но, походу, MS SQL-щикам этого уже не понять никогда :( pkarklinСудя по всему, Вы не так далеки от истины. За бутылку хорошего конъяка заблокирую в fb что угодно (хорошее объявление получилось, прямо для газеты "Из рук в руки" :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:43 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
FreemanZAV Особенно радует невозможность вставки записей в параллельных транзакциях. Да уж, заблокировать MS SQL может лего, а вот что делать, когда нет такой необходимости? Да потому что в fb читатель писателя не блокирует. Но, походу, MS SQL-щикам этого уже не понять никогда :( Гы... Кто-то чуть выше безапелляционно упрекнул меня в неимении нималейшего представления о TIL в ib. Позволю себе сделать тоже самое в Ваш адрес и отправить к документации: http://msdn.microsoft.com/en-us/library/ms189122.aspx :) FreemanZAVЗа бутылку хорошего конъяка заблокирую в fb что угодно (хорошее объявление получилось, прямо для газеты "Из рук в руки" :-)) Я сделаю это даром. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:50 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
Да, совсем забыл, что в MS SQL 2005 появился таки Snapshot Isolation. Только чудится мну, что работает это всё только в версионном режиме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:52 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
FreemanZAVТолько чудится мну, что работает это всё только в версионном режиме Про то, что Вам чудится, можно по-подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:54 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
Так я идумал, господа, так я и думал (с) If you set the READ_COMMITTED_SNAPSHOT database option to ON, the database engine uses row versioning Это на тему топика. pkarklinПозволю себе сделать тоже самое в Ваш адрес и отправить к документации: Вот только что читал http://msdn.microsoft.com/en-us/library/tcbchxcb(vs.80).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:58 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
pkarklin FreemanZAVТолько чудится мну, что работает это всё только в версионном режиме Про то, что Вам чудится, можно по-подробнее? Да пож-а: Once snapshot isolation is enabled, updated row versions for each transaction are maintained in tempdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 09:59 |
|
||
|
Версионники и блокировочники
|
|||
|---|---|---|---|
|
#18+
FreemanZAVТак я идумал, господа, так я и думал (с) If you set the READ_COMMITTED_SNAPSHOT database option to ON, the database engine uses row versioning Это на тему топика. Да пож-а: Once snapshot isolation is enabled, updated row versions for each transaction are maintained in tempdb. Гм... И к чему Вы привели эти цитаты?! В отличии от ib, MS SQL умеет работать и как версионник, и как блокировочник, и в смешанном режиме, когда при "включенной" версионности есть возможность наложения небходимых блокировок, т.е. возможность атомарного тютинга поведения. Кмк, отличная возможность! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 10:06 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=35445323&tid=1553078]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 146ms |

| 0 / 0 |
