Subject | Re: [firebird-support] Firebird on Redhat Linux |
---|---|
Author | Ann W. Harrison |
Post date | 2010-06-17T18:49:41Z |
sivahari33 wrote:
sense from the normal database usage. In transactional databases,
a deadlock is the result of two transactions trying to change
related pieces of data at the same time. For example transaction
1 updates record A, transaction 2 updates record B, then transaction
1 tries to update record B and transaction 2 tries to update record
A. Transaction 1 can't continue until transaction 2 finishes and
vice-versa. That's a deadlock. Firebird detects that the two
transactions are waiting for each other and returns an error to
one of them.
Firebird (like other MVCC systems) also produces a special case
of deadlock called an update conflict if a transaction tries to
update or delete a record that's been updated by a concurrent
transaction. The second transaction's update or delete fails.
These are normal errors that can be minimized by careful application
design. They're no more of a problem than errors caused by
inserting incorrect data. They have nothing to do with the version
of Firebird you're using.
What is the symptom of the "dead lock" you're seeing?
Cheers,
Ann
>I think you may be using the term "dead lock" in a different
> We run Firebird 2.1.3.18185 on Redhat Linux platform. In some case a dead lock occurs while we try to update a record. But this dead lock is not happens always on the same table.
sense from the normal database usage. In transactional databases,
a deadlock is the result of two transactions trying to change
related pieces of data at the same time. For example transaction
1 updates record A, transaction 2 updates record B, then transaction
1 tries to update record B and transaction 2 tries to update record
A. Transaction 1 can't continue until transaction 2 finishes and
vice-versa. That's a deadlock. Firebird detects that the two
transactions are waiting for each other and returns an error to
one of them.
Firebird (like other MVCC systems) also produces a special case
of deadlock called an update conflict if a transaction tries to
update or delete a record that's been updated by a concurrent
transaction. The second transaction's update or delete fails.
These are normal errors that can be minimized by careful application
design. They're no more of a problem than errors caused by
inserting incorrect data. They have nothing to do with the version
of Firebird you're using.
What is the symptom of the "dead lock" you're seeing?
Cheers,
Ann