transactions

Started by surabhi.ahujaalmost 21 years ago3 messagesgeneral
Jump to latest
#1surabhi.ahuja
surabhi.ahuja@iiitb.ac.in

Hello everyone.
I have the following question:

say i have two transactions going on simultaneoulsy.
in one transaction i do an insertion
and the other transaction i do a delete.
what will happen if in both the transactions, the insert(in one) and delete(in the other) are issued at exactly the same time? will bothe get blocked and enter into a deadlock, if yes then do both the transactions get aborted after some time of waiting.

Regards
Surabhi Ahuja

#2Doug McNaught
doug@mcnaught.org
In reply to: surabhi.ahuja (#1)
Re: transactions

"Surabhi Ahuja " <surabhi.ahuja@iiitb.ac.in> writes:

Hello everyone.
I have the following question:

say i have two transactions going on simultaneoulsy.
in one transaction i do an insertion
and the other transaction i do a delete.
what will happen if in both the transactions, the insert(in one) and
delete(in the other) are issued at exactly the same time? will bothe get
blocked and enter into a deadlock, if yes then do both the transactions
get aborted after some time of waiting.

The transactions will be executed completely independently, unless you
do explicit locking (via SELECT FOR UPDATE or LOCK TABLE).

-Doug

#3Michael Fuhr
mike@fuhr.org
In reply to: Doug McNaught (#2)
Re: transactions

On Mon, Jun 06, 2005 at 09:21:15AM -0400, Douglas McNaught wrote:

"Surabhi Ahuja " <surabhi.ahuja@iiitb.ac.in> writes:

say i have two transactions going on simultaneoulsy.
in one transaction i do an insertion
and the other transaction i do a delete.
what will happen if in both the transactions, the insert(in one) and
delete(in the other) are issued at exactly the same time? will bothe get
blocked and enter into a deadlock, if yes then do both the transactions
get aborted after some time of waiting.

The transactions will be executed completely independently, unless you
do explicit locking (via SELECT FOR UPDATE or LOCK TABLE).

Deadlock can still happen if Transaction A's INSERT blocks because
of something Transaction B did previously, and Transaction B's
DELETE blocks because of something Transaction A did previously.
Foreign key relationships are a typical cause, but even UPDATEs on
simple tables can cause later operations to deadlock if the application
isn't careful with its order of operations.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/