After the vitriolic debates I've seen between the PostgreSQL fanatics and
the MySQL defenders, I thought I'd ask for clarification on the support for
transactions that's supposedly provided by the use of BDB tables:

Having used Oracle for a while (and given my understanding of how
transactions work there), does using BDB guarantee that:

* DML that's not explicitly COMMITted will be automatically ROLLedBACK if
the connection is terminated prematurely?

* Other connections will continue to see a perfectly consistent snapshot of
the DB from before the start of the transaction, as long as the transaction
is not committed?

* If the DB server process crashes in the middle of a transaction, then on
restart, it will present a view of the DB without any of the effects of
uncommitted transactions? And *with* all the effects of all committed
transactions (needless to say)?

* How about locking? While a transaction is not committed, how much of the
tables that it modifies is automatically locked against updates by other
connections? The whole table? A page of the table? A row (dare I hope?)?

* (To labor a point) If a connection dies in the middle of a transaction
holding locks, will it automatically roll them changes and free the locks
and unblock any other operations waiting on that lock?

Just checking..  Thanks!
--
Shankar Unni                [EMAIL PROTECTED]         (408) 434-8311

Reply via email to