Re[6]: А может вообще уйти с Firebird?
От: SmlMouse  
Дата: 20.09.07 09:55
Оценка:
Здравствуйте, Ромашка, Вы писали:

>> Ну, с исторической точки зрения FireBird тут совсем ни при чем.

>> "Перемутил" Джим в незапамятные времена.
>> За что многие люди (и я) ему благодарны.
Р>Гм... Он не задумывался анд тем, что вы так извратите его идеи.
Что бы небыло споров, можешь у него сам спросить. Адрес известен.

>>> > Embeded?

>> Р>Нет.
>> Это было одно из требований.
Р>Это было с грифом "желательно".
То есть тоже требование, хоть и не обязательное...
В софистике поупражняйся в другом месте.

>>> > А поподробней, где почитать про всё это применительно к MS SQL?

>> Р>BooksOnLine. Скачать мождно с сайта мелкомягких.
>> Там ни слова про параллельные транзакции.
Р>Как ты думаешь, почему?
А фигли мне думать? Вы мне и расскажете, если конечно сами в курсе

>> Р>ЗЫ. Бесплатные версии есть также у Оракла и ДБ2. Все не embedded.

>> Не в одном из перечисленных нет того, что нужно:
>> — несколько транзакций на сессию. тем более с разными уровнями изоляции
Р>Сам понял что написал?
Я то вполне. А вот ты походу срываешься. Аргументы кончились? Или их и небыло?

>> — минимальные затраты на развёртывание (положил DLL в каталог продукта и

>> все. Или еще проще — прилинковал либы в экзешник).
Р>см. выше.
Выше у меня голубое небо. Но туда я пока не хочу.

>> — открытые исходники с возможностью модификации.

Р>Это ты сам выдумал?
Ага. Потому как оно мне надо.

>> Итого: к чему вообще был этот пост?

Р>Не к тебе.
Походу _не к тебе_ гораздо больше.
--
WBR и ничего личного
... << RSDN@Home 1.2.0 alpha rev. 743>>
Re[11]: А может вообще уйти с Firebird?
От: SmlMouse  
Дата: 20.09.07 09:55
Оценка:
Здравствуйте, IB, Вы писали:

КД>>IB, ни кто не заставляет обязательно делать многопоточное приложение.

IB>Расскажи ка мне, как ты собираешься работать с параллельными транзакциями из одного подключения в однопоточном приложении?
IB>Приостанавливать действие одной транзакции и запускать из того же потока другую? Вот уж действительно редкое извращение.

Походу имеется недопонимание.
Параллельные != одновременно (синхронно) выполняющиеся в клиенте.

Пример однопоточной параллельности:
старт первой транзакции (1).
старт вотрой транзакции (2).
в (1) фетч данных
в (2) адейт записи, входящей в отфетченный набор из (1)
commit (2)
рефетч уже запрепаренного запроса в (1)
commit/rolback (1) (не имеет значения, модификации не проводились).
Итого: в рамках одного подключения последовательно-параллельным способом получены данные, живущие в сервере.
ну конечно параметры изоляции учитывать нужно.

Ну и жизненный пример от Ded'а:
Редактирования и коммита в вызываемых модулях и использование
проделанных модификаций в вызывающих без перечитывания ВСЕГО. Например,
ввод клиента в процессе ввода счёта. Можно и в одной [транзакции], но замумукашься в
боле-мене сложном структурно функционале отслеживать в каком состоянии
была единственная транзакция на входе в модуль и надо ли её коммитить на
выходе и как откатить изменения функции не откатывая изменений в
вызвавшей её функции и во всех вызванных из неё ранее.
--
WBR и ничего личного
... << RSDN@Home 1.2.0 alpha rev. 743>>
Re[14]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 09:57
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Ну вот он, типичный штамп мышления человека привыкшего к блокировочнику...

Это штам человека привыкшего писать приложения работающие под высокой нагрузкой. А блокировочник или нет — дело десятое.

AC>Аналогичный вопрос: ты можешь показать, на пальцах, для тупых, чем это плохо?

Тем что расходуются ресурсы сервера.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[14]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 09:57
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Мда... Иван, иногда они возникают "сами по себе".

