Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Snapshot-транзакции / 25 сообщений из 27, страница 1 из 2
06.05.2014, 11:25:02
    #38634274
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Когда приложение создаёт транзакцию уровня snapshot, другие транзакции начинают плодить версии.
С другой стороны, шансы зафиксировать изменения в snapshot-транзакции - близки к нулю.
Возникает вопрос - насколько сложно возложить бремя версионности на эту самую snapshot-транзакцию?
А именно: все остальные транзакции работают так, как будто snapshot-транзакции не существует, а сервер трудолюбиво складывает старые данные в отдельный временный файл из которого их, при необходимости, и будет читать snapshot-транзакция?
Или у такого варианта "нет будущего"?
...
Рейтинг: 0 / 0
06.05.2014, 11:29:49
    #38634285
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovКогда приложение создаёт транзакцию уровня snapshot, другие транзакции начинают плодить версии.
открою тебе глаза, но версии "плодятся" независимо от наличия снапшот-транзакций

Basil A. SidorovС другой стороны, шансы зафиксировать изменения в snapshot-транзакции - близки к нулю.
а мужики-то и не знают! Тут полфорума, наверное, изменяют данные в снапшотах.
...
Рейтинг: 0 / 0
06.05.2014, 11:31:53
    #38634289
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovКогда приложение создаёт транзакцию уровня snapshot, другие транзакции начинают плодить версии.
Насколько я понимаю, "транзакции" всегда плодят версии (если конечно они не только читают), независимо от наличия отсутствия
"других транзакций" и тем более их уровня изоляции
...
Рейтинг: 0 / 0
06.05.2014, 11:35:18
    #38634295
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Речь о вполне конкретном сценарии: стартовала snapshot-транзакция, стартовала ещё одна транзакция, поменяла данные в "совпадающем" наборе и зафиксировала изменения.
Насколько я понимаю, зафиксировать изменения в snapshot-транзакции после этого невозможно.
С другой стороны, поскольку snapshot-траназкция ещё не завершена - все остальные транзакции на "совпадающем" наборе данных будут порождать версии, хотя это, в общем-то, и не нужно.
...
Рейтинг: 0 / 0
06.05.2014, 11:41:12
    #38634308
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. Sidorovа сервер трудолюбиво складывает старые данные в отдельный временный файл из которого их, при необходимости, и будет читать snapshot-транзакция?Что это даст ?

PS не забывай, что версии ещё и заменяют журнал тр-ций (для undo)
...
Рейтинг: 0 / 0
06.05.2014, 11:47:39
    #38634324
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovНасколько я понимаю, зафиксировать изменения в snapshot-транзакции
после этого невозможно.
Даже хуже: их (изменения) невозможно сделать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.05.2014, 11:52:28
    #38634336
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
hvladЧто это даст ?Сборщик мусора может собрать то, что сейчас "держит" снимок.
Данные для самой snapshot-транзакции можно складывать "тёмное прохладное место" тем же механизмом, который сейчас делает дельту для nbackup.
Сливать обратно, если изменения снимка, таки, можно фиксировать и "повезло" - тоже постранично.
Но вопрос как раз и состоит в целесообразности такого поведения.
...
Рейтинг: 0 / 0
06.05.2014, 11:54:43
    #38634341
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Dimitry SibiryakovДаже хуже: их (изменения) невозможно сделатьВ предложенном варианте - можно. Появляется копия, которую можно невозбранно менять.
...
Рейтинг: 0 / 0
06.05.2014, 12:03:56
    #38634351
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. Sidorov,

то что чужие изменения нельзя затереть это благо
...
Рейтинг: 0 / 0
06.05.2014, 12:06:06
    #38634355
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovВ предложенном варианте - можно. Появляется копия, которую можно
невозбранно менять.
А что делать потом, когда этот твой снапшот решит-таки закоммититься?

Если ты не собираешься коммитить изменения - просто не делай их. Вот и не будет проблем.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.05.2014, 12:11:00
    #38634367
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Dimitry SibiryakovА что делать потом, когда этот твой снапшот решит-таки закоммититься?Получит облом.
Лучше такой вариант или хуже - сказать сложно, но то, что он нарушает обратную совместимость - вполне очевидно.
...
Рейтинг: 0 / 0
06.05.2014, 12:16:13
    #38634381
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Симонов Денисто что чужие изменения нельзя затереть это благоИх и в новом варианте нельзя затереть.
Весь вопрос в том, когда должен возникать конфликт версий: сразу "по факту изменения" или только при попытке зафиксировать изменения в "опоздавшей" транзакции.
Реализовать можно оба варианта.
...
Рейтинг: 0 / 0
06.05.2014, 12:18:34
    #38634389
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovВесь вопрос в том, когда должен возникать конфликт версий: сразу
"по факту изменения" или только при попытке зафиксировать изменения в "опоздавшей"
транзакции.
Голосую за "сразу".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.05.2014, 12:36:25
    #38634417
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. Sidorov,

а какой смысл человеку что то делать, делать... а потом вдруг узнать что его послали. Лучше уж это узнать сразу в тот момент когда уже ничего нельзя делать.

Хотя от отложенных ограничений в ряде случаев я бы не отказался, но это немного из другой оперы.
...
Рейтинг: 0 / 0
06.05.2014, 12:54:25
    #38634446
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Dimitry SibiryakovГолосую за "сразу"Рановато
Непонятно стОит ли вообще овчинка выделки?
...
Рейтинг: 0 / 0
06.05.2014, 13:05:44
    #38634468
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovРановато
Непонятно стОит ли вообще овчинка выделки?
В самый раз. Именно этот вариант уже реализован и работает от сотворения мира. Переделать
всё так чтобы несколько незакоммиченных версий одной записи могли существовать
одновременно будет весьма суровой задачей, меняющей само основание архитектуры движка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.05.2014, 13:12:00
    #38634482
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Dimitry SibiryakovПеределать
всё так чтобы несколько незакоммиченных версий одной записи могли существовать
одновременно будет весьма суровой задачей, меняющей само основание архитектуры движка.От сотворения у движка не было возможности работать в независимой копии страницы.
Если это имеет смысл и реализуемо, то вопрос потрясения основ переходит в более практическую плоскость.
...
Рейтинг: 0 / 0
06.05.2014, 13:19:46
    #38634500
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovОт сотворения у движка не было возможности работать в независимой
копии страницы.
Нет и необходимости. Для каждой записи может существовать ровно одна незакоммиченная
версия. Вынос её на отдельную страницу или в отдельный файл создаст геморрой при выборках
и хаос при согласовании с другими транзакциями.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.05.2014, 14:15:08
    #38634590
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Dimitry SibiryakovBasil A. SidorovОт сотворения у движка не было возможности работать в независимой
копии страницы.
Нет и необходимости. Для каждой записи может существовать ровно одна незакоммиченная
версия.
Если снапшот пытается менять закоммиченную в процессе существования снапшота версию, то тут имхо в зависимости от задачи можно бы и не кидать update conflict. Иногда в таком случае хочется получить ошибку, а иногда хочется заапдейтить. Причём в ряде случаев указать действие хочется на уровне sql-оператора, а не на уровне транзакции.

off: что-то подумалось про вложенность транзакций... типа пускаем RC, потом в её контексте пускаем снапшот, коммитим его, пускаем ещё один, откатываем, пускаем ещё один, коммитим, потом коммитим или откатываем ту RC... и всё работает в рамках здравого смысла :)
...
Рейтинг: 0 / 0
06.05.2014, 14:22:24
    #38634605
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
NickDeeи всё работает в рамках здравого смысла :)Еще бы доку про автономные транзакции кто почитал...
...
Рейтинг: 0 / 0
06.05.2014, 14:25:04
    #38634612
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Ivan_Pisarevsky,

а что автономные транзакции научились использовать уровень изоляции отличный от родительской?
...
Рейтинг: 0 / 0
06.05.2014, 14:33:34
    #38634620
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Ivan_PisarevskyNickDeeи всё работает в рамках здравого смысла :)Еще бы доку про автономные транзакции кто почитал...
автономные транзакции не сохраняют родительский контекст. Они автономные по сути, а не только по названию :)
...
Рейтинг: 0 / 0
06.05.2014, 15:47:29
    #38634707
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
Basil A. SidorovhvladЧто это даст ?Сборщик мусора может собрать то, что сейчас "держит" снимок.Он и сейчас это может. Где профит ?
Basil A. SidorovДанные для самой snapshot-транзакции можно складывать "тёмное прохладное место" тем же механизмом, который сейчас делает дельту для nbackup.Не вижу связи, объясни
Basil A. SidorovСливать обратно, если изменения снимка, таки, можно фиксировать и "повезло" - тоже постранично.Ничего не понял
...
Рейтинг: 0 / 0
06.05.2014, 15:59:44
    #38634730
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
hvlad,

стоило мне уехать в деревню, как туча людей забыли содержимое статей на сайте про транзакции и версионность :-)
...
Рейтинг: 0 / 0
06.05.2014, 17:47:48
    #38634864
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Snapshot-транзакции
kdvстоило мне уехать в деревню, как туча людей забыли содержимое статей на сайте про транзакции и версионность :-)
Т.е. если ты нам расскажешь что тебя побудило поехать в деревню, то мы сможем понять настоящие причины забывчивости, и попытаться их устранить? :)
Или ты предлагаешь сразу с тобой порешать, чтобы не быть зависимыми от твоих побуждений? :)
С точки зрения здравого смысла лучше порешать прям с тобой, и чем быстрей - тем лучше. Особенно раз ты сам пришёл и стыдливо намекаешь, мол "пацаны, это мой косяк" :)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Snapshot-транзакции / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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