Ensuring Consistency under the Snapshot Isolation
Description
By running transactions under the SNAPSHOT isolation
we can achieve a good level of concurrency, specially in databases
with high-intensive read workloads. However, SNAPSHOT is not
immune to all the problems that arise from competing transactions
and therefore no serialization warranty exists. We propose in this
paper a technique to obtain data consistency with SNAPSHOT by using
some special triggers that we named DAEMON TRIGGERS. Besides
keeping the benefits of the SNAPSHOT isolation, the technique is
specially useful for those database systems that do not have an
isolation level that ensures serializability, like Firebird and Oracle. We
describe all the anomalies that might arise when using the SNAPSHOT
isolation and show how to preclude them with DAEMON TRIGGERS.
Based on the methodology presented here, it is also proposed the
creation of a new isolation level: DAEMON SNAPSHOT.