Так будет сценарий или нет?

КД>Если начнут посередине дня резервировать базу целиком — ну тоже часа полтора транзакция будет висеть. База-то немаленькая, хотя и работает на мега-коне.

Ну допустим (кхм..). И вот тот самый поток который заливает пакет репликации в одной транзакции, приостанавливает это дело и запускает другие транзакции, пока репликация курит?
Нда, и эти люди запрещают мне ковыряться в носу..
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[15]: А может вообще уйти с Firebird?
От: Alex.Che  
Дата: 20.09.07 10:01
Оценка:
Привет, IB!
Вы пишешь 20 сентября 2007:

AC>> Аналогичный вопрос: ты можешь показать, на пальцах, для тупых, чем это плохо?

I> Тем что расходуются ресурсы сервера.

Какого именно сервера, Иван?
Какие именно ресурсы?
И как соотносится сей "перерасход" с аналогичным,
но в случае "параллельного коннекта", а не транзакции?

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 2.1 beta
Re[12]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 10:11
Оценка:
Здравствуйте, SmlMouse, Вы писали:

SM>Походу имеется недопонимание.

Определенно.

SM>Параллельные != одновременно (синхронно) выполняющиеся в клиенте.

Уух.. параллельно — это асинхронно, синхронно — это последовательно.

SM>в (1) фетч данных

SM>в (2) адейт записи, входящей в отфетченный набор из (1)
Транзакция обладает ACID-ностью. Буковка I — изолированность. На практике это означает, что транзакция (2) не может увидеть результат работы транзакции (1), до тех пор, пока (1) не зафиксировалась. Если позволить делать такие фокусы, то это приведет к эффекту Cascading Aborts — если ранзакция (2) зафиксируется, а транзакция (1) по каким-то причинам не сможет, то и (2) надо тоже откатывать. Более того, надо откатывать все транзакции, которые к этому времени успели попользоваться изменениями всесенными (2) — и далее по цепочке. Если этого не делать, то окажется что транзакция (2) зафиксировала данные, которые никогда не существовали.

SM> Например, ввод клиента в процессе ввода счёта.

Ввод клиента в процессе ввода счета — это несколько транзакций.

SM>Можно и в одной [транзакции], но замумукашься в боле-мене сложном структурно функционале отслеживать в каком состоянии

SM>была единственная транзакция на входе в модуль и надо ли её коммитить на выходе
Вот это, кстати, не вопрос. как только пошло что-то не то, транзакцию надо откатывать.

SM> и как откатить изменения функции не откатывая изменений в вызвавшей её функции и во всех вызванных из неё ранее.

Так у нас транзакция или нет? Если транзакция, то надо откатывать все, безвопросов, елси не все, значит это несколько последовательных транзакций.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[11]: А может вообще уйти с Firebird?
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 20.09.07 10:20
Оценка: +1 -1 :)
Здравствуйте, IB, Вы писали:

КД>>Не перегибай палку

IB>Я вообще с палками не очень...

КД>>Блин, я вот не могу понять — в чем именно проявлется усложнение?

IB>Может ты просто по другому не пробовал?

Ну я может не пробовал. Точнее, я таким нюансам никогда внимание не придавал. Как удобно в конкретной задаче, так и делал. Однако разбирался с кодом клиентов IBProvider-a, ваявших для COM+, где именно так и делается. Ну дык там и подход и мышление другое. И есть скрытое глобальное место, где таки хранятся готовые подключения. Называется пулом. Пулом подключений. Не можно, конечно, без пула — да ради бога — указываем "OLE DB Services=0" и вперед к тормозам

КД>>IB, ни кто не заставляет обязательно делать многопоточное приложение.

IB>Расскажи ка мне, как ты собираешься работать с параллельными транзакциями из одного подключения в однопоточном приложении?
IB>Приостанавливать действие одной транзакции и запускать из того же потока другую? Вот уж действительно редкое извращение.

