June 2001
Intermediate to advanced
688 pages
19h 18m
English
Practically any application that uses locking may deadlock. In order to recover from a deadlock, in nearly all cases, transactions must be used so that an operation that deadlocks midway through can be undone, leaving the database in a consistent state. Because the access methods may perform updates on multiple pages during a single API call, transactions are necessary even when the application makes only single update calls into the database. The only exception to this rule is when all the threads of control accessing the database are read-only or when the Berkeley DB Concurrent Data Store product is used; this product guarantees deadlock-free operation at the expense of reduced concurrency. Because deadlocks ...