Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 5 6 7 8 9 10 11 12 [13] 14   вперед  Ctrl
 Re: Версионники и блокировочники  [new]
ппм
Guest
pkarklin - я про определение IBM.
И ссылку дал
22 июл 08, 16:51    [5970236]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
ппм
сколько бы раз запрос не повторялся в текущей транзакции, набор записей должен возвращатся неизменным

Согласен.
ппм
стало быть,если insert может изменить этот набор данных, то такой insert не будет выполнен.

Это значит, всего лишь хреновую реализацию. В fb, например, insert не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор.
22 июл 08, 16:55    [5970266]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Naju
Member

Откуда:
Сообщений: 5
hvlad
Naju
Транзакциями которые пишут, управляет "шедулер", который их не блокирует а пытается по возможности отложить их выполнение в случае конфликтов перестраивая очередь. Как транзакции конкурируют в очереди это и есть ноухау каждой MVCC базы.
Можно пример из жизни ?


Вот статья
http://www.citforum.ru/database/articles/multiversion/

Поскольку эти технологии не достаточно открыты и нет четкой терминологии, тем не менее общие принципы и подход используют все БД, не все алгоритмы нам доступны, а тем более их реализации.

Поэтому примеры это те же MySQL, PostgreSQL для которых есть исходники, но что там и как конкретно я не знаю.
22 июл 08, 16:58    [5970289]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
ппм
Guest
FreemanZAV - дык IBM имеет блокировочник.
И только в следующем году обещают доступ к last commited данным строки.
Что не мешает, собственно, решать задачи.
22 июл 08, 17:00    [5970309]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
ппм
Guest
у меня есть догадка, почему IBM так держится за блокировочник, но это только догадка.
Только из соображения производительности.
22 июл 08, 17:02    [5970322]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
ппм
FreemanZAV - дык IBM имеет блокировочник.

Хоть какое-то оправдание.
ппм
Что не мешает, собственно, решать задачи.

Ну это конечно
22 июл 08, 17:03    [5970335]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV
Это значит, всего лишь хреновую реализацию. В fb, например, insert не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор.


Гм... Тут, кмк, стоит все-таки указывать, при каких TIL выполняется читающая транзакция.
22 июл 08, 17:06    [5970356]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

ппм пишет:

> FreemanZAV - почему плохо? Согласно определения RR, сколько бы раз
> запрос не повторялся в текущей транзакции, набор записей должен
> возвращатся неизменным, стало быть, если insert может изменить этот
> набор данных, то такой insert не будет выполнен.

Нет, набор ПОЛУЧЕННЫХ первый раз записей НЕ МОЖЕТ изменяться.
А вот НОВЫЕ записи, удовлетворяющие этим же условиям, могут
появляться (феномер фантомов). Так что INSERT можно разрешать на RR.

Posted via ActualForum NNTP Server 1.4

22 июл 08, 17:22    [5970482]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54789

MasterZiv

А вот НОВЫЕ записи, удовлетворяющие этим же условиям, могут
появляться (феномер фантомов).

Этот "феномен", как уже сказал softwarer - всего лишь прогиб
стандарта под мелкомягкие реалии. Оттого эти "стандартные" определения
уровней изоляции всеми критикуются и не принимаются всерьёз.

Posted via ActualForum NNTP Server 1.4

22 июл 08, 19:42    [5971147]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67454
Блог
Dimitry Sibiryakov
Этот "феномен", как уже сказал softwarer - всего лишь прогиб
стандарта под мелкомягкие реалии.

Ошибаешься, Дим. Этот феномен - прогиб стандарта под суровую реальность, в которой еще никто не додумался до способа организовать блокировку предикатов с устраивающей эффективностью. Стандарту приходится прогибаться и под чересчур "дубовые" блокировки, и под чересчур "оптимистичные" версии.
22 июл 08, 20:05    [5971178]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
hvlad
Member

Откуда:
Сообщений: 11554
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 июл 08, 23:55    [5971637]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
hvlad
Member

Откуда:
Сообщений: 11554
pkarklin
FreemanZAV
Это значит, всего лишь хреновую реализацию. В fb, например, insert не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор.


Гм... Тут, кмк, стоит все-таки указывать, при каких TIL выполняется читающая транзакция.
Не мешает - при любых. Если читатель - serializable, то insert ему тоже не помешает, ибо сам будет ждать окончания читателя.
22 июл 08, 23:57    [5971640]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Зл0й
Member

Откуда: Северная Калифорния
Сообщений: 686
softwarer
Dimitry Sibiryakov
Этот "феномен", как уже сказал softwarer - всего лишь прогиб
стандарта под мелкомягкие реалии.

Ошибаешься, Дим. Этот феномен - прогиб стандарта под суровую реальность, в которой еще никто не додумался до способа организовать блокировку предикатов с устраивающей эффективностью. Стандарту приходится прогибаться и под чересчур "дубовые" блокировки, и под чересчур "оптимистичные" версии.


А зачем городить блокировку предикатов, если можно делать блокировку индексов? Ну а если разработчик не построил индекс - тады лочить таблицу целиком (криворукому разработчику по шее, масштабируемость при кривых руках всегда будет хреновая).
23 июл 08, 03:12    [5971781]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
hvlad
Гм... Тут, кмк, стоит все-таки указывать, при каких TIL выполняется читающая транзакция.
Не мешает - при любых. Если читатель - serializable, то insert ему тоже не помешает, ибо сам будет ждать окончания читателя.[/quot]

