Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Сабж в тройке это, конечно, круто, но не когда в результате получаешь из gen_id() один и тот же номер в параллельных транзакциях. Сессия 1: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Сессия 2 после этого: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 19:46 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
при использовании set generator я тебе в любой версии сгенерю одинаковые номера из gen_id :-) ЗЫ. SET GENERATOR - это теперь DDL, синоним ALTER SEQUENCE. DDL надо коммитить. Иначе ССЗБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 20:15 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
dimitrSET GENERATOR - это теперь DDL, синоним ALTER SEQUENCE. DDL надо коммитить. Иначе ССЗБ. Вот теперь мне надо сильно подумать: то ли забить на репликацию изменений генераторов в откаченных транзакциях вообще, либо придумать какое-то извращение для случаев, когда некоторые чудики полученные в таких транзакциях значения потом используют. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 20:49 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovdimitrSET GENERATOR - это теперь DDL, синоним ALTER SEQUENCE. DDL надо коммитить. Иначе ССЗБ. Вот теперь мне надо сильно подумать: то ли забить на репликацию изменений генераторов в откаченных транзакциях вообще, либо придумать какое-то извращение для случаев, когда некоторые чудики полученные в таких транзакциях значения потом используют. Теперь придётся подумать и тем кто использовал генераторы в "неестественных" для них целях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 11:13 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
NikolayV81... надеюсь в следующих версиях не будет запрета на изменение текущего значения, как "у других". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 11:16 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Использовали, потому что по-другому никак... Я как крит. секцию применяю в паре мест (вычитал вроде бы на ibase, кстати) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 14:18 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovСабж в тройке это, конечно, крутоЧто-то прошляпил я эту тему. Интересное дело, кажется. В где найти пример их использования ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 15:00 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Таблоид, перечитай топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 15:50 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
kdvперечитай топик.Перечитал. У мну не так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Что такое фраза "Replication of transaction 114 initiated", которая лезет в стартовом посте сразу после select "gen_id(gen_t_log,1) from rdb$database;" ? Что такое вообще "транзакционные генераторы" и в где про них почитать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 15:56 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
ТаблоидЧто такое вообще "транзакционные генераторы" и в где про них почитать ?Это очередной бред Сибирякова, который наткнулся на побочный эффект в 3-ке и теперь машет им направо и налево... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 16:19 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
ТаблоидУ мну не так: autoddl отключи, select удвой и rollback после первого добавь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 17:57 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
вах.... хренасе... :-) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 18:13 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Таблоид, ахтунг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 19:14 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
kdv, дык теперь уж и не знаю... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 19:33 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Таблоид, нет уж, ты сначала определись! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 21:41 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
dimitrнет уж, ты сначала определись ! :-)Так тут сплошное уравнение неопределённости, возможно даже - по Гейзенбергу! А если без шуток, то: 1) оч хотелось бы внутри транзакции иметь некий счетчик, известный только ей, стартующий при её старте, с нуля, и ведущий себя как генератор; rdb$get/set_context'ы - очевидное решение, то тормознутое на cast'ах. Проверено. И даже в личку кое-кому было отправлено :-) 2) касательно примера выше - непонятно, ЗАЧЕМ так сделано. Почему set autoddl off вдруг так "завлиял". Ведь я могу приконнектиться к базе isql'ем, причём только с правом обращения к к-л генератору, ввести далее то, что показано - и что будут видеть остальные коннекты ? особливо весело будет, когда я коммит сделаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 22:14 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
ТаблоидА если без шуток, то: 1) Тогда голосуй за CORE-4001. 2) set generator это теперь alter sequence, DDL со всеми вытекающими. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 22:31 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, насколько я понял, конкретный коннект после set generator ... до commit будет видеть только "свои" значения генератора? А все остальные коннекты будут видеть нормальные значения? Это ради уменьшения writes в страницы генераторов? С другой стороны, set generator всегда был DDL, и его в PSQL использовать было нельзя. С какой-то версии вроде можно. Но вопрос - зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 22:40 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
kdvDimitry Sibiryakov Это тебе Влада надо спрашивать, я тут только по части бреда... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 22:43 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov> 2) set generator это теперь DDL Всегда был. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 22:49 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
kdvset generator всегда был DDL, и его в PSQL использовать было нельзя. С какой-то версии вроде можно. 1) SET GENERATOR никогда не был DDL . Он препарировался отдельным типом стеймента, выполнялся мгновенно (а не откладывался до коммита) и его нельзя было откатить. Почувствуйте, блин, разницу. 2) SET GENERATOR действительно не разрешался в PSQL, но это не делает его DDL. Только в Яффиле это ограничение убрали. А FB это можно обойти через EXECUTE STATEMENT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 22:54 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
Таблоиднепонятно, ЗАЧЕМ так сделано. Почему set autoddl off вдруг так "завлиял". ты этот топик весь читал? 1) SET GENERATOR теперь = ALTER SEQUENCE = DDL, ибо стандарт не допускает произвольного изменения генераторов через DML. Сильно упертые могут продолжать выкручиваться с нестандартными инкрементами в GEN_ID. 2) Незакоммиченный DDL видеть никто не должен. Так что результат SET TRANSACTION до коммита виден только текущей транзакции. 3) В результате впервые в ФБ появляется транзакционный DDL - можно в одной и той же транзакции создать генератор и использовать его, а потом либо грохнуть либо закоммитить. 4) Возникает вопрос - какой счетчик должен увеличивать GEN_ID, выполненный в той же транзакции, что и незакоммиченный SET GENERATOR? Если "глобальный" (закоммиченный, видимый всем), то при коммите он сбросится в значение, установленное через SET GENERATOR - при неудачном раскладе мы потеряем и свои собственные изменения, и изменения других транзакций. Если "локальный" (видимый только текущей транзакции), то при коммите при неудачном раскладе мы потеряем только чужие изменения. 5) Явно изменять значения генераторов "на лету" при активной работе с базой - ахтунг. Делать это еще и в длинных транзакциях с GEN_ID внутри - дважды ахтунг. Кто на это нарвется в продакшене - ССЗБ. Это мое мнение. Можете попробовать меня переубедить :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 23:04 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
можно, конечно, попробовать при GEN_ID для незакоммиченного SET GENERATOR в качестве текущего значения брать MAX(генератор в базе, генератор в кеше) и вычислять это под локом для страницы генератора. Тогда наверное конфликтов не будет. Хотя "транзакционность" слегка пойдет лесом - SET GENERATOR G TO 123; SELECT GEN_ID(G, 0) FROM RDB$DATABASE; - сможет вернуть несогласованные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 23:17 |
|
||
|
Транзакционные генераторы
|
|||
|---|---|---|---|
|
#18+
dimitr1) SET GENERATOR никогда не был DDL. Он препарировался отдельным типом стеймента, выполнялся мгновенно (а не откладывался до коммита) и его нельзя было откатить. 2) SET GENERATOR действительно не разрешался в PSQL, но это не делает его DDL. Порнография какая-то, ИМХО. Классическое "а здесь рыбу заворачивали". В доке про это тоже ни слова, кстати, там он идёт как DDL де-факто. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 23:22 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=83&tid=1563093]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 319ms |
| total: | 513ms |

| 0 / 0 |
