powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
29 сообщений из 29, показаны все 2 страниц
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654424
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... т.е. с таким TIL, который отличается от "текущей" транзакции ? Ибо надо :-)
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654454
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сомневаюсь. А аргументация у тебя зачетная, это да.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654470
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид... т.е. с таким TIL, который отличается от "текущей" транзакции ? Ибо надо :-)
А одобрение SQL-комитета на это имеется? :)
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654477
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrсомневаюсь. А аргументация у тебя зачетная, это да.
При старте транзакции хочется задать её параметры. Это нормальная аргументация? :)
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654496
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

а в SQL комитете есть понятие автономная транзакция?
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654629
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrсомневаюсь. А аргументация у тебя зачетная, это да.Если основная трн стартовала как SNAPSHOT, то никаких новых результатов в базе она не видит. И когда она делает некую длительную обработку, то при попытке обновления изменённых другими транзакциями данных получит облом. Было бы разумнее сразу делать периодически проверку (в течение этой тягомотной обработки): не поменялись ли некоторые строки. Но для снапшота они всегда "нет, не поменялись".
А вот если бы такую проверку делать в автономке, стартующей из-под снапшота, но с TIL = RC, с выбросом исключения при обнаружении "измены", то было бы шоколадно.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654648
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

а если был холостой апдейт / селект с локом? Твой RC покажет что разницы нет, но апдейт в снапшоте все равно свалится с ошибкой. Выдумываешь сам себе проблемы, чтобы было интереснее их решать.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654657
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для EXECUTE STATEMENT ON EXTERNAL WITH AUTONOMOUS TRANSACTION указание TIL могло быть полезным
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654677
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrа если был холостой апдейт / селект с локомНичто не мешает выполнить сначала:
Код: sql
1.
in autonomous transaction do update t set some_aux_int_fld = gen_id(g, 1);

- а затем уже лочить эту строку холостым апдейтом. И такое изменение уже будет видно в RC.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654729
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид> Ничто не мешает выполнить сначала:

Ничто не мешает работать с транзакциями по уму.

P.S. Приведённый им пример - далеко не единственный,
там фантомов и и подводных камней хватает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654765
Евгений Килин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrсомневаюсь. А аргументация у тебя зачетная, это да.
Хм, вроде когда я создвал тикеты ты не был против?
http://tracker.firebirdsql.org/browse/CORE-4017
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654768
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Килин,

я и сейчас не против. Я просто троллю его "ибо надо" :-) Он уже дошел до dummy-поля для ручного контроля лок-конфликтов. Что будет завтра - боюсь даже представить. Я искренне счастлив что у нас нет dirty read, а то таблоид бы уже написал к своему тесту кастомный эмулятор снапшота поверх грязного чтения.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654775
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Килин> Хм, вроде когда я создвал тикеты ты не был против?
Евгений Килин> http://tracker.firebirdsql.org/browse/CORE-4017

Дело не в "против", а в аргументации и примере.
Более того, это уже обсуждалось, IIRC.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654777
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамНичто не мешает работать с транзакциями по уму."по уму" - это ты что именно имеешь в виду ? "короткие пишущие да длинные читающие", что ле ?

Гаджимурадов РустамP.S. Приведённый им пример - далеко не единственный,
там фантомов и и подводных камней хватает.Каких именно "фантомов", приведи пример, плз.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654788
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrОн уже дошел до dummy-поля для ручного контроля лок-конфликтов.А что плохого в этом ? Транзакция Т1 стартовала некую обработка ("проведение инвойса номер 123", например; может несколько минут идти). Какой смысл её продолжать, если некий другой документ, который не должен меняться на протяжении всей этой обработки, вдруг поменялся, причём сразу после старта Т1 - лучше сразу обломаться, чем узнать про это через 5 минут.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654806
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

