Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Недостатки в FB 2.5 / 25 сообщений из 31, страница 1 из 2
30.04.2015, 11:14
    #38949436
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Привет всем.
Давно уже мучаюсь с такои проблемой - FB 2.5 CS с работающими юзерами.
Есть таблица А и таблица Б. Не выгоняя юзеров надо в таблице Б поставить
Foreign Key на таблицу А и тут получается какой то deadlock, вроде, а то таблица
А как бы залокировается и не один юзер уже не может туда ничего добавить
и сам Foreign Key тоже неставится, какбы друг на друга ждут и всё ... копец :(
Ето вроде как бы логично если в таблице Б были какие то записи, но она ПУСТАЯ ...

Кто в курсе - в троике что-что такое исправлялось ?

WBR
Janex
...
Рейтинг: 0 / 0
30.04.2015, 11:19
    #38949444
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Janex,

wait в транзакции указывал?
...
Рейтинг: 0 / 0
30.04.2015, 11:42
    #38949492
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
JanexНе выгоняя юзеров надо в таблице Б поставить
Foreign Key на таблицу А
Может лучше это все описать фактами? DDL таблиц и запросы.
...
Рейтинг: 0 / 0
30.04.2015, 11:45
    #38949498
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
JanexДавно уже мучаюсь с такои проблемой - FB 2.5 CS с работающими юзерами.Это задокументированное поведение. менять метаданные надо монопольно.

pastorwait в транзакции указывал?Для ПК не поможет. Для хранимок, да, помогает грубо вкорячить, что само по себе не очень хорошо и может привести к веселым артефактам из-за кэширования метаданных.
...
Рейтинг: 0 / 0
30.04.2015, 11:59
    #38949515
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
pastorJanex,

wait в транзакции указывал?

Стоит в експерте по дефаулту:
isc_tpb_read_committed
isc_tpb_rec_version
isc_tpb_nowait

Имееш в виду убрать isc_tpb_nowait или что ?


pastorIvan_Pisarevsky ,
Это задокументированное поведение. менять метаданные надо монопольно.
Понемаю, что так правильнее, но если таблица, в каторои ставится FK на другую, пустая
и некто с неи неработает (сам только что создал) то такие блокировки как бы неадекватны
и очень сильно мешает ставить мелкие обновления :(
...
Рейтинг: 0 / 0
30.04.2015, 12:07
    #38949529
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Когда-то давно, когда FB ещё не было и в планах, кто-то где-то решил, что создавать FK можно только в единственном монопольном эксклюзивном коннекте.
И так оно и было, можете проверить IB6\FB1.
При этом, этот кто-то не озаботился целостностью обычного (не-FK) индекса, и в результате было возможно построить индекс без учета ключей, вставленных
в таблицу во время построения индекса.

Потом появился FB, и мы увидели, что не нужно для создания FK эксклюзивного подключения - достаточно блокировать обе таблицы на чтение.
Как, впрочем и для построения любого индекса - достаточно блокировать таблицу от изменений.

Это было реализовано в FB 2.0, IIRC, и с тех пор все успели забыть про требование эксклюзивного коннекта для построения FK.

Теперь к конкретике. FB блокирует таблицу от изменений перед началом построения индекса.
Такая блокировка будет возможна только когда завершатся все тр-ции, в которых таблица изменялись.
Время ожидания блокировки есть лок-таймаут тр-ции, в корой выполняется DDL.
В случае индекса для FK блокируются две таблицы.
Если блокировка (блокировки) взяты успешно, то теперь уже остальные тр-ции, которые хотят сделать insert\update\delete,
будут ждать окончания построения индекса (FK).
...
Рейтинг: 0 / 0
30.04.2015, 12:08
    #38949530
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
JanexИмееш в виду убрать isc_tpb_nowait или что ?заменить на isc_tpb_wait
JanexПонемаю, что так правильнееСам же понимаешь, и тем не менее хочешь запретного. :)
...
Рейтинг: 0 / 0
30.04.2015, 12:08
    #38949531
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Janexесли таблица, в каторои ставится FK на другую, пустая
и некто с неи неработает (сам только что создал)То никаких проблем с ней не будет.
...
Рейтинг: 0 / 0
30.04.2015, 12:08
    #38949532
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Ivan_Pisarevskyменять метаданные надо монопольно.Не все и не всегда - не сгущай краски
...
Рейтинг: 0 / 0
30.04.2015, 12:11
    #38949535
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
hvladТакая блокировка будет возможна только когда завершатся все тр-ции, в которых таблица изменялись.Если база в работе, то обеспечить такое на практике можно тотальным дисконнектом всех клиентов которые цепляют эту таблицу, что от монопольного коннекта не очень и далеко.
...
Рейтинг: 0 / 0
30.04.2015, 12:13
    #38949539
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
hvladНе все и не всегда - не сгущай краскиЯ просто о том пути, который даст гарантированно правильный и ожидаемый результат. Но как всегда все мы грешны, и я тоже.
...
Рейтинг: 0 / 0
30.04.2015, 12:21
    #38949550
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
hvladJanexесли таблица, в каторои ставится FK на другую, пустая
и некто с неи неработает (сам только что создал)То никаких проблем с ней не будет.
Ну да, и нету проблем, но проблема что блокируется таблица НА КОТОРУЮ указывает FK, и
тут вопрос - какого хрена если таблица В КОТОРОЙ ставится FK пустая и некто с неи неработает?
...
Рейтинг: 0 / 0
30.04.2015, 12:23
    #38949553
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Janexтут вопрос - какого хрена
hvladВ случае индекса для FK блокируются две таблицы.
...
Рейтинг: 0 / 0
30.04.2015, 12:37
    #38949573
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
hvladВ случае индекса для FK блокируются две таблицы.
Ну ето понятно, и 100% правильно если с обоями таблицами ктото работает.
Но согласитесь что правильнее было бы так:
Блокируется таблицу В которои ставится FK и если она пустая, то
вторая таблица НЕблокируется.
...
Рейтинг: 0 / 0
30.04.2015, 12:40
    #38949579
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Ivan_PisarevskyhvladТакая блокировка будет возможна только когда завершатся все тр-ции, в которых таблица изменялись.Если база в работе, то обеспечить такое на практике можно тотальным дисконнектом всех клиентов которые цепляют эту таблицу, что от монопольного коннекта не очень и далеко.Прости, но глупость говоришь. Если тр-ции в клиенте бесконечные - то, да, DDL будет ждать бесконечно.
Иначе - нужный момент обязательно наступит.
Ибо блокировки берутся в порядке очереди, а не как попало.
...
Рейтинг: 0 / 0
30.04.2015, 12:42
    #38949582
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Janex,

нет проблем с блокировкой пустой таблицы. Прочитай ещё раз то, что я написал выше.
Обрати внимание не только на знаки препинания, но и на такие слова как "блокировать на чтение ", "блокировка от изменения ".
Я верю, у тебя получится :)
...
Рейтинг: 0 / 0
30.04.2015, 12:53
    #38949597
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
hvladJanex,

