Serializable Snapshot Isolation for Replicated Databases in High-Update Scenarios

Total Page:16

File Type:pdf, Size:1020Kb

Serializable Snapshot Isolation for Replicated Databases in High-Update Scenarios Serializable Snapshot Isolation for Replicated Databases in High-Update Scenarios Hyungsoo Jungy Hyuck Han∗ Alan Feketey Uwe Rohm¨ y University of Sydney Seoul National University University of Sydney University of Sydney yffi[email protected][email protected] ABSTRACT pects of this work. Among these is the value of Snapshot Many proposals for managing replicated data use sites run- Isolation (SI) rather than serializability. SI is widely avail- ning the Snapshot Isolation (SI) concurrency control mech- able in DBMS engines like Oracle DB, PostgreSQL, and Mi- anism, and provide 1-copy SI or something similar, as the crosoft SQL Server. By using SI in each replica, and deliver- global isolation level. This allows good scalability, since only ing 1-copy SI as the global behavior, most recent proposals ww-conflicts need to be managed globally. However, 1-copy have obtained improved scalability, since local SI can be SI can lead to data corruption and violation of integrity con- combined into (some variant of) global 1-copy SI by han- straints [5]. 1-copy serializability is the global correctness dling ww-conflicts, but ignoring rw-conflicts. This has been condition that prevents data corruption. We propose a new the dominant replication approach, in the literature [10, 11, algorithm Replicated Serializable Snapshot Isolation (RSSI) 12, 13, 23, 27]. that uses SI at each site, and combines this with a certifi- While there are good reasons for replication to make use cation algorithm to guarantee 1-copy serializable global ex- of SI as a local isolation level (in particular, it is the best ecution. Management of ww-conflicts is similar to what is currently available in widely deployed systems including Or- done in 1-copy SI. But unlike previous designs for 1-copy se- acle and PostgreSQL), the decision to provide global SI is rializable systems, we do not need to prevent all rw-conflicts less convincing. Global SI (like SI in a single site) does not among concurrent transactions. We formalize this in a theo- prevent data corruption or interleaving anomalies. If data rem that shows that many rw-conflicts are indeed false pos- integrity is important to users, they should expect global (1- itives that do not risk non-serializable behavior. Our pro- copy) serializable execution, which will maintain the truth posed RSSI algorithm will only abort a transaction when it of any integrity constraint that is preserved by each trans- detects a well-defined pattern of two consecutive rw-edges action considered alone. in the serialization graph. We have built a prototype that Thus in this paper, we propose a new replication algo- integrates our RSSI with the existing open-source Postgres- rithm that uses sites running SI, and provides users with a R(SI) system. Our performance evaluation shows that there global serializable execution. is a worst-case overhead of about 15% for getting full 1- Recently, Bornea et al. [6] proposed a replica management copy serializability as compared to 1-copy SI in a cluster of system that uses sites running SI, and provides users with a 8 nodes, with our proposed RSSI clearly outperforming the global serializable execution. They use an essentially opti- previous work [6] for update-intensive workloads. mistic approach (following the basic principles from [17]) in which each transaction is performed locally at one site, and then (for update transactions) the writeset and readset are 1. INTRODUCTION transmitted (by a totally ordered broadcast) to remote sites In 1996, a seminal paper by Gray et al. [15] showed that where a certification step at the end of the transaction can there were performance bottlenecks that limited scalability check for conflicts between the completing transaction and of all the then-known approaches to managing replicated all concurrent committed transactions; if a conflict is found, data. These approaches involved a transaction performing the later transaction is aborted. All the designs that offer SI reads at one site, performing writes at all sites, and ob- as global isolation level, must do essentially the same checks taining locks at all sites. This led to a busy research area, to prevent ww-conflicts; the extra work for 1-copy serializ- proposing novel system designs to get better scalability. In ability lies in preventing rw-conflicts. Bornea et al. follow 2010, in a reflection [19] on winning a Ten-Year-Best-Paper this approach in a middleware-based design, with readsets award, Kemme and Alonso identified some important as- calculated by the middleware from analysis of SQL text, in order to reduce transmission cost. We refer to this conflict management approach, of aborting an update transaction Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are when it has a rw- or ww-conflict with a committed concur- not made or distributed for profit or commercial advantage and that copies rent transaction, as the “conflict-prevention with read-only bear this notice and the full citation on the first page. To copy otherwise, to optimisation" approach (abbreviated as CP-ROO). Our pa- republish, to post on servers or to redistribute to lists, requires prior specific per offers a more subtle approach, that looks at pairs of permission and/or a fee. Articles from this volume were invited to present consecutive conflict edges in order to reduce the number of their results at The 37th International Conference on Very Large Data Bases, unnecessary aborts; as a trade-off however, we must also cer- August 29th - September 3rd 2011, Seattle, Washington. Proceedings of the VLDB Endowment, Vol. 4, No. 11 tify read-only transactions, and so our technique is suited to Copyright 2011 VLDB Endowment 2150-8097/11/08... $ 10.00. 783 cases of high update rate (as we demonstrate in the evalua- Snapshot Isolation. Snapshot Isolation (SI) is a method tion). These cases are not well treated by existing replication of multiversion concurrency control in a single DBMS engine strategies which focus instead on read-mostly environments, that ensures non-blocking reads and avoids many anomalies. and they scale badly when updates are common. SI was described in Berenson et al. [5] and it has been im- A similar issue was previously studied in single-site DBMS plemented in several production systems including Oracle concurrency control. Theory from Adya [1] as extended by DB, PostgreSQL and Microsoft SQL Server. When SI is the Fekete et al. [14] showed that checking each rw-conflict in an concurrency control mechanism, and each transaction Ti be- SI-based system gives many unnecessary aborts (\false pos- gins its execution, it gets a begin timestamp bi. Whenever itives") in situations where non-serializable execution will Ti reads a data record x, it does not necessarily see the lat- not arise even in presence of a rw-conflict; instead, non- est value written to x; instead Ti sees the version of x that serializable execution only arises from a pair of consecutive was produced by the last to commit among the transactions rw-conflicts within a cycle in the serialization graph. Cahill that committed before Ti started and also modified x (there et al. [7] used this to propose Serializable Snapshot Isola- is one exception to this: if Ti has itself modified x, it sees tion (SSI), a concurrency control mechanism that is a mod- its own version). Owing to this rule, Ti appears to run on a ification of an SI-based (single site) engine. SSI guarantees snapshot of the database, storing the last committed version serializable execution, with performance close to that of SI of each record at bi. SI also enforces another rule on writes, itself (note that a pair of consecutive edges is much less fre- called the First-Committer-Wins (FCW) rule: two concur- quent than a single edge, so SSI has far fewer aborts than a rent transactions that both modify the same data record standard optimistic approach). In this paper we do a similar cannot both commit. This prevents lost updates in a single thing for a replicated system, with SI as the mechanism in site DBMS. each site, and 1-copy serializability as the global property of The theoretical properties of SI have been studied ex- executions. We prevent ww-conflicts in the same way as 1- tensively. Berenson et al. [5] showed that SI allows some copy SI designs, and we prevent certain pairs of consecutive non-serializable executions. Adya [1] showed that in any rw-conflicts. non-serializable execution of SI, the serialization graph has Contributions of This Work. We prove a new the- a cycle with two consecutive rw-edges. This was extended orem that gives a sufficient condition for 1-copy serializ- by Fekete et al. [14], who found that any non-serializable able execution, based on absence of ww-conflicts between execution had consecutive rw-edges where the transactions concurrent transactions, and absence of certain patterns of joined by the edge were concurrent with one another. Our consecutive rw-conflicts. We propose a concurrency con- new theorem is similar in format to those in [1, 14], but trol algorithm that applies the theorem, to abort trans- with different side-conditions that are suited to a replicated actions during a certification step when these situations are system. found. We design and implement a prototype system This theory has been used to enforce serializability based called Postgres-RSSI, using this algorithm, as a modification on SI mechanisms. In Fekete et al. [14] and in Alomari of the existing Postgres-R(SI) open source replication sys- et al.
Recommended publications
  • A Fast Implementation of Parallel Snapshot Isolation
    A FAST IMPLEMENTATION OF PARALLEL SNAPSHOT ISOLATION UNA IMPLEMENTACIÓN RÁPIDA DE PARALLEL SNAPSHOT ISOLATION Borja Arnau de Régil Basáñez Trabajo de Fin de Grado del Grado en Ingeniería Informática Facultad de Informática, Universidad Complutense de Madrid Junio 2020 Director: Maria Victoria López López Co-director: Alexey Gotsman Contents Acknowledgements iv Abstract v Resumen vi 1. Introduction1 1.1. Motivation . .1 1.2. Goals . .2 1.3. Work Plan . .3 1.4. Document Structure . .3 1.5. Sources and Repositories . .4 1.6. Related Program Courses . .4 2. Preliminaries5 2.1. Notation . .5 2.1.1. Objects and Replication . .5 2.1.2. Transactions . .5 2.1.3. Histories . .6 2.2. Consistency Models . .6 2.2.1. Read Committed (RC) . .7 2.2.2. Serialisability (SER) . .8 2.2.3. Snapshot Isolation (SI) . .9 2.2.4. Parallel Snapshot Isolation (PSI) . 10 2.2.5. Non-Monotonic Snapshot Isolation (NMSI) . 11 2.2.6. Anomaly Comparison . 11 3. The fastPSI protocol 12 3.1. Consistency Guarantees . 12 3.2. Overview and System Model . 13 3.3. Server data structures . 14 3.4. Protocol Description . 16 3.4.1. Transaction Execution . 16 3.4.2. Transaction Termination . 20 3.5. Consistency Tradeoffs and Read Aborts . 23 ii 4. Implementation and Evaluation 26 4.1. Implementation . 26 4.2. Evaluation . 27 4.2.1. Performance & Scalability Limits . 28 4.2.2. Abort Ratio . 31 5. Related Work 35 6. Conclusions and Future Work 37 6.1. Conclusions . 37 6.2. Future Work . 37 A. Serialisable and Read Committed Protocols 39 A.1.
    [Show full text]
  • One-Copy Serializability with Snapshot Isolation Under the Hood
    One-Copy Serializability with Snapshot Isolation under the Hood Mihaela A. Bornea 1, Orion Hodson 2, Sameh Elnikety 2, Alan Fekete 3 1Athens U. of Econ and Business, 2Microsoft Research, 3University of Sydney Abstract—This paper presents a method that allows a repli- With careful design and engineering, SI engines can be cated database system to provide a global isolation level stronger replicated to get even higher performance with a replicated than the isolation level provided on each individual database form of SI such as Generalized Snapshot Isolation (GSI) [13], replica. We propose a new multi-version concurrency control al- gorithm called, serializable generalized snapshot isolation (SGSI), which is also not serializable. The objective of this paper is that targets middleware replicated database systems. Each replica to provide a concurrency control algorithm for replicated SI runs snapshot isolation locally and the replication middleware databases that achieves almost the same performance as GSI guarantees global one-copy serializability. We introduce novel while providing global one-copy-serializability (1SR). techniques to provide a stronger global isolation level, namely To guarantee serializability, concurrency control algorithms readset extraction and enhanced certification that prevents read- write and write-write conflicts in a replicated setting. We prove typically require access to data read and written in update the correctness of the proposed algorithm, and build a proto- transactions. Accessing this data is especially difficult in a type replicated database system to evaluate SGSI performance replicated database system since built-in facilities inside a experimentally. Extensive experiments with an 8 replica database centralized DBMS, like the lock manager, are not available system under the TPC-W workload mixes demonstrate the at a global level.
    [Show full text]
  • Making Snapshot Isolation Serializable
    Making Snapshot Isolation Serializable ALAN FEKETE University of Sydney DIMITRIOS LIAROKAPIS, ELIZABETH O’NEIL, and PATRICK O’NEIL University of Massachusetts and DENNIS SHASHA Courant Institute Snapshot Isolation (SI) is a multiversion concurrency control algorithm, first described in Berenson et al. [1995]. SI is attractive because it provides an isolation level that avoids many of the com- mon concurrency anomalies, and has been implemented by Oracle and Microsoft SQL Server (with certain minor variations). SI does not guarantee serializability in all cases, but the TPC-C benchmark application [TPC-C], for example, executes under SI without serialization anoma- lies. All major database system products are delivered with default nonserializable isolation levels, often ones that encounter serialization anomalies more commonly than SI, and we sus- pect that numerous isolation errors occur each day at many large sites because of this, lead- ing to corrupt data sometimes noted in data warehouse applications. The classical justification for lower isolation levels is that applications can be run under such levels to improve efficiency when they can be shown not to result in serious errors, but little or no guidance has been of- fered to application programmers and DBAs by vendors as to how to avoid such errors. This article develops a theory that characterizes when nonserializable executions of applications can occur under SI. Near the end of the article, we apply this theory to demonstrate that the TPC-C benchmark application has no serialization anomalies under SI, and then discuss how this demon- stration can be generalized to other applications. We also present a discussion on how to modify the program logic of applications that are nonserializable under SI so that serializability will be guaranteed.
    [Show full text]
  • Firebird 3.0 Developer's Guide
    Firebird 3.0 Developer’s Guide Denis Simonov Version 1.1, 27 June 2020 Preface Author of the written material and creator of the sample project on five development platforms, originally as a series of magazine articles: Denis Simonov Translation of original Russian text to English: Dmitry Borodin (MegaTranslations Ltd) Editor of the translated text: Helen Borrie Copyright © 2017-2020 Firebird Project and all contributing authors, under the Public Documentation License Version 1.0. Please refer to the License Notice in the Appendix This volume consists of chapters that walk through the development of a simple application for several language platforms, notably Delphi, Microsoft Entity Framework and MVC.NET (“Model-View-Controller”) for web applications, PHP and Java with the Spring framework. It is hoped that the work will grow in time, with contributions from authors using other stacks with Firebird. 1 Table of Contents Table of Contents 1. About the Firebird Developer’s Guide: for Firebird 3.0 . 6 1.1. About the Author . 6 1.1.1. Translation… . 6 1.1.2. … and More Translation . 6 1.2. Acknowledgments . 6 2. The examples.fdb Database . 8 2.1. Database Creation Script. 8 2.1.1. Database Aliases . 9 2.2. Creating the Database Objects. 10 2.2.1. Domains . 10 2.2.2. Primary Tables. 11 2.2.3. Secondary Tables . 13 2.2.4. Stored Procedures. 17 2.2.5. Roles and Privileges for Users . 25 2.3. Saving and Running the Script . 26 2.4. Loading Test Data . 27 3. Developing Firebird Applications in Delphi . 28 3.1.
    [Show full text]
  • Concurrency Control Basics
    Outline l Introduction/problems, l definitions Introduction/ (transaction, history, conflict, equivalence, Problems serializability, ...), Definitions l locking. Chapter 2: Locking Concurrency Control Basics Klemens Böhm Distributed Data Management: Concurrency Control Basics – 1 Klemens Böhm Distributed Data Management: Concurrency Control Basics – 2 Atomicity, Isolation Synchronisation, Distributed (1) l Transactional guarantees – l Essential feature of databases: in particular, atomicity and isolation. Many users can access the same data concurrently – be it read, be it write. Introduction/ l Atomicity Introduction/ Problems Problems u Example, „bank scenario“: l Consistency must be guaranteed – Definitions Definitions task of synchronization component. Locking Number Person Balance Locking Klemens 5000 l Multi-user mode shall be hidden from users as far as possible: concurrent processing Gunter 200 of requests shall be transparent, u Money transfer – two elementary operations. ‚illusion‘ of being the only user. – debit(Klemens, 500), – credit(Gunter, 500). l Isolation – can be explained with this example, too. l Transactions. Klemens Böhm Distributed Data Management: Concurrency Control Basics – 3 Klemens Böhm Distributed Data Management: Concurrency Control Basics – 4 Synchronisation, Distributed (2) Synchronization in General l Serial execution of application programs Uncontrolled non-serial execution u achieves that illusion leads to other problems, notably inconsistency: l Introduction/ without any synchronization effort, Introduction/
    [Show full text]
  • Ensuring Consistency Under the Snapshot Isolation
    World Academy of Science, Engineering and Technology International Journal of Computer and Information Engineering Vol:8, No:7, 2014 Ensuring Consistency under the Snapshot Isolation Carlos Roberto Valencio,ˆ Fabio´ Renato de Almeida, Thatiane Kawabata, Leandro Alves Neves, Julio Cesar Momente, Mario Luiz Tronco, Angelo Cesar Colombini Abstract—By running transactions under the SNAPSHOT isolation both transactions write the same data item, giving rise to we can achieve a good level of concurrency, specially in databases a write-write conflict. In turn, a temporal overlap occurs with high-intensive read workloads. However, SNAPSHOT is not < when Ti and Tj run concurrently, that is tsi tcj and immune to all the problems that arise from competing transactions < and therefore no serialization warranty exists. We propose in this tsj tci [2]. Thus, a transaction Ti under the SNAPSHOT paper a technique to obtain data consistency with SNAPSHOT by using isolation is allowed to commit only if no other transaction with δ <δ< some special triggers that we named DAEMON TRIGGERS. Besides commit-timestamp in the running time of Ti (tsi tci ) keeping the benefits of the SNAPSHOT isolation, the technique is wrote a data item also written by Ti [4]. specially useful for those database systems that do not have an Implementations of the SNAPSHOT isolation have the isolation level that ensures serializability, like Firebird and Oracle. We describe all the anomalies that might arise when using the SNAPSHOT advantage that writes of a transaction do not block the isolation and show how to preclude them with DAEMON TRIGGERS. reads of others.
    [Show full text]
  • Cache Serializability: Reducing Inconsistency in Edge Transactions
    Cache Serializability: Reducing Inconsistency in Edge Transactions Ittay Eyal Ken Birman Robbert van Renesse Cornell University tributed databases. Until recently, technical chal- Abstract—Read-only caches are widely used in cloud lenges have forced such large-system operators infrastructures to reduce access latency and load on to forgo transactional consistency, providing per- backend databases. Operators view coherent caches as object consistency instead, often with some form of impractical at genuinely large scale and many client- facing caches are updated in an asynchronous manner eventual consistency. In contrast, backend systems with best-effort pipelines. Existing solutions that support often support transactions with guarantees such as cache consistency are inapplicable to this scenario since snapshot isolation and even full transactional atom- they require a round trip to the database on every cache icity [9], [4], [11], [10]. transaction. Our work begins with the observation that it can Existing incoherent cache technologies are oblivious to be difficult for client-tier applications to leverage transactional data access, even if the backend database supports transactions. We propose T-Cache, a novel the transactions that the databases provide: trans- caching policy for read-only transactions in which incon- actional reads satisfied primarily from edge caches sistency is tolerable (won’t cause safety violations) but cannot guarantee coherency. Yet, by running from undesirable (has a cost). T-Cache improves cache consis- cache, client-tier transactions shield the backend tency despite asynchronous and unreliable communication database from excessive load, and because caches between the cache and the database. We define cache- are typically placed close to the clients, response serializability, a variant of serializability that is suitable latency can be improved.
    [Show full text]
  • A Theory of Global Concurrency Control in Multidatabase Systems
    VLDB Journal,2, 331-360 (1993), Michael Carey and Patrick Valduriez, Editors 331 t~)VLDB A Theory of Global Concurrency Control in Multidatabase Systems Aidong Zhang and Ahmed K. Elmagarmid Received December 1, 1992; revised version received February 1, 1992; accepted March 15, 1993. Abstract. This article presents a theoretical basis for global concurrency control to maintain global serializability in multidatabase systems. Three correctness criteria are formulated that utilize the intrinsic characteristics of global transactions to de- termine the serialization order of global subtransactions at each local site. In par- ticular, two new types of serializability, chain-conflicting serializability and shar- ing serializability, are proposed and hybrid serializability, which combines these two basic criteria, is discussed. These criteria offer the advantage of imposing no restrictions on local sites other than local serializability while retaining global se- rializability. The graph testing techniques of the three criteria are provided as guidance for global transaction scheduling. In addition, an optimal property of global transactions for determinating the serialization order of global subtransac- tions at local sites is formulated. This property defines the upper limit on global serializability in multidatabase systems. Key Words. Chain-conflicting serializability, sharing serializability, hybrid serial- izability, optimality. 1. Introduction Centralized databases were predominant during the 1970s, a period which saw the development of diverse database systems based on relational, hierarchical, and network models. The advent of applications involving increased cooperation between systems necessitated the development of methods for integrating these pre-existing database systems. The design of such global database systems must allow unified access to these diverse database systems without subjecting them to conversion or major modifications.
    [Show full text]
  • Chapter 14: Concurrency Control
    ChapterChapter 1515 :: ConcurrencyConcurrency ControlControl What is concurrency? • Multiple 'pieces of code' accessing the same data at the same time • Key issue in multi-processor systems (i.e. most computers today) • Key issue for parallel databases • Main question: how do we ensure data stay consistent without sacrificing (too much) performance? Lock-BasedLock-Based ProtocolsProtocols • A lock is a mechanism to control concurrent access to a data item • Data items can be locked in two modes: 1. exclusive (X) mode. Data item can be both read as well as written. X-lock is requested using lock-X instruction. 2. shared (S) mode. Data item can only be read. S-lock is requested using lock-S instruction. • Lock requests are made to concurrency-control manager. Transaction can proceed only after request is granted. Lock-BasedLock-Based ProtocolsProtocols (Cont.)(Cont.) • Lock-compatibility matrix • A transaction may be granted a lock on an item if the requested lock is compatible with locks already held on the item by other transactions. • Any number of transactions can hold shared locks on an item, – but if any transaction holds an exclusive on the item no other transaction may hold any lock on the item. • If a lock cannot be granted, the requesting transaction is made to wait till all incompatible locks held by other transactions have been released. The lock is then granted. Lock-BasedLock-Based ProtocolsProtocols (Cont.)(Cont.) • Example of a transaction performing locking: T2: lock-S(A); read (A); unlock(A); lock-S(B); read (B); unlock(B); display(A+B) • Locking as above is not sufficient to guarantee serializability — if A and B get updated in-between the read of A and B, the displayed sum would be wrong.
    [Show full text]
  • Analysis and Comparison of Concurrency Control Techniques
    ISSN (Online) 2278-1021 ISSN (Print) 2319-5940 International Journal of Advanced Research in Computer and Communication Engineering Vol. 4, Issue 3, March 2015 Analysis and Comparison of Concurrency Control Techniques Sonal Kanungo1, Morena Rustom. D2 Smt.Z.S.Patel College Of Computer, Application,Jakat Naka, Surat1 2 Department Of Computer Science, Veer Narmad South Gujarat University, Surat. Abstract: In a shared database system when several transactions are executed simultaneously, the consistency of database should be maintained. The techniques to ensure this consistency are concurrency control techniques. All concurrency-control schemes are based on the serializability property. The serializability properties requires that the data is accessed in a mutually exclusive manner; that means, while one transaction is accessing a data item no other transaction can modify that data item. In this paper we had discussed various concurrency techniques, their advantages and disadvantages and making comparison of optimistic, pessimistic and multiversion techniques. We have simulated the current environment and have analysis the performance of each of these methods. Keywords: Concurrency, Locking, Serializability 1. INTRODUCTION When a transaction takes place the database state is transaction has to wait until all incompatible locks held by changed. In any individual transaction, which is running other transactions are released. The lock is then granted. in isolation, is assumed to be correct. While in shared [1] database several transactions are executes concurrently in 1.1.2 The Two-Phase Locking Protocol the database, the isolation property may no longer be Transaction can always commit by not violating the preserved. To ensure that the system must control the serializability property.
    [Show full text]
  • Where We Are Snapshot Isolation Snapshot Isolation
    Where We Are • ACID properties of transactions CSE 444: Database Internals • Concept of serializability • How to provide serializability with locking • Lowers level of isolation with locking • How to provide serializability with optimistic cc Lectures 16 – Timestamps/Multiversion or Validation Transactions: Snapshot Isolation • Today: lower level of isolation with multiversion cc – Snapshot isolation Magda Balazinska - CSE 444, Spring 2012 1 Magda Balazinska - CSE 444, Spring 2012 2 Snapshot Isolation Snapshot Isolation • Not described in the book, but good overview in Wikipedia • A type of multiversion concurrency control algorithm • Provides yet another level of isolation • Very efficient, and very popular – Oracle, PostgreSQL, SQL Server 2005 • Prevents many classical anomalies BUT… • Not serializable (!), yet ORACLE and PostgreSQL use it even for SERIALIZABLE transactions! – But “serializable snapshot isolation” now in PostgreSQL Magda Balazinska - CSE 444, Fall 2010 3 Magda Balazinska - CSE 444, Fall 2010 4 Snapshot Isolation Rules Snapshot Isolation (Details) • Multiversion concurrency control: • Each transactions receives a timestamp TS(T) – Versions of X: Xt1, Xt2, Xt3, . • Transaction T sees snapshot at time TS(T) of the database • When T reads X, return XTS(T). • When T commits, updated pages are written to disk • When T writes X: if other transaction updated X, abort – Not faithful to “first committer” rule, because the other transaction U might have committed after T. But once we abort • Write/write conflicts resolved by “first
    [Show full text]
  • SQL: Transactions Introduction to Databases Compsci 316 Fall 2017 2 Announcements (Tue., Oct
    SQL: Transactions Introduction to Databases CompSci 316 Fall 2017 2 Announcements (Tue., Oct. 17) • Midterm graded • Sample solution already posted on Sakai • Project Milestone #1 feedback by email this weekend 3 Transactions • A transaction is a sequence of database operations with the following properties (ACID): • Atomic: Operations of a transaction are executed all-or- nothing, and are never left “half-done” • Consistency: Assume all database constraints are satisfied at the start of a transaction, they should remain satisfied at the end of the transaction • Isolation: Transactions must behave as if they were executed in complete isolation from each other • Durability: If the DBMS crashes after a transaction commits, all effects of the transaction must remain in the database when DBMS comes back up 4 SQL transactions • A transaction is automatically started when a user executes an SQL statement • Subsequent statements in the same session are executed as part of this transaction • Statements see changes made by earlier ones in the same transaction • Statements in other concurrently running transactions do not • COMMIT command commits the transaction • Its effects are made final and visible to subsequent transactions • ROLLBACK command aborts the transaction • Its effects are undone 5 Fine prints • Schema operations (e.G., CREATE TABLE) implicitly commit the current transaction • Because it is often difficult to undo a schema operation • Many DBMS support an AUTOCOMMIT feature, which automatically commits every single statement • You
    [Show full text]