глянул я твой тест. Правда не запускал его ещё. Ну что могу сказать... логирование статистики влияет на саму статистику. Причём КМК иногда это может быть существенно.
update perf_log может давать блокировки и копить мусор. Ты бы как нибудь переделал чтобы лог делал только insert, правда анализ такого лога несколько сложнее. Но тебе это раз плюнуть
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654818
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидdimitrОн уже дошел до dummy-поля для ручного контроля лок-конфликтов.А что плохого в этом ? Транзакция Т1 стартовала некую обработка ("проведение инвойса номер 123", например; может несколько минут идти). Какой смысл её продолжать, если некий другой документ, который не должен меняться на протяжении всей этой обработки, вдруг поменялся, причём сразу после старта Т1 - лучше сразу обломаться, чем узнать про это через 5 минут.
чтобы ничего "вдруг" не менялось, человечество придумало select with lock. А проведением инвойса за 5 минут ты меня вообще убиваешь, у нас явно разные понятия об OLTP...
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654821
Евгений Килин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамДело не в "против", а в аргументации и примере.
Более того, это уже обсуждалось, IIRC.
Казалось бы на столько естественное желание при старте транзакции указать ее параметры :)
Ну лично меня интересует в первую очередь управление читающая или пишущая транзакция.
Особенно это интересно при походах в другую базу в ES on EDS.
Да и при аудите внутри одной базы можно попользовать.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654823
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денислогирование статистики влияет на саму статистику. Причём КМК иногда это может быть существенно.Из DDL таблицы perf_log надо давно уже выкинуть все индексы, кроме ПК и вот этого:
Код: sql
1.
CREATE DESCENDING INDEX PERF_LOG_DTS_BEG_DESC ON PERF_LOG (DTS_BEG);

(он позволяет быстро вытащить записи, которые добавились "вот прямо только что").
С ПК+одним индексом по таймштампу никаких особых тормозов быть не должно, тем паче что в таблицу эту пишутся только моменты "входа" и "выхода" из ХП, но не итерации внутри циклов и проч.

Симонов Денисupdate perf_log может давать блокировки и копить мусор.Не может он давать блокировки. Ибо апдейт идёт только на вызове для "выхода" из ХП, по ID'шнику, который был сгенерён вызовом "входа". Конфликтов там нет.

ЗЫ. Львиная доля лок-конфликтов - при попытках списать товара больше, чем возможно. На втором месте - сторнирование оплат по документам, там заголовки надо лочить. Но есть идейка, как это обойти.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654835
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид> "по уму" - это ты что именно имеешь в виду ?
Таблоид> "короткие пишущие да длинные читающие", что ле ?

"По уму" - это как лучше в каждом конкретном случае.
В т.ч. короткие пишущие и пр. обычные правила.

> Каких именно "фантомов", приведи пример, плз.

Да много примеров придумать можно.
Фактически, всё, что связано с [no]record_version.
Плюс в твоём же примере проверка будет
ненадёжной, а значит почти бесполезной.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654838
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrА проведением инвойса за 5 минут ты меня вообще убиваешь, у нас явно разные понятия об OLTP...я и сам тут "убитый" сижу, второй день уже... когда конкурентных аттачей нет (или их мало), то всё пучком, как только подкидываю дров - капут, вчера еще говорил :-)

0xFF.
Но вообще-то, время "подъёма" инвойса сильно зависит от числа строк в нём и значений в графе "кол-во". Ибо поднять инвойс - это не только поменять на основе его содержимого остатки изделий, но еще и создать необходимые резервы по клиентским заказам. Ибо почти в каждом инвойсе (у нас, по кр. мере), весьма много заказных изделий, и выкладывать их в свободный доступ никак нельзя.
Если в инвойсе 400-500 строк, а в кл. заказх обычно по 3-5 строк, то вот и получается, что надо создавать резервы по сотням связаных документов. И тогда эта операция, действительно, уже "не очень" ОЛТП.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654846
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

насчёт блокировок я может и не прав. Но мусор update будет генерировать в любом случае. Если это запускается на классике, то он там вообще никогда не собирается. А если на супере собирается фоновым сборщиком мусора, а это должно влиять на статистику.

А чего работу с логом как package не оформил?
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654848
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Килин> Казалось бы на столько естественное желание
Евгений Килин> при старте транзакции указать ее параметры :)

Желание естесственное, а вот необходимость - не всегда. :)

> Особенно это интересно при походах в другую базу в ES on EDS.