Мдаа... Берем тривиальную задачу — запись логического лога в базу данных. Объект, который это делает, должен гарантировано записать в базу что там пользователь пытался делать. Не зависимо от того — откатилась основная транзакция или нет. Ведь если это делать в основной транзакции, и она откатится, то записи протокола тоже откатятся. Поэтому у этого протоколирующего объекта должна быть собственная (короткая) транзакция.

Если тебе лень или ты принципиально не хочешь связываться с многопоточным приложением — то ради бога, держи эти две транзакции в одном потоке.

... Заявления что паралельные транзакции имееют смысл только в раздельных потоках очень похоже на требование работы с разными файлами исключительно в разных потоках. И реакция "С какого перепугу" — вполне подходит и к транзакциям.

... Иван, завязывай с линейным мышлением. На улице уже даже не объектно-ориентированное время. В один корпус кучу ядер интегрируют, а ты не можешь понять зачем несколько транзакций засовывают в одной трубе подключения.

КД>>И что же там делается?

IB>Где?

В функции реализации старта транзакции, которая автоматически пороздает новое подключение.

КД>>Тестили через OLEDB. Новая параллельная транзакция порождает НОВОЕ подключение И на 2000 и на 2005

IB>MARS не поддерживается OLEDB, только .Net провайдером.

Хм. Ну да бог с ним с OLEDB. Я просил тебя написать простенький пример, который подтверждает возможность старта параллельной транзакции без открытия нового подключения. Слив как, защитывать?

КД>>Но практикующие ведущие собаководы иногда предлагают создавать по требованию именно транзакции. Понимаешь?

IB>И в чем проблема?

Не в чем, а в ком. Ты сказал

Зато ты говоришь, что транзакция на подключение смысла не имеет, в чем глубоко заблуждаешься.

Я тебе ответил — никто тебе не навязывает число транзакций на одно подключение. И это есть хорошо.

КД>>Кроме того, сейчас, на сколько я понимаю, с появлением временных таблиц действующих на уровне соединения, весьма актульно что бы "параллельные" транзакции действительно оставались в рамках одного подключения. Потому что иначе — новая "параллельная" транзакция просто не увидит эту таблицу.

IB>А должна видеть? Скажем, в идеологии сиквела другая транзакция не должна видеть временные данные другой, думаю понятно почему.

И такая схема есть тоже. Одна транзакция подключения не видит временные данные другой транзакции этого же подключения.

IB>А вот зачем делать так чтобы временные данные можно было видеть — не понятно.


Иван, с тобой тяжко общаться... Понимаешь, Firebird это сервер для людей у которых как-то более продвинутая способность к восприятию мира и они не возможности сервера натягивают на предметную область, а наоборот (Лично мне всегда было на...ть на каноны баз данных). То есть проектируют так как представляют, а не так как им позволяют возможности сервера — им глубоко по-барабану технические нюансы RDBMS. И сервер создавался и развивается именно в том направлении, что бы удовлетворять этим вещам. Мда, спасибо Джиму.

И между нами девочками говоря, MSSQL тоже развивается именно в этом направлении, реализовав версионную архитектуру, этот MARS, возможность писать на чем угодно логику уровня базы данных.

Но пока, та модель БД которая 5 лет и 4 дня, работает в нашей Липецкой недвижимости, не сможет в чистом виде работать ни на Оракле, ни на MSSQL. А только на IB-подобном сервере
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[16]: А может вообще уйти с Firebird?
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 20.09.07 10:28
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>Понятно. А есть возможность вообще запретить неявный старт?

IB>Нет конечно. Все операции (за редким исключением) всегда выполняются в рамках транзакции. Без транзакции просто ничего делать невозможно.

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

И долго-долго спорил на форуме FB по связанной теме "а нужен ли на уровне клиента парсер SQL-запросов"

---
Я про то, чтобы вообще запретить неявные старты. В IBProvider можно запрещать старты как для юзерских нужд, так и для внутренних (например, для чтения метаданных).

Для MSSQL-ных компонент такое возможно?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[13]: А может вообще уйти с Firebird?
От: SmlMouse  
Дата: 20.09.07 10:29
Оценка:
Здравствуйте, IB, Вы писали:

SM>>в (1) фетч данных

SM>>в (2) адейт записи, входящей в отфетченный набор из (1)
IB>Транзакция обладает ACID-ностью. Буковка I — изолированность. На практике это означает, что транзакция (2) не может увидеть результат работы транзакции (1), до тех пор, пока (1) не зафиксировалась. Если позволить делать такие фокусы, то это приведет к эффекту Cascading Aborts — если ранзакция (2) зафиксируется, а транзакция (1) по каким-то причинам не сможет, то и (2) надо тоже откатывать. Более того, надо откатывать все транзакции, которые к этому времени успели попользоваться изменениями всесенными (2) — и далее по цепочке. Если этого не делать, то окажется что транзакция (2) зафиксировала данные, которые никогда не существовали.

Наоборот. (1) увидит изменения, привнесённые (2). Естественно после того, как (2) закомититься.
И это польностью и без противоречий ложиться в теорию.
Поэтому, больша просьба читать не по диагонали, иначе все превращается в флейм.
И не нужно мне объяснять про виды транзакций. В данном топике тема немного о другом.

SM>> Например, ввод клиента в процессе ввода счёта.

IB>Ввод клиента в процессе ввода счета — это несколько транзакций.
Ага. Но не несколько соединений.

SM>>Можно и в одной [транзакции], но замумукашься в боле-мене сложном структурно функционале отслеживать в каком состоянии

SM>>была единственная транзакция на входе в модуль и надо ли её коммитить на выходе
IB>Вот это, кстати, не вопрос. как только пошло что-то не то, транзакцию надо откатывать.
Про документ — согласен.
А ввод нужного клиента

SM>> и как откатить изменения функции не откатывая изменений в вызвавшей её функции и во всех вызванных из неё ранее.

IB>Так у нас транзакция или нет? Если транзакция, то надо откатывать все, безвопросов, елси не все, значит это несколько последовательных транзакций.
И ввод нужного клиента то же?
--
WBR и ничего личного
... << RSDN@Home 1.2.0 alpha rev. 743>>
Re[16]: А может вообще уйти с Firebird?
От: MasterZiv СССР  
Дата: 20.09.07 11:51
Оценка:
Alex.Che пишет:

Господа, ваш спор беспочвенен.
Оба варианта взаимодействия клиента и сервера имеют
право на жизнь.

По сути при общении клиента и сервера используются
несколько контекстов
-- контекст для передачи данных между ними
-- контекст для управления транзакциями.
-- контекст для управления потоком выполнения комманд.

У каких-то СУБД они совпадают все три, у каких-то
как-то разделены, это не имеет большого значения
и не влияет напрямую на производительность, при условии,
что все компоненты СУБД реализованы правильно.

Как это влияет на производительность — зависит исключительно
от странностей конкретной СУБД, а не от выбранного подхода.

Например, в IBase при коннекте может порождаться новый процесс ОС,
в Sybase ASE не порождается даже тред. Но это никак не связано
с реализацией или не реализацией парралельных транзакций.
Posted via RSDN NNTP Server 2.1 beta
Re[14]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 11:56
Оценка:
Здравствуйте, SmlMouse, Вы писали:

SM> (1) увидит изменения, привнесённые (2). Естественно после того, как (2) закомититься.

Так в чем тогда проблема стартовать (1) после того как (2) зафиксировалась?

SM>Ага. Но не несколько соединений.

Да байта ради. Но это несколько последовательных транзакций в одном соединении.

SM>А ввод нужного клиента

Что ввод клиента?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[12]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 11:56
Оценка: 1 (1) -2
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД> И есть скрытое глобальное место, где таки хранятся готовые подключения. Называется пулом. Пулом подключений. Не можно, конечно, без пула — да ради бога — указываем "OLE DB Services=0" и вперед к тормозам

Ну, то есть в IB своего пула нет и поэтому они считают, что пихать в один коннект несколько транзакций это круто, я правильно понял?

КД>Мдаа... Берем тривиальную задачу — запись логического лога в базу данных.

Для записи лога есть 33 способа, не говоря уже о том, что писать лог практически в то же хранилище где лежат и основные данные не очень правильно.

