|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
осторожно интересуюсьа организовать примитивную очередь --- никак ? Interbase служит для хранения и обработки данных. Для организации очередей есть более другой софт. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:10 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovосторожно интересуюсьа организовать примитивную очередь --- никак ? Interbase служит для хранения и обработки данных. Для организации очередей есть более другой софт. для чего мне нужна очередь на ресурс -- я вас вообще то не спрашивал. спасибо. так могу я организовать очередь на ресурс, если к примеру хочу согласованно обновлять "агрегатное" значение некой "суммирующей" таблички, не прерывая транзакции, по касательной наваривающие ту же строку ? или в интербейс есть "более другие" [не надо вводить это в обыденность, это таки речевая ошибка светы из иваново] методы подсчета таких инкрементально навариваемых агрегатов ? если есть -- то какие ? (факультативный интерес, да. к маргинальным технологиям, да.) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:18 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
осторожно интересуюсьесли есть -- то какие ? Например такие: http://www.sql.ru/forum/964534/hranimye-agregaty-bez-konfliktov-i-blokirovok-recept?hl= Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:25 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, смотрб на первый пост, и задаюсь вопросом -- а что. между подсчетом тотала в первом стейтменте и делетом -- никто не может вставить и закоммитить запись ? почему ? а если может -- то в тотал сумма не попадёт, а в делете (в стандартном read commited) -- очень может. Или у вас снепшот для всех стейтментов определен началом транзакции ? как уровень изоляции зовётся ? -- т.е. я такое умею в пж в read commited, но я по суррогатному id удаляю. чтобы лишнего не хапнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:35 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
осторожно интересуюсь, а какая проблема со снапшотом? Главное чтобы он долгим не был. И как раз хранимые агрегаты помогают в этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:41 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
осторожно интересуюсьИли у вас снепшот для всех стейтментов определен началом транзакции ? как уровень изоляции зовётся ? Зовётся "concurency" и является умолчательным уровнем изоляции от начала времён. Соответствует свежеизобретённому в MS "snapshot". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:44 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovосторожно интересуюсьесли есть -- то какие ? Например такие: http://www.sql.ru/forum/964534/hranimye-agregaty-bez-konfliktov-i-blokirovok-recept?hl= для неаддитивных агрегатов -- не взлетит. печалька. а я кое где люблю иметь неаддитивтные (неперестановочные) array-и в агрегатных полях -- в порядке денормализации, позволяющей хитромудрые поисковые индексы по разным комбинациям полей и выражений. в основном -- функциональные. Часто -- условные. Да и полей -- поболее одного ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:44 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Симонов Денисосторожно интересуюсь, а какая проблема со снапшотом? Главное чтобы он долгим не был. И как раз хранимые агрегаты помогают в этом. до "repeatable read" я предпочитаю без нужды не подыматься, почти всегда можно и в "read commited" либо на суррогатах чеки, либо на служебных xmin/xmax выстроить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:50 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
осторожно интересуюсья кое где люблю иметь неаддитивтные (неперестановочные) array-и в агрегатных полях -- в порядке денормализации, позволяющей хитромудрые поисковые индексы по разным комбинациям полей и выражений Но деталями ты, конечно же, не поделишься. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:52 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovосторожно интересуюсья кое где люблю иметь неаддитивтные (неперестановочные) array-и в агрегатных полях -- в порядке денормализации, позволяющей хитромудрые поисковые индексы по разным комбинациям полей и выражений Но деталями ты, конечно же, не поделишься. а детали простые -- агрегируется нечто, в порядке очереди. используется с учетом порядка в массивах (он же -- порядок операций) . используется вынужденно, типа "поисковое матвью" под поисковые запросы, плохо ложащиеся на изначальную модель данных (запросы с учетом порядка операций по объекту -- и индексы -- по функциям, от порядка в т.ч.). всё сделано хендджобом, т.к. матвью "из корбки" пока куцые. скучная проза жызни одним словом. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 18:58 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Ggg_oldТопикстартеру рекомендую почитать хорошую инженерную статью, где уже все давно разложено: SQLPERFOMANCE.com:The SNAPSHOT Isolation Level Кстати да, статья хорошая. Только про SSI там ничего, естественно, нет. Про него можно прочитать здесь https://wiki.postgresql.org/wiki/SSI и далее по ссылкам. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 19:27 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
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.05.2015, 19:39 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousА вот это вот "сразу" и ожидание "после коммита первой" за счёт чего достигается? ;) За счёт параметров транзакции wait/nowait. PgSQLAnonymousЯ вот тут что-то нашёл про Interbase: Где нашёл? PgSQLAnonymousПо-моему, lock и ожидание --- это блокировка. Да. Но эта блокировка не относится ни к строкам, ни к таблицам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 19:55 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovPgSQLAnonymousА вот это вот "сразу" и ожидание "после коммита первой" за счёт чего достигается? ;) За счёт параметров транзакции wait/nowait. Я имел в виду --- за счёт какого механизма? Dimitry SibiryakovГде нашёл? http://conferences.embarcadero.com/article/32280/ Dimitry SibiryakovДа. Но эта блокировка не относится ни к строкам, ни к таблицам. В процитированном фрагменте 5 раз повторяется слово row и указан row level write lock. То есть весь этот фрагмент неправильный? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 20:23 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousЯ имел в виду --- за счёт какого механизма? Семафоры и события. PgSQLAnonymousТо есть весь этот фрагмент неправильный? Правильный. Только упрощённый для понимания чайниками. Не расписывать же последовательность действий на три страницы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 20:39 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovPgSQLAnonymousЯ имел в виду --- за счёт какого механизма? Семафоры и события. PgSQLAnonymousТо есть весь этот фрагмент неправильный? Правильный. Только упрощённый для понимания чайниками. Не расписывать же последовательность действий на три страницы. вот токо не надо переводим на человеческий: "для понимания чайниками" == "годная правильная абстракция" , которой оперируют правильные аффтары , но не способны местные адепты жаренного питуха или вы думаете, что роу-лок в других субд реализован как мужик с пудовым замком , сидящий прямо на секторе диска с записью ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 20:53 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
эттаили вы думаете, что роу-лок в других субд реализован как мужик с пудовым замком , сидящий прямо на секторе диска с записью ? Зачем думать, когда можно просто точно знать, что в лок-менеджере Interbase нет объекта блокировки класса "запись"?.. "Страница", "транзакция", "таблица" и т.д. и т.п. - есть. "Запись" - нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 21:07 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, т.е. блокировки записей осуществляются помимо "официального" лок-манагера. немного более другим механизмом бываит. но осуществляются же ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 21:33 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
эттано осуществляются же ? Нет, не осуществляются. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 21:41 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, то, что у вас аспергер -- я давно понял т.е. вас спрашивать ни о чём не имеет смысла бывает ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 22:09 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
эттавас спрашивать ни о чём не имеет смысла Ну, если мои ответы не укладываются в Ваше видение мира, это, конечно, достойный повод их игнорировать. Зашоренность нынче в моде. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2015, 22:40 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
осторожно интересуюсьпростите, а если в 5-ти транзакциях я захочу изменить одну и ту же запись , в порядке 1.2.3.4.5, так и не заккомитив ни одну из. то что у меня произойдет, и в каком случае ? при чем тут коммиты? На втором же апдейте той же записи, что уже изменена в какой-то предыдущей транзакции, ты или получишь повисание в режиме wait, или получишь отлуп в режиме nowait с сообщением "update confict ...". Тут вам не MS SQL с его inserted/updated/deleted. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2015, 01:54 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
эттат.е. блокировки записей осуществляются помимо "официального" лок-манагера. немного более другим механизмом бываит. но осуществляются же ? вас, анонимов, не поймешь. Либо это чудик с PostgreSQL, который про его версионность вообще ничего не знает (или вообще про версионность), либо вы просто человек, впервые с версионностью столкнувшийся. Популярно про версионность в InterBase/Firebird изложено в статьях на ibase.ru. Например, можно читать отсюда http://www.ibase.ru/devinfo/mga.htm а ответ на ваш вопрос - если происходит попытка update, и у обновляемой записи обнаруживается версия, созданная другой активной транзакцией, то или выдается сообщение об обломе (в режиме nowait), или происходит повисание по wait с ожиданием результата завершения (commit/rollback) транзакции, которая успела обновить запись первой. То есть, как таковых блокировок в версионнике нет вообще. Есть единственный конфликт - конфликт обновления одной и той же записи из двух активных транзакций. Причем, устанавливать какую-то там "блокировку" для этого случая нет необходимости. Новая версия записи, созданная первой транзакцией, и есть этот самый "индикатор блокировки". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2015, 02:03 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
эттат.е. блокировки записей осуществляются помимо "официального" лок-манагера. немного более другим механизмом я еще добавлю, что по крайней мере в InterBase/Firebird "официальный лок-манагер" никак не виден на уровне записей. Еще раз повторю, что в версионнике единственный конфликт - это обновление одной и той же записи из двух активных транзакций. Для этого, чтобы исключить все остальные конфликты между читателями и писателями, и придуман версионник. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2015, 02:06 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
kdvосторожно интересуюсьпростите, а если в 5-ти транзакциях я захочу изменить одну и ту же запись , в порядке 1.2.3.4.5, так и не заккомитив ни одну из. то что у меня произойдет, и в каком случае ? при чем тут коммиты? На втором же апдейте той же записи, что уже изменена в какой-то предыдущей транзакции, ты или получишь повисание в режиме wait, или получишь отлуп в режиме nowait с сообщением "update confict ...". Тут вам не MS SQL с его inserted/updated/deleted.т.е. первая транзакция "модифицирует" (термин , устраивающий курильщика) ресурс "изменяемая запись" таким образом, что он становится недоступен второй транзакции. -- вот это и есть "блокировка записи" здорового человека. (а не наличие записи в официальном некрологе блокировок) вот ещё интересно, что это за ресурс такой -- "транзакция" ? или уровень-то он --"тарнзакции", а лочатся вполне себе реальные ресурсы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2015, 08:06 |
|
|
start [/forum/topic.php?fid=35&msg=38957968&tid=1552327]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 374ms |
0 / 0 |