|
|
|
Undo log
|
|||
|---|---|---|---|
|
#18+
SEYD, IBDeveloper Magazine, номер 1. например, есть в google books. еще - http://www.ibase.ru/devinfo/savepoints.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 11:29:22 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
dimitrDimitry SibiryakovИ после этого слияния в логе транзакции будет только undo item, без undo data, правильно? насколько я помню, да Или я слеп как крот, или одно из двух... В VIO_verb_cleanup() я вижу вызовы verb_post() без проверки если вливание идёт в лог транзакции. В verb_post() я тоже таких проверок не вижу. Отсюда делаю вывод, что undo data таки сливаются в транзакционый Savepoint. Где я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 16:59:39 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Прочитай комментарии в VIO_verb_cleanup ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 17:49:29 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
hvladПрочитай комментарии в VIO_verb_cleanup В "сливающей" ветке там аккурат так два комментария: vio.cpp // This savepoint needs to be posted to the previous savepoint. и vio.cpp // Setup more of rpb because verb_post is probably going to // garbage-collect. Note that the data doesn't need to be set up // because old_data will be used. (this guarantees that the // rpb points to the first fragment of the record) из них я в упор не вижу где undo data будет уничтожено без использования. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 18:03:44 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
В начале Код: plaintext 1. 2. 3. 4. и в конце Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 18:15:01 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Ну, и на эту строчку тоже посмотри Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 18:18:58 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Оба этих комментария относятся к отправлению в мусорку целого транзакционного сейфпоинта из-за его размеров. Я же спрашиваю о случае когда он сохраняется, поскольку достаточно мал и в него вливаются такие же маленькие сейфпоинты, но с undo data внутри. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 18:20:19 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
hvladна эту строчку тоже посмотри Она всего лишь начинает блок "отката или объединения". Следующий if конкретно делит поток выполнения на "откат" и "влив". Так вот ветка "отката" на данный момент меня не волнует. ;) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 18:28:08 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, я тебя потерял - в чём вопрос-то ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 20:01:18 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
hvladя тебя потерял - в чём вопрос-то ? Где процедура/ветка, которая сливает в транзакционный сейфпоинт битмап записей, но без undo data. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 20:08:14 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovГде процедура/ветка, которая сливает в транзакционный сейфпоинт битмап записей, но без undo data. Код: sql 1. 2. 3. 4. 5. см. четвертый параметр у verb_post() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 20:18:23 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
dimitr Код: sql 1. 2. 3. 4. 5. Поправьте меня, если я ошибаюсь, но action берётся из текущего вливаемого Savepoint. Тот, в который вливают это transaction->tra_save_point. Соответственно, процитированный код звучит как "если у данного Savepoint для данной таблицы списка undo data нет вообще или в этом списке нет undo data для данной записи, то влить данную запись без undo data". Что логично - нету же его. Дальше по коду идут случаи когда а) undo data есть и запись не удалена - undo data вливается, и б) когда запись была изменена и потом удалена - вливается тоже без undo data. А я говорю о случае, когда у текущего Savepoint для данной записи undo data есть, запись не удалена, но undo data не вливается в следующий Savepoint, поскольку тот принадлежит транзакции (имеет флаг SAV_trans_level). Вот этого случая я не могу найти в коде. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 20:42:17 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovГде процедура/ветка, которая сливает в транзакционный сейфпоинт битмап записей, но без undo data.Я тебя стал понимать ещё меньше. Dimitry SibiryakovА я говорю о случае, когда у текущего Savepoint для данной записи undo data есть, запись не удалена, но undo data не вливается в следующий Savepoint, поскольку тот принадлежит транзакции (имеет флаг SAV_trans_level). Вот этого случая я не могу найти в коде.Потому что такого нет и быть не может (если я хоть что-то понял в процитированном) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 20:48:33 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
hvladПотому что такого нет и быть не может (если я хоть что-то понял в процитированном) Точно. До меня дошло: не существует запроса, способного изменить одну запись дважды. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 20:57:50 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ты не вот это часом ищешь? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 21:05:12 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovhvladПотому что такого нет и быть не может (если я хоть что-то понял в процитированном) Точно. До меня дошло: не существует запроса, способного изменить одну запись дважды.Я очень рад, что до тебя что-то дошло, хотя я по-прежнему ничего не могу понять. PS Наш MERGE может изменить одну запись дважды, кривой триггер на UPDATE может повторно изменить ту же запись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 21:07:53 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
dimitrты не вот это часом ищешь? Да, именно это. Я просто не грокнул всех последствий этой ветки. Всё-таки туповат я для проектов такого уровня. hvladНаш MERGE может изменить одну запись дважды, кривой триггер на UPDATE может повторно изменить ту же запись... Нет, триггер (а точнее - запрос в нём) выполняется в собственном сейфпоинте, так что не может дойти к ситуации, когда родительский сейфпоинт запись не трогал, а дочерний сразу приходит с undo data. А вот за MERGE я не уверен... В каких случаях он может изменить запись дважды и как при этом будет с сейфпоинтами? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 21:20:02 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovhvladНаш MERGE может изменить одну запись дважды, кривой триггер на UPDATE может повторно изменить ту же запись... Нет, триггер (а точнее - запрос в нём) выполняется в собственном сейфпоинте, так что не может дойти к ситуации, когда родительский сейфпоинт запись не трогал, а дочерний сразу приходит с undo data.А ты в курсе, что после выполнения стеймента, данные его сейвпойнта сливаются с предыдущим ? При помощи того же verb_post Dimitry SibiryakovА вот за MERGE я не уверен... В каких случаях он может изменить запись дважды и как при этом будет с сейфпоинтами?MERGE - это OUTER JOIN. Надеюсь, ты можешь придумать случай, когда записи одного потока соответствует более одной записи из другого ? :) С сейвпойнтами ничего необычного не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 22:58:26 |
|
||
|
Undo log
|
|||
|---|---|---|---|
|
#18+
hvladА ты в курсе, что после выполнения стеймента, данные его сейвпойнта сливаются с предыдущим? При помощи того же verb_post Да, но это фигня. Когда дело последовательно дойдёт-таки до сейфпоинта, где запись была впервые потрогана, undo data благополучно дропнется. hvladMERGE - это OUTER JOIN. Надеюсь, ты можешь придумать случай, когда записи одного потока соответствует более одной записи из другого ? :) С сейвпойнтами ничего необычного не будет. Дай угадаю: у каждого вложенного update свой сейфпоинт, а у merge - свой, общий на них всех?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 23:25:33 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38598399&tid=1563773]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 375ms |

| 0 / 0 |