Как раз для WITH AUTONOMOUS TRANSACTION это в первую очередь
и нужно, хотя разделение на читающую/пишущую тут вторично, ИМХО.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654855
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНо мусор update будет генерировать в любом случае. Если это запускается на классике, то он там вообще никогда не собирается. А если на супере собирается фоновым сборщиком мусора, а это должно влиять на статистику.Отрубить-то сбор статистики недолго, всё же на одну ХП запитано (sp_add_to_perf_log). Добавить туда условие "если запрещено настройками - пшловон", и всего делов :-)
Но:
1) я туда пишу не только время вып-я, но и gdscode при аварийном завершении к-л ХП; это позволило увидеть процент аварийных завершений и причины их (т.е. на чём: user_exc, lock_conflict или что-то еще). А значит, можно сделать вывод о том, какой "КПД" у всего теста, т.е. сколько вообще полезной инфы пишется, а сколько обламывается.
2) при апдейте:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
update perf_log g
set g.dts_end = :v_dts,
   g.elapsed_ss = datediff(second from g.dts_beg to :v_dts),
   g.elapsed_ms = datediff(millisecond from g.dts_beg to :v_dts),
   g.fb_gdscode = :a_gdscode,
   g.info = coalesce( g.info, '') || coalesce( iif(g.info>'', '; ', '') || :a_info, '')
where id = :a_perf_log_id
returning g.elapsed_ms into v_result;

- в мусор попадает не так уж много: поля dts_end, elapsed_xx, fb_gdscode всегда перед этим пустые, а info почти всегда тоже пустое.
Да и вообще: какая свадьба без баяна, а база без мусора ? ;-)

Симонов ДенисА чего работу с логом как package не оформил?я глядел на твои мессаги в подфоруме ИБЭ, про пакеты которые... и как-то стрёмно стало еще и с этим упереться в какую-нить граблю... :-)
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654863
Евгений Килин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамЕвгений Килин> Казалось бы на столько естественное желание
Евгений Килин> при старте транзакции указать ее параметры :)

Желание естесственное, а вот необходимость - не всегда. :)
Конечно не всегда, но это ведь не значит что такие желания должны идти в лес? :)
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654868
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrТаблоид,

а если был холостой апдейт / селект с локом? Твой RC покажет что разницы нет, но апдейт в снапшоте все равно свалится с ошибкой. Выдумываешь сам себе проблемы, чтобы было интереснее их решать.
Хочу из снапшота запустить автономку и выполнить там:
Код: sql
1.
insert into EventLog (EventId, Cnt) values (32, 1);


А в триггере after insert for EventLog прописано:
Код: sql
1.
update Events set Cnt = Cnt + New.Cnt where Id = New.EventId;



Снапшот живёт примерно 5 секунд, и в самом конце в автономной транзакции делает вышеописанную "insert into EventLog".
Хочу иметь 100 параллельных снапшотов и не получать наружу ошибок от локов при "update Events". Какой код мне нужно прописать в код триггера, чтобы при конфликте обновления я мог повторно пытаться запускать update, пока он собственно не отработает? :)

Если бы автономная транзакция была RC, тогда задача была бы решаемой. А при конфликте в снапшоте уже всё, приплыли.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654871
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавить в таблицу Events поле trn_id int и
Код: sql
1.
update Events set Cnt = Cnt + New.Cnt where Id = New.EventId and Events.trn_id = current_transaction;

Но затем, ес-сно, делать уже "сборку-схлопывание" этой таблицы. Отдельным аттачем, наверное, или с пробовать "по-тихому" залочить семафорную строку в служебной таблице и, если получилось - схлопнуть, иначе - также тихо выйти. ИМХО.
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654890
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидДобавить в таблицу Events поле trn_id int и
Код: sql
1.
update Events set Cnt = Cnt + New.Cnt where Id = New.EventId and Events.trn_id = current_transaction;

Но затем, ес-сно, делать уже "сборку-схлопывание" этой таблицы. Отдельным аттачем, наверное, или с пробовать "по-тихому" залочить семафорную строку в служебной таблице и, если получилось - схлопнуть, иначе - также тихо выйти. ИМХО.
Понятно что если нужно выкрутиться, то выкрутишься :) Но имхо когда приходится на простую задачу городить костыль - это верный признак что где-то недоработка :)
...
Рейтинг: 0 / 0
Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
    #38654902
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeкогда приходится на простую задачу городить костыль - это верный признак что
где-то недоработка :)
Ага. Такое ведение хранимых остатков это всегда недоработка. Возможно даже в выборе СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Будет ли в ФБ-3.чх возможность стартовать автономную трн с "другим" TIL ?..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]