Re: Beating Oracle

Поиск
Список
Период
Сортировка
От
Тема Re: Beating Oracle
Дата
Msg-id 10489.195.212.29.99.1015000852.squirrel@webmail.xs4all.nl
обсуждение исходный текст
Ответ на Re: Beating Oracle  (<jtv@xs4all.nl>)
Список pgsql-interfaces
> The setup of Transactor encourages the programmer to put all
> "transient"  state involved in the transaction inside the functor class
> as data  members.  If the connection is no longer there, for example,
> the framework  tries to rerun the functor.  It first restores the
> transaction's initial  state simply by copy-constructing the functor
> object.

....And of course I should have added that the rerun involves setting up a 
new back-end transaction (which is again handled by the framework).

I've considered special-case optimizations such as recording & replaying 
SQL, but felt a bit out of my depth when trying to define (in reasonably 
simple terms) when this would be safe.  After all the client's transaction 
may eg. read a record that another client may have modified between 
retries.  So I stuck with the more general solution of replaying the client 
code, and coupling each attempt to its own backend transaction.

Of course this still doesn't let you do long transactions in an iffy 
network environment.  What it does buy you--I think--is the ability to keep 
a connection open for a long time and running batches of smaller 
transactions, without having to care (much) about temporary loss of 
connection.  From what I've seen, such loss typically occurs when the 
connection is idle between transactions.


Jeroen




В списке pgsql-interfaces по дате отправления:

Предыдущее
От:
Дата:
Сообщение: Re: Beating Oracle
Следующее
От: Tom Ivar Helbekkmo
Дата:
Сообщение: Re: Beating Oracle