Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 15   вперед  Ctrl
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

осторожно интересуюсь
а организовать примитивную очередь --- никак ?

Interbase служит для хранения и обработки данных. Для организации очередей есть более
другой софт.

Posted via ActualForum NNTP Server 1.5

13 май 15, 18:10    [17636168]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
осторожно интересуюсь
Guest
Dimitry Sibiryakov
осторожно интересуюсь
а организовать примитивную очередь --- никак ?

Interbase служит для хранения и обработки данных. Для организации очередей есть более
другой софт.


для чего мне нужна очередь на ресурс -- я вас вообще то не спрашивал.
спасибо.

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

или в интербейс есть "более другие" [не надо вводить это в обыденность, это таки речевая ошибка светы из иваново] методы подсчета таких инкрементально навариваемых агрегатов ?

если есть -- то какие ? (факультативный интерес, да. к маргинальным технологиям, да.)
13 май 15, 18:18    [17636205]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

осторожно интересуюсь
если есть -- то какие ?

Например такие:
https://www.sql.ru/forum/964534/hranimye-agregaty-bez-konfliktov-i-blokirovok-recept?hl=

Posted via ActualForum NNTP Server 1.5

13 май 15, 18:25    [17636238]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
осторожно интересуюсь
Guest
Dimitry Sibiryakov,
смотрб на первый пост, и задаюсь вопросом -- а что. между подсчетом тотала в первом стейтменте и делетом -- никто не может вставить и закоммитить запись ?
почему ?

а если может -- то в тотал сумма не попадёт, а в делете (в стандартном read commited) -- очень может. Или у вас снепшот для всех стейтментов определен началом транзакции ? как уровень изоляции зовётся ?

+
-- т.е. я такое умею в пж в read commited, но я по суррогатному id удаляю. чтобы лишнего не хапнуть.
13 май 15, 18:35    [17636287]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
осторожно интересуюсь,

а какая проблема со снапшотом? Главное чтобы он долгим не был. И как раз хранимые агрегаты помогают в этом.
13 май 15, 18:41    [17636308]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

осторожно интересуюсь
Или у вас снепшот для всех стейтментов определен началом
транзакции ? как уровень изоляции зовётся ?

Зовётся "concurency" и является умолчательным уровнем изоляции от начала времён.
Соответствует свежеизобретённому в MS "snapshot".

Posted via ActualForum NNTP Server 1.5

13 май 15, 18:44    [17636323]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
осторожно интересуюсь
Guest
Dimitry Sibiryakov
осторожно интересуюсь
если есть -- то какие ?

Например такие:
https://www.sql.ru/forum/964534/hranimye-agregaty-bez-konfliktov-i-blokirovok-recept?hl=

для неаддитивных агрегатов -- не взлетит.

печалька.

+
а я кое где люблю иметь неаддитивтные (неперестановочные) array-и в агрегатных полях -- в порядке денормализации, позволяющей хитромудрые поисковые индексы по разным комбинациям полей и выражений. в основном -- функциональные. Часто -- условные. Да и полей -- поболее одного
13 май 15, 18:44    [17636325]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
осторожно интересуюсь
Guest
Симонов Денис
осторожно интересуюсь,

а какая проблема со снапшотом? Главное чтобы он долгим не был. И как раз хранимые агрегаты помогают в этом.

до "repeatable read" я предпочитаю без нужды не подыматься, почти всегда можно и в "read commited" либо на суррогатах чеки, либо на служебных xmin/xmax выстроить.
13 май 15, 18:50    [17636348]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

осторожно интересуюсь
я кое где люблю иметь неаддитивтные (неперестановочные)
array-и в агрегатных полях -- в порядке денормализации, позволяющей хитромудрые поисковые
индексы по разным комбинациям полей и выражений

Но деталями ты, конечно же, не поделишься.

Posted via ActualForum NNTP Server 1.5

13 май 15, 18:52    [17636357]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
осторожно интересуюсь
Guest
Dimitry Sibiryakov
осторожно интересуюсь
я кое где люблю иметь неаддитивтные (неперестановочные)
array-и в агрегатных полях -- в порядке денормализации, позволяющей хитромудрые поисковые
индексы по разным комбинациям полей и выражений

Но деталями ты, конечно же, не поделишься.

а детали простые -- агрегируется нечто, в порядке очереди. используется с учетом порядка в массивах (он же -- порядок операций) .

