~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/transactional.rst

  • Committer: Lee Bieber
  • Date: 2011-01-15 04:24:34 UTC
  • mfrom: (2086.1.3 build)
  • Revision ID: kalebral@gmail.com-20110115042434-f4g9hd4vu3rw6bfx
Merge Stewart - some documentation clean up
Merge Patrick - fix bug 693130: Tests depending on archive engine should be skipped if archive isn't enabled
Merge Patrick - fix bug 697292: The have_valgrind include file in the test has the opposite effect

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 
12
12
The essence of a transaction is that it groups multiple steps into a single, all-or-nothing operation. Drizzle is a transactional database by default and by design, meaning that changes and queries to the database appear to be Atomic, Consistent, Isolated, and Durable (ACID). This means that Drizzle implements `serializable <http://en.wikipedia.org/wiki/Serializability>`_, ACID transactions, even if the transaction is interrupted.
13
13
 
14
 
It collects operations that form tasks and stores them as a single operation, or if that operation is not possible it removes all changes attempted. Transactions are controlled via START TRANSACTION, ROLLBACK, and COMMIT. Savepoints are implemented to allow for a low leverl of granulairty.
 
14
Transactions are a group of operations that form tasks and stores them as a single operation, or if that operation is not possible it removes all changes attempted. Transactions are controlled via START TRANSACTION, ROLLBACK, and COMMIT. Savepoints are implemented to allow for a lower level of granularity.
15
15
 
16
16
A COMMIT statement ends a transaction within Drizzle and makes all changes visible to other users.  The order of events is typically to issue a START TRANSACTION statement, execute one or more SQL statements, and then issue a COMMIT statement. Alternatively, a ROLLBACK statement can be issued, which undoes all the work performed since START TRANSACTION was issued. A COMMIT statement will also release any existing savepoints that may be in use.
17
17
 
21
21
 
22
22
Currently DDL operations are performed as a single transaction, this limitation will be lifted in the future.
23
23
 
24
 
 
 
24
For various reasons, Drizzle may have to ROLLBACK a statement or transaction
 
25
without having been asked to do so. Examples include lock wait timeout or
 
26
deadlock detection. Any application using a transactional database system
 
27
needs to be able to deal with such cases.