КД>Объект, который это делает, должен гарантировано записать в базу что там пользователь пытался делать. Не зависимо от того — откатилась основная транзакция или нет.

То есть, две транзакции из одного потока могут видеть незакоммиченые данные друг-друга? Прости, но это уже не транзакции.

КД>Поэтому у этого протоколирующего объекта должна быть собственная (короткая) транзакция.

Угу, но она не должна видеть незакоммиченых данных основной.

КД>... Заявления что паралельные транзакции имееют смысл только в раздельных потоках очень похоже на требование работы с разными файлами исключительно в разных потоках.

Пока не привели ни одного сценария, где действительно необходимо приостанавливать действие одной транзакции и выполнять другую в том же потоке.
И таких сценариев нет. Объясню еще раз почему:
Единственный случай, когда это может потребоваться — это организовать обмен незафиксированными данными между двумя транзакциями в обход сервера. То есть, сервер нам это делать запрещает, а мы придумываем как это обойти. Почему сервер это запрещает — я писал.
Ребята, у вас нет ощущения что вы делаете что-то не то?

КД>... Иван, завязывай с линейным мышлением. На улице уже даже не объектно-ориентированное время. В один корпус кучу ядер интегрируют, а ты не можешь понять зачем несколько транзакций засовывают в одной трубе подключения.

Ты сам-то понимаешь, зачем это делаешь?

КД>В функции реализации старта транзакции, которая автоматически пороздает новое подключение.

Какая функция реализация старта? старт транзакции начинается с первого оператора.

КД>Я просил тебя написать простенький пример, который подтверждает возможность старта параллельной транзакции без открытия нового подключения. Слив как, защитывать?

MSDN открой.

КД>Иван, с тобой тяжко общаться...

Привыкай.

КД> Понимаешь, Firebird это сервер для людей у которых как-то более продвинутая способность к восприятию мира

Вот тут у меня серьезные сомнения. Я бы скорее использовал термин "измененное сознание".

КД> и они не возможности сервера натягивают на предметную область, а наоборот

Ну, нормальные люди предпочитают просто использовать адекватные инструменты, вместо того чтобы что-то на что-то натягивать.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[15]: А может вообще уйти с Firebird?
От: SmlMouse  
Дата: 20.09.07 12:13
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, SmlMouse, Вы писали:


SM>> (1) увидит изменения, привнесённые (2). Естественно после того, как (2) закомититься.

IB>Так в чем тогда проблема стартовать (1) после того как (2) зафиксировалась?
Ещё раз. Читать нужно не по диагонали.
(2) меняет данные на основании фетча из (1). А (1) видит эти измененя после коммита (2).

SM>>Ага. Но не несколько соединений.

IB>Да байта ради. Но это несколько последовательных транзакций в одном соединении.
Которые и называются "параллельными". Так как в одном соединении в одно и то же время могут быть несколько активнывх транзакций.
Про что собственно я и толкую.

SM>>А ввод нужного клиента

IB>Что ввод клиента?
Опять по диагонали читаем?
см пример от Ded'а.
--
WBR и ничего личного
... << RSDN@Home 1.2.0 alpha rev. 743>>
Re[13]: А может вообще уйти с Firebird?
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 20.09.07 12:43
Оценка:
Здравствуйте, IB, Вы писали:

КД>> И есть скрытое глобальное место, где таки хранятся готовые подключения. Называется пулом. Пулом подключений. Не можно, конечно, без пула — да ради бога — указываем "OLE DB Services=0" и вперед к тормозам

IB>Ну, то есть в IB своего пула нет и поэтому они считают, что пихать в один коннект несколько транзакций это круто, я правильно понял?

Давай мы не будем отклоняться от основной темы.

КД>>Мдаа... Берем тривиальную задачу — запись логического лога в базу данных.

IB>Для записи лога есть 33 способа, не говоря уже о том, что писать лог практически в то же хранилище где лежат и основные данные не очень правильно.

Как там папа сказал в индонезии — единство в разнообразии.

КД>>Объект, который это делает, должен гарантировано записать в базу что там пользователь пытался делать. Не зависимо от того — откатилась основная транзакция или нет.

IB>То есть, две транзакции из одного потока могут видеть незакоммиченые данные друг-друга? Прости, но это уже не транзакции.

С какого перепугу? Не выдавай желаемое за действительное.

КД>>Поэтому у этого протоколирующего объекта должна быть собственная (короткая) транзакция.

IB>Угу, но она не должна видеть незакоммиченых данных основной.

Она и не видет. А зачем ей их видеть?

КД>>... Заявления что паралельные транзакции имееют смысл только в раздельных потоках очень похоже на требование работы с разными файлами исключительно в разных потоках.

IB>Ребята, у вас нет ощущения что вы делаете что-то не то?

Лично мне не кажется.

КД>>... Иван, завязывай с линейным мышлением. На улице уже даже не объектно-ориентированное время. В один корпус кучу ядер интегрируют, а ты не можешь понять зачем несколько транзакций засовывают в одной трубе подключения.

IB>Ты сам-то понимаешь, зачем это делаешь?

Конечно понимаю Я понимал это еще в прошлом веке. Тогда же когда просмотрел спецификацию OLEDB и сравнил с возможностями MSSQL / Interbase, понял что в Microsoft работают люди у которых мозги не зациклены на собственном Я.

КД>>В функции реализации старта транзакции, которая автоматически пороздает новое подключение.

IB>Какая функция реализация старта? старт транзакции начинается с первого оператора.

А что там внутри делается, мы значит описать не в состоянии?

КД>>Я просил тебя написать простенький пример, который подтверждает возможность старта параллельной транзакции без открытия нового подключения. Слив как, защитывать?

IB>MSDN открой.



КД>> Понимаешь, Firebird это сервер для людей у которых как-то более продвинутая способность к восприятию мира

IB>Вот тут у меня серьезные сомнения. Я бы скорее использовал термин "измененное сознание".



КД>> и они не возможности сервера натягивают на предметную область, а наоборот

IB>Ну, нормальные люди предпочитают просто использовать адекватные инструменты, вместо того чтобы что-то на что-то натягивать.



Я так понял, вместо того чтобы пытаться разобраться и объяснить конкретные вещи, ты будешь очень рьяно оберегать свой статус. Ну что же. Реальные люди, а мне к счастью доводилось общаться с такими, ведут себя по-другому.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[16]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 12:54
Оценка:
Здравствуйте, SmlMouse, Вы писали:

SM>(2) меняет данные на основании фетча из (1).

То есть (2) видит незафиксированные данные (1), и кто после этого читает по диагонали?

SM>Которые и называются "параллельными".

Нет, они последовательные. Транзакция не может начаться, пока не зафиксируется предыдущая, если так понятнее.

SM> Так как в одном соединении в одно и то же время могут быть несколько активнывх транзакций.

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

SM>Про что собственно я и толкую.

Угу и я.


SM>см пример от Ded'а.

Я уже ответил на этот пример.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[14]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 12:54
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Давай мы не будем отклоняться от основной темы.

Это собственно то, с чего начался разговор.

КД>Как там папа сказал в индонезии — единство в разнообразии.

Вот только причем тут разнообразие...

КД>С какого перепугу? Не выдавай желаемое за действительное.

Я не выдаю. Ты сам-то внимательно прочитал, что пишешь?

КД>Она и не видет. А зачем ей их видеть?

Чтобы записать в лог.

КД>Лично мне не кажется.

Хм, помоему самое время задуматься над этим..

КД>Конечно понимаю Я понимал это еще в прошлом веке.

Похоже пришло время переосмыслить..

КД>А что там внутри делается, мы значит описать не в состоянии?

Я уже устал описывать как, зачем и почему.


КД>Я так понял, вместо того чтобы пытаться разобраться и объяснить конкретные вещи,

Я тебе объяснил очень конкретные вещи. Я не виноват, что ты их игнорируешь.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Re[15]: А может вообще уйти с Firebird?
От: pnv82 Украина  
Дата: 20.09.07 13:47
Оценка:
Здравствуйте, IB, Вы писали:

Пример сценария, на пальцах и формочных примитивах, может так всем будет понятнее:

