Characteristics of the read_uncommitted isolation level

The following side effects are possible when UltraLite operates at an isolation_level of 0 (read_uncommitted):

  • Applications can read uncommitted data (dirty reads). In this scenario, transactions may access rows in the database that are not committed and may still get rolled back by another transaction. This phenomena can result in phantom rows (rows that get added after the original query, making the result set returned in a repeated, duplicate query different).

    For a tutorial that demonstrates the effects of dirty reads, see Tutorial: Understanding dirty reads.

    For a tutorial that demonstrates a phantom row, see Tutorial: Understanding phantom rows.

  • Applications can perform non-repeatable reads. In this scenario, an application reads a row from the database, and then goes on to perform other operations. Then a second application updates/deletes the row and commits the change. If the first application attempts to re-read the original row, it receives either the updated information or discovers that the original row was deleted.

    For a tutorial that demonstrates the effects of non-repeatable reads, see Tutorial: Understanding non-repeatable reads.

 See also
 Example