Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
397375 | Information Systems | 2014 | 18 Pages |
•Study code modification for serializable execution on a Snapshot Isolation database.•Compare existing techniques with new External Lock Manager (ELM) approach.•ELM run-time performance is robust against choice of conflicts to introduce.
Snapshot Isolation (SI) is a multiversion concurrency control that has been implemented by several open source and commercial database systems (Oracle, Microsoft SQL Server, and previous releases of PostgreSQL). The main feature of SI is that a read operation does not block a write operation and vice versa, which allows higher degree of concurrency than traditional two-phase locking. SI prevents many anomalies that appear in other isolation levels, but it still can result in non-serializable executions, in which database integrity constraints can be violated. Several techniques are known to modify the application code based on preanalysis, in order to ensure that every execution is serializable on engines running SI. We introduce a new technique called External Lock Manager (ELM). In using a technique, there is a choice to make, of which pairs of transactions need to have conflicts introduced. We measure the performance impact of the choices available, among techniques and conflicts.