нет проблем с блокировкой пустой таблицы. Прочитай ещё раз то, что я написал выше.
Обрати внимание не только на знаки препинания, но и на такие слова как "блокировать на чтение ", "блокировка от изменения ".
Я верю, у тебя получится :)
Я понимаю, но с таблицей интенсивно работают куча людей и трансакции длится
до пара минут и не даи Бог кто то забыл нажать кнопку Commit и пошел покурить ...
Ожидание на завершение трансакции может затянутся и когда кто то попробует
внести изменения и не получится, то сразу будет звонки и ...
...
Рейтинг: 0 / 0
30.04.2015, 12:55
    #38949602
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
hvladПрости, но глупость говоришь.Не глупость, а предположение пессимистического сценария, что впрочем парой постов ниже подтвердилось.
...
Рейтинг: 0 / 0
30.04.2015, 14:02
    #38949682
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Janex,

переделывай так чтобы транзакции били короткими
...
Рейтинг: 0 / 0
30.04.2015, 14:27
    #38949714
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Симонов ДенисJanex,

переделывай так чтобы транзакции били короткими
Ето невозможно ...
Я в принципе искал поддержку идеи что не надо блокировать таблицу если
на нее делают FK из пустои таблицы, типо: "Да, Janex, идея хорошая,
надо ввести в трекер" :)

Я бы мог ето ввести в трекер, но толку если ето мне одному интересно :(
...
Рейтинг: 0 / 0
30.04.2015, 14:34
    #38949734
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Janexкто то забыл нажать кнопку CommitЯ плакалъ.
Ты же не первый год на форуме - ну как можно так писать программы ???
...
Рейтинг: 0 / 0
30.04.2015, 14:36
    #38949737
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
JanexЯ в принципе искал поддержку идеи что не надо блокировать таблицу если
на нее делают FK из пустои таблицыАргументы где ?
...
Рейтинг: 0 / 0
30.04.2015, 14:36
    #38949740
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Ivan_PisarevskyhvladПрости, но глупость говоришь.Не глупость, а предположение пессимистического сценария, что впрочем парой постов ниже подтвердилось.Глупость, подтверждённая другой глупостью...
...
Рейтинг: 0 / 0
30.04.2015, 14:43
    #38949746
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
Janex,

да вноси ты в трекер что угодно. Только не надейся, что это сделают в ближайшее время и даже в 3.0.
В принципе в MSSQL есть какая-то фишка с создание индекса онлайн. Только обходится оно не дешёво в плане ресурсов.
...
Рейтинг: 0 / 0
30.04.2015, 15:35
    #38949831
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недостатки в FB 2.5
hvladJanexкто то забыл нажать кнопку CommitЯ плакалъ.
Ты же не первый год на форуме - ну как можно так писать программы ???
Абсолютно невижу ничего неправильного. Ето дело вкуса или могут бить и другие
причины по которым ето или правильно или удобно.
У меня юзеры, в большинстве, женьшини в возрасте, которые не совсем дружит с компютерами,
и ето удобно, если могут отменить свои деиствия если чёто напутали.
Можно конешно и по другому, но етот вариант для меня более удобный.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Недостатки в FB 2.5 / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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