используется вынужденно, типа "поисковое матвью" под поисковые запросы, плохо ложащиеся на изначальную модель данных (запросы с учетом порядка операций по объекту -- и индексы -- по функциям, от порядка в т.ч.).
всё сделано хендджобом, т.к. матвью "из корбки" пока куцые.

скучная проза жызни одним словом.
13 май 15, 18:58    [17636379]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
PgSQLAnonymous
Member

Откуда:
Сообщений: 84
Ggg_old
Топикстартеру рекомендую почитать хорошую инженерную статью, где уже все давно разложено:

SQLPERFOMANCE.com:The SNAPSHOT Isolation Level

Кстати да, статья хорошая.
Только про SSI там ничего, естественно, нет. Про него можно прочитать здесь https://wiki.postgresql.org/wiki/SSI и далее по ссылкам.
13 май 15, 19:27    [17636474]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
PgSQLAnonymous
Member

Откуда:
Сообщений: 84
Dimitry Sibiryakov
осторожно интересуюсь
а какими словесами и абстракциями он будет оформлен.

update обломится с ошибкой "update conflict" либо сразу, либо после коммита первой
транзакции в зависимости от параметров транзакции (которых у Interbase гораздо больше чем
только уровень изоляции).


А вот это вот "сразу" и ожидание "после коммита первой" за счёт чего достигается? ;)

Я вот тут что-то нашёл про Interbase:
When your transaction updates an existing row your transaction places a row level write lock on that row until the transaction ends. This prevents another transaction from updating the same row before your transaction either commits or rolls back. The lock resolution setting determines what happens to the other transaction when it tries to update a row that your transaction has locked.

По-моему, lock и ожидание --- это блокировка.
13 май 15, 19:39    [17636516]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

PgSQLAnonymous
А вот это вот "сразу" и ожидание "после коммита первой" за счёт чего
достигается? ;)

За счёт параметров транзакции wait/nowait.

PgSQLAnonymous
Я вот тут что-то нашёл про Interbase:

Где нашёл?

PgSQLAnonymous
По-моему, lock и ожидание --- это блокировка.

Да. Но эта блокировка не относится ни к строкам, ни к таблицам.

Posted via ActualForum NNTP Server 1.5

13 май 15, 19:55    [17636569]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
PgSQLAnonymous
Member

Откуда:
Сообщений: 84
Dimitry Sibiryakov
PgSQLAnonymous
А вот это вот "сразу" и ожидание "после коммита первой" за счёт чего
достигается? ;)

За счёт параметров транзакции wait/nowait.

Я имел в виду --- за счёт какого механизма?

Dimitry Sibiryakov
Где нашёл?


http://conferences.embarcadero.com/article/32280/

Dimitry Sibiryakov
Да. Но эта блокировка не относится ни к строкам, ни к таблицам.

В процитированном фрагменте 5 раз повторяется слово row и указан row level write lock.
То есть весь этот фрагмент неправильный?
13 май 15, 20:23    [17636635]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

PgSQLAnonymous
Я имел в виду --- за счёт какого механизма?

Семафоры и события.

PgSQLAnonymous
То есть весь этот фрагмент неправильный?

Правильный. Только упрощённый для понимания чайниками. Не расписывать же
последовательность действий на три страницы.

Posted via ActualForum NNTP Server 1.5

13 май 15, 20:39    [17636681]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
этта
Guest
Dimitry Sibiryakov
PgSQLAnonymous
Я имел в виду --- за счёт какого механизма?

Семафоры и события.

PgSQLAnonymous
То есть весь этот фрагмент неправильный?

Правильный. Только упрощённый для понимания чайниками. Не расписывать же
последовательность действий на три страницы.

вот токо не надо
переводим на человеческий:
"для понимания чайниками" == "годная правильная абстракция"
, которой оперируют правильные аффтары
, но не способны местные адепты жаренного питуха

или вы думаете, что роу-лок в других субд реализован как мужик с пудовым замком , сидящий прямо на секторе диска с записью ?
13 май 15, 20:53    [17636739]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

этта
или вы думаете, что роу-лок в других субд реализован как мужик с пудовым замком
, сидящий прямо на секторе диска с записью ?

Зачем думать, когда можно просто точно знать, что в лок-менеджере Interbase нет объекта
блокировки класса "запись"?.. "Страница", "транзакция", "таблица" и т.д. и т.п. - есть.
"Запись" - нет.

Posted via ActualForum NNTP Server 1.5

13 май 15, 21:07    [17636799]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
этта
Guest
Dimitry Sibiryakov,