Гм... "при любых" и "Если читатель - serializable" подвигает меня к выводу, что в ib RR так же подвержен феномену фантомов, и уже получается, что не "при любых ...не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор"
23 июл 08, 08:19    [5971880]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
pkarklin
подвигает меня к выводу, что в ib RR так же подвержен феномену фантомов,

Неожиданный и неверный вывод.

pkarklin
уже получается, что не "при любых ...не особо мешает паралельной транзакции при повторе запроса возврашать неизменный набор

И ни чего не получается. В fb, наоборот возникают некотрые затруднения, если нужно заблокировать инсёрт для параллельной транзакции. Забавно, что люди делают выводы о том, о чём не имеют ни малейшего представления.
23 июл 08, 08:32    [5971905]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
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 июл 08, 08:54    [5971939]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
pkarklin
Т.е. RR в ib, как такового и нет?!

Там есть лучше.

pkarklin
И его заменяет SNAPSHOT, который, "якобы соответствует RR от ANSI SQ

И просто зашибись, что не соответсвует

pkarklin
исключением того, что SNAPSHOT не обеспечивает видимость фантомов.

А от этого я вообще тащусь.

pkarklin
И эти "некоторые затруднения"

Ну про затруднения я загнул немного,

pkarklin
, насколько я понимаю, связана с отсутствием "честного" Serializable?!,

Я не пойму, нахрена нужно блокировать всё и вся, если можно нормально, по тихому, многократно читать одни и те же данные и при этом не мешать другим делать insert, например. Причём довольно странно, что некоторые это воспринимают как минус.
pkarklin
Оригинальная трактовка дедлока...

По моему, всё логично.
23 июл 08, 09:24    [5972026]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV
Там есть лучше.
...
И просто зашибись, что не соответсвует
...
А от этого я вообще тащусь.


Лучше, зашибись и тащится можно когда есть и RR, и Serializable и Snapshot, как в MS SQL. ;)

FreemanZAV
Ну про затруднения я загнул немного,


Судя по всему, Вы не так далеки от истины.

FreemanZAV
Я не пойму, нахрена нужно блокировать всё и вся, если можно нормально, по тихому, многократно читать одни и те же данные и при этом не мешать другим делать insert, например. Причём довольно странно, что некоторые это воспринимают как минус.


Как "минус" воспринимается неполнота существующих уровней изоляции транзакций. А ситуации в жизни, когда возникает именно необходимость блокировать, возникают, и не так уж и редко.

FreemanZAV
По моему, всё логично.


Что-то я не вижу при одной читающей транзакции и одной с INSERT классической картины дедлока.
23 июл 08, 09:35    [5972072]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
pkarklin
Лучше, зашибись и тащится можно когда есть и RR, и Serializable и Snapshot, как в MS SQL. ;)

Особенно радует невозможность вставки записей в параллельных транзакциях.

pkarklin
А ситуации в жизни, когда возникает именно необходимость блокировать, возникают, и не так уж и редко.

Да уж, заблокировать MS SQL может лего, а вот что делать, когда нет такой необходимости?
pkarklin
Что-то я не вижу при одной читающей транзакции и одной с INSERT классической картины дедлока.

Да потому что в fb читатель писателя не блокирует. Но, походу, MS SQL-щикам этого уже не понять никогда :(
pkarklin
Судя по всему, Вы не так далеки от истины.

За бутылку хорошего конъяка заблокирую в fb что угодно (хорошее объявление получилось, прямо для газеты "Из рук в руки" :-))
23 июл 08, 09:43    [5972105]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV

Особенно радует невозможность вставки записей в параллельных транзакциях.

Да уж, заблокировать MS SQL может лего, а вот что делать, когда нет такой необходимости?

Да потому что в fb читатель писателя не блокирует. Но, походу, MS SQL-щикам этого уже не понять никогда :(


Гы... Кто-то чуть выше безапелляционно упрекнул меня в неимении нималейшего представления о TIL в ib. Позволю себе сделать тоже самое в Ваш адрес и отправить к документации:
http://msdn.microsoft.com/en-us/library/ms189122.aspx :)

FreemanZAV
За бутылку хорошего конъяка заблокирую в fb что угодно (хорошее объявление получилось, прямо для газеты "Из рук в руки" :-))


Я сделаю это даром. ;)
23 июл 08, 09:50    [5972141]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
Да, совсем забыл, что в MS SQL 2005 появился таки Snapshot Isolation. Только чудится мну, что работает это всё только в версионном режиме
23 июл 08, 09:52    [5972151]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
FreemanZAV
Только чудится мну, что работает это всё только в версионном режиме


Про то, что Вам чудится, можно по-подробнее?
23 июл 08, 09:54    [5972164]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
Так я идумал, господа, так я и думал (с)
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 июл 08, 09:58    [5972185]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
pkarklin
FreemanZAV
Только чудится мну, что работает это всё только в версионном режиме


Про то, что Вам чудится, можно по-подробнее?


Да пож-а:
Once snapshot isolation is enabled, updated row versions for each transaction are maintained in tempdb.
23 июл 08, 09:59    [5972201]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
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 июл 08, 10:06    [5972252]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 5 6 7 8 9 10 11 12 [13] 14   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить