Selective transaction rollback

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Yocto писал(а):
папа Карло писал(а):1. Размещение вещей ответственных за целостность и безопасность данных на клиенте не правильно.
Такие вещи физически и не могут быть размещены за пределами досягаемости сервера базы.
Однако предоставление возможности управлять данным процессом со стороны клиента - вполне разумно.
Пример - isolation levels.
все возможно :) ты просто счастливый, подобных имплементаций не видел :lol:

не понял что разумно и не понял как при этом относится изолейшен левел. объяснишь?
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Marmot писал(а):
папа Карло писал(а):
Marmot писал(а):Так я не про то, что там народ предлагает, а про полный и глубокий versioning!
IMHO тогда компенсацию можно автоматизировать
ты оверхед и стоимость решения представляешь? :mrgreen:
Ага, представляю, но CPU,RAM, HDD сейчас дешевеют со страшной скоростью, так что не всё так плохо...
Это может быть новый тип DBs, запатентовать что-ли :-)
давай, ты технологию придумай, а мы посмотрим сколько народу ее пользовать начнет :)
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

папа Карло писал(а):
Marmot писал(а):
папа Карло писал(а):
Marmot писал(а):Так я не про то, что там народ предлагает, а про полный и глубокий versioning!
IMHO тогда компенсацию можно автоматизировать
ты оверхед и стоимость решения представляешь? :mrgreen:
Ага, представляю, но CPU,RAM, HDD сейчас дешевеют со страшной скоростью, так что не всё так плохо...
Это может быть новый тип DBs, запатентовать что-ли :-)
давай, ты технологию придумай, а мы посмотрим сколько народу ее пользовать начнет :)
Ты всё ещё веришь, что что-то зависит от технологии???
Наивный. Всё зависит от sales guys :-)
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Marmot писал(а):Ты всё ещё веришь, что что-то зависит от технологии???
Наивный. Всё зависит от sales guys :-)
как ты думаешь, почему я смайлик поставил в конец? :) и почему я предложил тебе именно технологию сделать? :)

ЗЫ А ты повелся, наивный. :D
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

Ладно, хватит наездов. :twisted:

И всё-таки в versioninge что-то есть! :lol:
Алгоритмы компенсации очень важны для асинхронных приложений, а это сейчас становится модным
Может можно написать virtual DB с versioning-ом поверх обычной RDB.
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

в этом то наука и есть, чтобы сделать минимальный оверхед для такой вещи и абсолютною незовисимость приложений от данной вещи.
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

папа Карло писал(а):в этом то наука и есть, чтобы сделать минимальный оверхед для такой вещи и абсолютною незовисимость приложений от данной вещи.
BTW, по CPU overhead будет небольшой,по IO тоже, а по HDD пофиг, винты сейчас большие.
Прикинь commit тебе возвращает TransactionID, ты его запоминаешь.
Прошла неделя, клиент допустим передумал, ты вызываешь compensate(TransactionID) и ДБ по-умному откатывает...
Ляпотаaa... :lol:
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

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

другой момент где эта штука должна быть на датабаз сервере или на аппликейшен сервере? на датабаз сервере она быть не может ибо транзакция может быть распределенной. и датабаз сервер в этом случае просто не знает что произошло за его пределами. а если мы помещаем это как надстройку на аппликейшен сервер, то получаем дополнительный оверхед (там сеть начинает играть, которая медленная). да и с распределенными транзакциями вообще полно цирка можно представить.

короче кто такое сделает его все будут как Дейта и Кимбла знать :)
The Pooh
Частый Гость
Сообщения: 12
Зарегистрирован: 19 фев 2003, 19:14
Откуда: Vologda->Vancouver->Siegen(DE)

Мои $.02

Сообщение The Pooh »

Было бы намного интереснее прочитать Введение (я уж не говорю про всю) для этой работы. Так как после прочтения короткой анатации остается много вопросов. Ну а далее некоторые из вопросов:
1. Что есть плохая “транзакция”? Это наверное фундаментальный вопрос.
2. Что есть критерий селективности?
3. Как селекцилонный откат будет работать в распределенных системах?
4. кто будет пользователем такой системы?
5. Какова вообще потребность в такой системе? Чем не удовлетворяют текущие решения.
6. Что является scope этой работы. Набор фундаментыльных положений (типа 12 правил Кодда). Или это практическая работа, где скажем выходом будет полностью формализованная задача
7. Далее, а что если этот лог зависимых транзакций …. Ээээ … переполниться… и DBA его слегка почистить. А потом пользователь решит откатить транзакцию по ее ID (это еще вопрос)
8. Как и кто будет осуществлять управление откатами “плохих” транзакуций?
9. Для управления планируется использовать стандартный ЫЙД (SQL-99?). Или планируется расширить его синтаксис?


P.S. Вряд ли в сложных бизнес процессах кто-то будет использовать такой механизм. Ведь там каждый неверно введенный документ требует другого документа на его отмену. Все действия жестко документированы. Нельзя взять и просто удалить документ.
MarkM
Пользователь
Сообщения: 113
Зарегистрирован: 24 сен 2003, 21:52

Сообщение MarkM »

[trn]
V oracle eto uzhe est'. Nachinaja s 8i. Sm [/trn]LogMiner[trn]
Cherez LogMajner Orakl pokazyvaet izmenenija iz tranzakshn loga v vide SQL stejtmentov dvuh tipov, dlja nakata i dlja otkata.
Zavisimosti m-du tranzakcijami tam IMHO tozhe est'.
[/trn]
Xa-xa
Пользователь
Сообщения: 81
Зарегистрирован: 06 июл 2003, 19:35
Контактная информация:

Сообщение Xa-xa »

MarkM писал(а):[trn]
V oracle eto uzhe est'. Nachinaja s 8i. Sm [/trn]LogMiner[trn]
Cherez LogMajner Orakl pokazyvaet izmenenija iz tranzakshn loga v vide SQL stejtmentov dvuh tipov, dlja nakata i dlja otkata.
Zavisimosti m-du tranzakcijami tam IMHO tozhe est'.
[/trn]
Про Logminer -- подобные вещи есть во многих БД, называются только по-разному. Может быть Logminer более фичастая, но не в этом суть. Идея работы в том, чтобь делать селективный роллбэк с учетом зависимостей между транзакциями.

По поводу зависимостей между транзакциями -- а как это Оракл делает? Можно подробнее?
Xa-xa
Пользователь
Сообщения: 81
Зарегистрирован: 06 июл 2003, 19:35
Контактная информация:

Re: Мои $.02

Сообщение Xa-xa »

The Pooh писал(а):Было бы намного интереснее прочитать Введение (я уж не говорю про всю) для этой работы.


Скоро будет.
The Pooh писал(а): Так как после прочтения короткой анатации остается много вопросов. Ну а далее некоторые из вопросов:

1. Что есть плохая “транзакция”? Это наверное фундаментальный вопрос.


Это определяется админом/пользователем.
The Pooh писал(а):2. Что есть критерий селективности?


Выбираются те транзакции, которые зависят от начальной плохой транзакции. Транзакция T2 зависит от T1, если T2 читает данные, модифицированные T1.
The Pooh писал(а):7. Далее, а что если этот лог зависимых транзакций …. Ээээ … переполниться… и DBA его слегка почистить.


Архивирование логов. Поддерживается многими БД.
The Pooh писал(а):8. Как и кто будет осуществлять управление откатами “плохих” транзакуций?


Тот, кто будет иметь право (privilege) на аудит базы. Обычно это DBA, но такое право можно дать любому.
The Pooh писал(а):9. Для управления планируется использовать стандартный ЫЙД (SQL-99?). Или планируется расширить его синтаксис?


Что понимается под "управлением"? Для трекинга (сбора информации о зависимостях между транзакциями) генерируются дополнительные SLQ-92 стейтменты (1 инсерт на транзакцию). Плюс еще модицицируются исходные стейтменты (как то, если это UPDATE, то надо добаить апдейт tr_id).
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Мои $.02

Сообщение Marmot »

Xa-xa писал(а):
The Pooh писал(а):Было бы намного интереснее прочитать Введение (я уж не говорю про всю) для этой работы.


Скоро будет.
Ага, господин Xa-xa значит в авторах, а я сразу и не понял...
Xa-xa писал(а):
The Pooh писал(а): Так как после прочтения короткой анатации остается много вопросов. Ну а далее некоторые из вопросов:

1. Что есть плохая “транзакция”? Это наверное фундаментальный вопрос.


Это определяется админом/пользователем.

2 Xa-xa
Помоему transaction compensation как часть нормального бизнесс процесса выглядит гораздо актуальнее чем "Intrusion Resilient Mechanism", хотя по сути это одно и тоже :-)
Xa-xa писал(а):
The Pooh писал(а):2. Что есть критерий селективности?


Выбираются те транзакции, которые зависят от начальной плохой транзакции. Транзакция T2 зависит от T1, если T2 читает данные, модифицированные T1.


А откуда такая уверенность что если Т2 прочитала данные модифицированные Т1, то Т2 модифицирует данные на основе этих самых данных модифицированных Т1.
Более того, Т2 может прочитать данные и передать их в Т3 которая вообще ничего не читала :-)
А Т4 может про-updаte-ить данные модифицированные Т1 просто так, ничего не читая... надо ли её откатывать?

Или я чего-то не понял и откат предлагается делать ручками сидя бессонными ночами на работе?
Xa-xa
Пользователь
Сообщения: 81
Зарегистрирован: 06 июл 2003, 19:35
Контактная информация:

Re: Мои $.02

Сообщение Xa-xa »

Marmot писал(а):
Xa-xa писал(а): Скоро будет.
Ага, господин Xa-xa значит в авторах, а я сразу и не понял...


Конечно, я Tzi-cker Chiueh. :)
Marmot писал(а): А откуда такая уверенность что если Т2 прочитала данные модифицированные Т1, то Т2 модифицирует данные на основе этих самых данных модифицированных Т1.
Более того, Т2 может прочитать данные и передать их в Т3 которая вообще ничего не читала :-)
А Т4 может про-updаte-ить данные модифицированные Т1 просто так, ничего не читая... надо ли её откатывать?
А такой уверенности нет. Просто нужна какая-то модель того, как транзакции могут зависеть друг от друга. Ничего лучшего того что есть без анализа семантики транзакций ИМХО сделать нельзя. Конечно, транзакция T1 может прочитать данные и передать их в другой процесс, который выполнит транзакцию T2 на основании этих данных. Понятно, что DBMS о такой связи никогда не узнает. На самом деле, перед отатом можно построить граф зависимостей между транзакциями и подредактировать его ручками...
Аватара пользователя
Marmot
Графоман
Сообщения: 38431
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Мои $.02

Сообщение Marmot »

Xa-xa писал(а):
Конечно, я Tzi-cker Chiueh. :)
Ага, у нас здесь в Ванкувере китайцы тоже любят брать благозвучные имена, так что теперь понятно. :lol:
Xa-xa писал(а):
Marmot писал(а): А откуда такая уверенность что если Т2 прочитала данные модифицированные Т1, то Т2 модифицирует данные на основе этих самых данных модифицированных Т1.
Более того, Т2 может прочитать данные и передать их в Т3 которая вообще ничего не читала :-)
А Т4 может про-updаte-ить данные модифицированные Т1 просто так, ничего не читая... надо ли её откатывать?
А такой уверенности нет. Просто нужна какая-то модель того, как транзакции могут зависеть друг от друга. Ничего лучшего того что есть без анализа семантики транзакций ИМХО сделать нельзя. Конечно, транзакция T1 может прочитать данные и передать их в другой процесс, который выполнит транзакцию T2 на основании этих данных. Понятно, что DBMS о такой связи никогда не узнает. На самом деле, перед отатом можно построить граф зависимостей между транзакциями и подредактировать его ручками...

Вот именно, и если бы думаете что DBA будет знать семантику транзакций, то это очень серёзное заблуждение, без шуток. :twisted:

Конечно в академической среде это может и прокатит :-) , плавали, знаем :twisted:

Но, вы посмотрите что делается в типичных enterprise level applications, Oracle Financials например, или даже чего попроще - Oracle Portal - жертве аборта престарелых PL/SQL программеров.
Семантику транзакций там НИКТО не знает, так как это просто невозможно с точки зрения нормального человека...

Так что написать чего-нибудь конечно можно, а вот использовать...
Ответить