The Costof Serializability on Platforms ThatUse Snapshot Isolation

Several common DBMS engines usethemulti- version concurrency control mechanism called Snapshot Isola- tion, eventhoughapplication programscanexperience non- serializable executions whenrunconcurrently onsuchaplatform. Several proposals exist formodifying theapplication programs, without changing their semantics, sothattheyarecertain to execute serializably evenonanengine thatusesSI.We evaluate theperformance impact ofthese proposals, andfindthatsome havelimited impact(only a fewpercent dropinthroughput atagiven multi-programming level) while others leadtomuch greater reduction inthroughput ofup-to60%inhighcontention scenarios. We present experimental results forbothanopen- sourceandacommercial engine. We relate these tothetheory, giving guidelines onwhichconflicts tointroduce soastoensure correctness withlittle impact onperformance.

[1]  Alan Fekete,et al.  Allocating isolation levels to transactions , 2005, PODS '05.

[2]  Dennis Shasha,et al.  Making snapshot isolation serializable , 2005, TODS.

[3]  Fernando Pedone,et al.  Database replication using generalized snapshot isolation , 2005, 24th IEEE Symposium on Reliable Distributed Systems (SRDS'05).

[4]  Bettina Kemme,et al.  Postgres-R(SI): combining replica control with concurrency control based on snapshot isolation , 2005, 21st International Conference on Data Engineering (ICDE'05).

[5]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.