Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность sw
Всем привет. Все наверное знают, что для сереализации неких процедур (или потоков) используются мютексы, семафоры, критические секции и т.д. Не секрет, что таковые действия иногда бывают необходимы и в СУБД при много пользовательских обработках. С блокировочниками всё понятно (у них

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Мадорский Г . В .
Что-то типа такого подойдет? while Gen_Id(LockGen,0) = 1 do begin end; Select Gen_Id(LockGen,1) from rdb$database Тута работаем... ... Select Gen_Id(LockGen,-1) from rdb$database when any Select Gen_Id(LockGen,-Gen_Id(LockGen,0)) from rdb$database

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность sw
Что-то типа такого подойдет? Спасибо, примерно что-то вроде этого (только с квадратными колёсами) недавно изобретал.:) А насколько часто приходится использовать такие вещи в реальных задачах? Какие минусы проявляются при подобных подходах? (Например ясно, что любой может безнаказанно сделать

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Alexey Popov
sw wrote: понятно (у них по-другому если и получается, то не очень). В версионной архитектуре не минусов блокирующего подхода. Но для реализации например псевдо-SERIALIZEBLE изоляции (например хотябы для агрегатов) наверное был бы полезен мютексы поддерживаемые на уровне СУБД.

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность sw
Серилизация делается очень просто. RTFM look_write protected. Это ясно. Как обехать (или избежать) я знаю и использую. Но для читающих транзакций достаточно снапшота. Изначальный мой вопрос имеет смысл только для RC.

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Horsun Vlad
Мадорский Г.В. ... Что-то типа такого подойдет? while Gen_Id(LockGen,0) = 1 do begin end; Select Gen_Id(LockGen,1) from rdb$database Тута работаем... Не пойдёт. Ибо нет гарантии, что Gen_Id(LockGen,1) выполнил только один процесс. -- Хорсун Влад

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Мадорский Г . В .
sw [EMAIL PROTECTED] сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED] Что-то типа такого подойдет? Спасибо, примерно что-то вроде этого (только с квадратными колёсами) недавно изобретал.:) Ну есть и еще способы - уровнем изоляции транзакций поиграться, select for

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Мадорский Г . В .
Horsun Vlad [EMAIL PROTECTED] сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED] Мадорский Г.В. ... Что-то типа такого подойдет? while Gen_Id(LockGen,0) = 1 do begin end; *** Select Gen_Id(LockGen,1) from rdb$database Тута работаем... Не пойдёт.

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Horsun Vlad
Мадорский Г.В. ... Horsun Vlad ... Мадорский Г.В. ... Что-то типа такого подойдет? while Gen_Id(LockGen,0) = 1 do begin end; *** Select Gen_Id(LockGen,1) from rdb$database Тута работаем... Не пойдёт. Ибо нет гарантии, что Gen_Id(LockGen,1)

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность sw
update MASTER_TABLE set MY_AGREGAT = (select sum(COST) from DETAIL_TABLE) две транзакции одновременно такое сделать не смогут - выскочит dead lock я таким образом считаю агрегаты по документам PS пример есс-но нерабочий, оформляется в виде процедуры Спасибо, но это из несколько другой оперы.

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Мадорский Г . В .
while Gen_Id(LockGen,0) = 1 do begin end; *** Select Gen_Id(LockGen,1) from rdb$database Тута работаем... Не пойдёт. Ибо нет гарантии, что Gen_Id(LockGen,1) выполнил только один процесс. В смысле может вклинится еще один процесс в промежуток отмеченный

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Ded
Мадорский Г.В. wrote: Конечно - кто-то же должен уменьшить генератор ;) Так почему кто-то другой не может его увеличить ? Вероятность такая есть конечно, спорить не буду. Но я лет пять назад ей пренебрег. Пока не нарывался... :). Без блокировок (в том или ином виде) такие задачи

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Boulitchev Aleksey
Понятно что такие действия в общем случае желательны в снапшотах. Но всё-таки... хочешь сделать так чтобы ReadCommited работала также как снапшот? -- Булычев Алексей http://www.stella-npf.ru

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Horsun Vlad
Boulitchev Aleksey ... Понятно что такие действия в общем случае желательны в снапшотах. Но всё-таки... хочешь сделать так чтобы ReadCommited работала также как снапшот? Есть разница когда снапшот работает в пределах всей тр-ции, или когда у каждого запроса _свой новый_ снапшот --

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Ded
sw wrote: Нет. Просто интересно было ситуация, вкоторой каждый запрос оборачивается в своего рода мини снапшот. И насколько таковая фича реальна в FB. Конечно остаются ещё много неопределённостей (вложенные запросы, процедуры, срабатывание триггеров и т.д.). Так. Знач, важно чтоб агрегат

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Boulitchev Aleksey
оригинальничания? Всё-тки трудно, как же трудно, божежмой, сначала думать, потом хотеть, наоборот-то куда как антересней... Дед, они наверное о том, что в агрегате типа select sum(*), count(*), avg(FIELD1) from MY_TABLE может пойти рассогласование. мое-то мнение простое, если группа

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Ded
Boulitchev Aleksey wrote: мое-то мнение простое, если группа отчетов(выборок в отчете) может расходиться - значит снапшот, если отчет оценочный - значит read commited Дык и я об том же. -- Regards. Ded.

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Мадорский Г . В .
Лисапет на гусеничном ходу гришь? А чо бы просто-напросто не завести табличку Critical_Functions Function_Name (или Functions_Group_Name) Column_For_Block и долбиться в неё с блокировкой перед стартом функции до получения удовлетворения? Классический случай варианта 6 упомянутой тобой

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Ded
Мадорский Г.В. wrote: P.S. А ты на конференции будешь? Не-а. -- Regards. Ded.

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Boulitchev Aleksey
P.S. А ты на конференции будешь? Не-а. а я кристалла калужского заготовил. может передать через доверенное лицо? -- Булычев Алексей http://www.stella-npf.ru

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Ded
Boulitchev Aleksey wrote: а я кристалла калужского заготовил. может передать через доверенное лицо? Смущаясь и ковыряя ножкой линолеум - ну... если Глебушка поедет... с ним вместе и продегустируем потом, спасибо :) -- Regards. Ded.

Re: Поддержка мютексов на уровне сервера

2006-10-10 Пенетрантность Мадорский Г . В .
P.S. А ты на конференции будешь? Не-а. Жаль. А то жена мне тут притаранила оч-чень недурственного коньячку. Думаю в поезд с собой бутылек прихватить :). Правда я и сам до сих пор в непонятках. Может в пятницу на урал лететь придется... With b/r. Gleb.