Пользователь начинает создание нового документа(пусть какая-то заявка). Одновременно с открытием формы стартуется транзакция Т1, которая будет АКТИВНА, читай незакомичена, все время, пока пользователь делает/редактирует документ. Версионная архитектура может себе позволить такие транзакции не сильно напрягаясь.

В какой-то момент времени, пользователь видит, что в справочнике номенклатуры ошибка — он открывает карточку соответствующего товара, и в транзакции Т2 исправляет название, после чего коммитит Т2. Заметим, эти изменения справочника должны остаться в БД, даже если пользователь откатит Т1. И только по завершению редактирования документа комитится Т1.
Т1 и Т2 как раз и есть, то, что называют параллельными транзакциями в этой ветке.

Так вот, подобный сценарий, в ФБ реализуется в рамках одного соединения, в то время как...
Говорить, что такой стиль разработки неверен — не стоит, в некоторых случая это более чем адекватно.
Re[17]: А может вообще уйти с Firebird?
От: SmlMouse  
Дата: 20.09.07 14:58
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, SmlMouse, Вы писали:


SM>>(2) меняет данные на основании фетча из (1).

IB>То есть (2) видит незафиксированные данные (1), и кто после этого читает по диагонали?
С какого перепугу?
В транзакции (1) данные были зафетчены (забраны с сервера). Причем данные на состояние старта (1). Все другие транзакции, модифицирующие кортеж из (1) не смогут отказать никакого вляния на кортеж из (1) до своего коммита.
В транзакции (2) были модифицированы некоторые строки кортежа (1). После коммита транзакции (2) изменения, внесённые ею стали видны в транзакции (1).
Так что пока я никак не могу увидеть, как транзакция (2) видит незафиксированные данные из (1).

Да. Забыл. IB/FB — версионник

SM>>Которые и называются "параллельными".

IB>Нет, они последовательные. Транзакция не может начаться, пока не зафиксируется предыдущая, если так понятнее.
Эт откуда такая категоричность?
Ничего, что у меня прямо сейчас три модифицирующие транзакции на одни и те же данные из одного соединения стартануты?

SM>> Так как в одном соединении в одно и то же время могут быть несколько активнывх транзакций.

IB>Нет в этом смысла. Нельзя так делать и не несет это никакой практической ценности, я уже усталписать почему.
Угу. Вопрос стереотипов.
Но изначально человеку было всё это нужно:
А может вообще уйти с Firebird?
Автор: mmaxx
Дата: 19.09.07


SM>>см пример от Ded'а.

IB>Я уже ответил на этот пример.
Как то я аргументированных объяснений не увидел
--
WBR и ничего личного
... << RSDN@Home 1.2.0 alpha rev. 743>>
Re[18]: Я вижу будущее
От: Ramzzes Россия http://ramzes.ws/
Дата: 20.09.07 15:10
Оценка:
SM>>>см пример от Ded'а.
IB>>Я уже ответил на этот пример.
SM>Как то я аргументированных объяснений не увидел

Готов поспорить, на это будет ответ:
"Объяснения были вполне аргументированные"
Re[16]: А может вообще уйти с Firebird?
От: IB Австрия http://rsdn.ru
Дата: 20.09.07 15:33
Оценка:
Здравствуйте, pnv82, Вы писали:

P>Пользователь начинает создание нового документа(пусть какая-то заявка). Одновременно с открытием формы стартуется транзакция Т1, которая будет АКТИВНА, читай незакомичена, все время, пока пользователь делает/редактирует документ. Версионная архитектура может себе позволить такие транзакции не сильно напрягаясь.

Позволить можно все. Но напрягаться придется сильно.

P>В какой-то момент времени, пользователь видит, что в справочнике номенклатуры ошибка — он открывает карточку соответствующего товара, и в транзакции Т2 исправляет название, после чего коммитит Т2.

T1 видит эти изменения?

P>Так вот, подобный сценарий, в ФБ реализуется в рамках одного соединения, в то время как...

То есть там дорого создавать коннекты и они нашли такой выход изположения — так?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Мы уже победили, просто это еще не так заметно...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.