Supported Transaction Isolation Levels

NuoDB supports several levels of transaction isolation based on its use of Multi-Version Concurrency Control (MVCC). MVCC uses multiple versions of records to provide a consistent view of the data to each transaction and to prevent concurrent transactions from overwriting each other’s changes. Under MVCC, readers do not block writers, and writers do not block readers.

Different NuoDB drivers support transaction isolation levels in different ways. Consult the documentation for each driver you are using to find which isolation levels are supported by that driver.

NuoDB supports the following transaction isolation levels:

Isolation Level Brief Description Performance Trade-offs and Comments

CONSISTENT READ

This is the NuoDB default transaction isolation level. A transaction sees a snapshot of the database as it was when that transaction started plus any changes made in that transaction.

For more information, see CONSISTENT READ.

CONSISTENT READ raises exceptions and provides complete isolation from changes made by other transactions. Each transaction uses its own snapshot view of the database.

READ COMMITTED

Each transaction always reads the most recently committed version of a record.

For more information, see READ COMMITTED.

READ COMMITTED transactions offer no guarantee of isolation, but are very familiar to users of database systems that do not implement concurrency through MVCC. For applications that must run on multiple database systems, including those that are not based on MVCC, the READ COMMITTED level provides compatible behavior.

REPEATABLE READ

REPEATABLE READ is an alias for the functionality achieved using CONSISTENT READ.

See CONSISTENT READ.

SERIALIZABLE

Required for backward compatibility. For behavior, see CONSISTENT READ.

See CONSISTENT READ.