т.е. блокировки записей осуществляются помимо "официального" лок-манагера.
немного более другим механизмом
бываит.

но осуществляются же ?

Сообщение было отредактировано: 15 май 15, 00:18
13 май 15, 21:33    [17636880]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

этта
но осуществляются же ?

Нет, не осуществляются.

Posted via ActualForum NNTP Server 1.5

13 май 15, 21:41    [17636919]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
этта
Guest
Dimitry Sibiryakov,

то, что у вас аспергер -- я давно понял

т.е. вас спрашивать ни о чём не имеет смысла
бывает
13 май 15, 22:09    [17637002]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
Dimitry Sibiryakov
Member

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

этта
вас спрашивать ни о чём не имеет смысла

Ну, если мои ответы не укладываются в Ваше видение мира, это, конечно, достойный повод их
игнорировать. Зашоренность нынче в моде.

Posted via ActualForum NNTP Server 1.5

13 май 15, 22:40    [17637137]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30244
осторожно интересуюсь
простите, а если в 5-ти транзакциях я захочу изменить одну и ту же запись , в порядке 1.2.3.4.5, так и не заккомитив ни одну из.
то что у меня произойдет, и в каком случае ?

при чем тут коммиты? На втором же апдейте той же записи, что уже изменена в какой-то предыдущей транзакции, ты или получишь повисание в режиме wait, или получишь отлуп в режиме nowait с сообщением "update confict ...".
Тут вам не MS SQL с его inserted/updated/deleted.
14 май 15, 01:54    [17637552]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30244
этта
т.е. блокировки записей осуществляются помимо "официального" лок-манагера.
немного более другим механизмом
бываит.

но осуществляются же ?

вас, анонимов, не поймешь. Либо это чудик с PostgreSQL, который про его версионность вообще ничего не знает (или вообще про версионность), либо вы просто человек, впервые с версионностью столкнувшийся.

Популярно про версионность в InterBase/Firebird изложено в статьях на ibase.ru. Например, можно читать отсюда
http://www.ibase.ru/devinfo/mga.htm

а ответ на ваш вопрос -
если происходит попытка update, и у обновляемой записи обнаруживается версия, созданная другой активной транзакцией, то или выдается сообщение об обломе (в режиме nowait), или происходит повисание по wait с ожиданием результата завершения (commit/rollback) транзакции, которая успела обновить запись первой.

То есть, как таковых блокировок в версионнике нет вообще. Есть единственный конфликт - конфликт обновления одной и той же записи из двух активных транзакций. Причем, устанавливать какую-то там "блокировку" для этого случая нет необходимости. Новая версия записи, созданная первой транзакцией, и есть этот самый "индикатор блокировки".
14 май 15, 02:03    [17637554]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30244
этта
т.е. блокировки записей осуществляются помимо "официального" лок-манагера.
немного более другим механизмом

я еще добавлю, что по крайней мере в InterBase/Firebird "официальный лок-манагер" никак не виден на уровне записей.
Еще раз повторю, что в версионнике единственный конфликт - это обновление одной и той же записи из двух активных транзакций. Для этого, чтобы исключить все остальные конфликты между читателями и писателями, и придуман версионник.
14 май 15, 02:06    [17637555]     Ответить | Цитировать Сообщить модератору
 Re: Чем плох блокировочник по сравнению с версионником?  [new]
этта
Guest
kdv
осторожно интересуюсь
простите, а если в 5-ти транзакциях я захочу изменить одну и ту же запись , в порядке 1.2.3.4.5, так и не заккомитив ни одну из.
то что у меня произойдет, и в каком случае ?

при чем тут коммиты? На втором же апдейте той же записи, что уже изменена в какой-то предыдущей транзакции, ты или получишь повисание в режиме wait, или получишь отлуп в режиме nowait с сообщением "update confict ...".
Тут вам не MS SQL с его inserted/updated/deleted.
т.е. первая транзакция "модифицирует" (термин , устраивающий курильщика) ресурс "изменяемая запись" таким образом, что он становится недоступен второй транзакции.
-- вот это и есть "блокировка записи" здорового человека. (а не наличие записи в официальном некрологе блокировок)


вот ещё интересно, что это за ресурс такой -- "транзакция" ?
или уровень-то он --"тарнзакции", а лочатся вполне себе реальные ресурсы ?

Сообщение было отредактировано: 15 май 15, 00:19
14 май 15, 08:06    [17637680]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 15   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить