|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_devБаза данных, при открытии первого соединения, должна инициализировать глобальные временные таблицы и пользовательские контекстные переменные, а остальные подключения должны ожидать, пока первое подключение не завершит необходимые действия. Какой смысл? Данные GTT и контекстные переменные не шарятся между коннектами. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 00:13 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Симонов ДенисКакой смысл? Данные GTT и контекстные переменные не шарятся между коннектами.Почему-то сейчас очень захотелось выматериться. То ли из-за того, что забыл/упустил из виду этот момент, то ли из-за того, что ФБ не имеет глобальных временных таблиц, данные из которых можно использовать в разных соединениях. У меня были виды на эту фичу... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 00:37 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_dev, Это можно сделать и сейчас. Например, хранимая ф-ция в 3.0 + udf, в к-рой 2 ф-ции: WaitFor и ReleaseMutex. Ну и между ними твое gen_id. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 00:45 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
YuRock, пока что не планируется переход на тройку. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 01:01 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_dev, Ну, какие проблемы? Селективная процедура - не так удобно и наглядно, но использовать можно для этих же целей при желании. Или просто с returning_values. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 02:26 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
YuRockudf, в к-рой 2 ф-ции: WaitFor и ReleaseMutex. Ну и между ними твое gen_id.Да, ты прав! Гораздо проще это сделать самому парой маленьких UDF'ок. Можно даже вести собственный регистр именованных lock объектов для атомарных функций, чтобы не увеличивать накладные расходы на мьютексы. Вот только с триггерами commit/rollback заморочек отхвачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 09:09 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
YuRockЭто можно сделать и сейчас. Например, хранимая ф-ция в 3.0 + udf, в к-рой 2 ф-ции: WaitFor и ReleaseMutex. писали такую фигню и 15 лет назад. Основная проблема - это что делать с заблокированным объектом, если коннект, его заблокировавший, отвалился. Из той же оперы - пометки в неких таблицах о логине пользователя, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 11:20 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_devтранзакция может заблокировать все необходимые генераторы, но не изменять их значения до момента принятия решения о подтверждении. А смысл? Повторяю медленно: экономить значения генераторов не имеет смысла. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 11:53 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Мой ХШ говорит что человек бездырочную нумерацию сделать хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 11:58 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 6 июля 2016 г. 11:59:12: Симонов Денис> Мой ХШ говорит что человек бездырочную нумерацию сделать хочет. аполитично рассуждаешь, клянусь, честное слово! не понимаешь политической ситуации! (с) ТС намерен изменить мир к лучшему. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 12:01 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Симонов Денис> Мой ХШ говорит что человек бездырочную нумерацию сделать хочет. Это и вообще без генератора можно сделать. Хотя за ТС не поручусь, конечно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 12:26 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамХотя за ТС не поручусь, конечно.В каком смысле "не поручусь"? В смысле, что ТСу не известны разные варианты решений бездырочной нумерации вообще без генератора? Как минимум, два варианта. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:16 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_dev> В смысле, что ТСу не известны разные варианты В смысле, что ты не возьмешься делать БЕН через лок генератора. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:29 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамВ смысле, что ты не возьмешься делать БЕН через лок генератора.Конкретно БЕН через лок генератора да - теперь уже не возьмусь, Dimitry Sibiryakov меня почти полностью разубедил (если только буду использовать локи генератора через UDF для bulk вставок), но сами объекты блокировок, как таковые, в редких случаях, бывают очень полезны. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:40 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_dev> сами объекты блокировок Нет такого понятия в БД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 13:48 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамНет такого понятия в БД.Конечно нет. Возможно, сварганю в UDF'ках. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 14:47 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
Симонов ДенисМой ХШ говорит что человек бездырочную нумерацию сделать хочет. Сделать разные генераторы для разных таблиц - чем плох такой вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 16:52 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
kdvОсновная проблема - это что делать с заблокированным объектом, если коннект, его заблокировавший, отвалился. Если нет SUSPEND'ов в блоке между wait/release, то отвал клиента не должен к такому приводить, как мне кажется. Другое дело, зачем строить архитектуру системы, которая заведомо мешает работе СУБД из-за своей бизнес-логики - я не понимаю. Неужели нельзя сделать проще и легче. Слабо верится. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 16:56 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
YuRockзачем строить архитектуру системы, которая заведомо мешает работе СУБД из-за своей бизнес-логики - я не понимаю. Неужели нельзя сделать проще и легче. Слабо верится. Ну вот такие они, комсомольцы энти. Сначала создают себе трудности, а потом героически их преодолевают. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 17:00 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_dev, Зачем смешивать сущности? Нужна транзакционность - используйте записи в таблицах. Можно с блокировками на select with lock/update. Нужна внетранзакционность - используйте генераторы/sequences. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 17:10 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
DarkMasterНу вот такие они, комсомольцы энти. Сначала создают себе трудности, а потом героически их преодолевают.Никаких трудностей, необходимых к преодолению, я себе, пока что, еще не придумал. Лишь обсуждаю варианты преодоления трудностей на случай, если придется. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 02:41 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
kdv, подытожив сообщения из двух веток (спасибо за разъяснения), можно с уверенностью сказать, что реализация функционала объектов блокировки своими силами в UDF, по большому счету, не имеет смысла, а реализация этого функционала внутри сервера Firebird имеет смысл лишь с некоторыми оговорками: 1. установку блокировки объекта необходимо производить в отдельной транзакции и до начала основной транзакции, в которой планируется использовать блокировку; 2. освободить объект блокировки могут только транзакции, выполняющиеся в том же контексте, что и транзакция, заблокировавшая объект; 3. блокировка с объекта не должна сниматься автоматически, если транзакция, установившая блокировку, подтвердилась по CommitRataining и контекст транзакции не изменился; 4. блокировка должна сниматься с объекта автоматически в момент очистки контекста транзакции, установившей блокировку на объект (при обычных Commit/Rollback), или же при откате по RollbackRetaining именно той транзакции, что установила эту блокировку; P.S. Какое-то тех.задание получилось... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 03:09 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_dev, теперь читай про явное резервирование таблиц при старте тр-ции ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 08:22 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
hvlad, намекаешь на то, что лучше захватывать объекты блокировки таким же способом? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 09:29 |
|
Форумяне, есть желание обсудить необходимость пары новых функций для работы с SEQUENCE
|
|||
---|---|---|---|
#18+
rdb_dev, пункт 2 мутный. а так да, Влад прав, похоже на транзакции с блокированием таблиц. rdb_dev лучше захватывать объекты блокировки таким же я так понимаю, что у тебя по ТЗ некие объекты блокировки настолько привязаны к транзакциям, что логичнее использовать сами транзакции, которые уже есть, чем какие-то мифические блокировки, которых не будет (скорее всего). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2016, 11:16 |
|
|
start [/forum/topic.php?fid=40&msg=39268403&tid=1562090]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 413ms |
0 / 0 |