Results 1 - 10
of
20
Distributed Versioning: Consistent Replication for Scaling Back-end Databases of Dynamic Content Web Sites
- In ACM/IFIP/Usenix International Middleware Conference
, 2003
"... Dynamic content Web sites consist of a front-end Web server, an application server and a back-end database. In this paper we introduce distributed versioning, a new method for scaling the back-end database through replication. ..."
Abstract
-
Cited by 50 (10 self)
- Add to MetaCart
Dynamic content Web sites consist of a front-end Web server, an application server and a back-end database. In this paper we introduce distributed versioning, a new method for scaling the back-end database through replication.
Concurrency Control: Methods, Performance, and Analysis
- ACM Computing Surveys
, 1998
"... Standard locking (two-phase locking with on-demand lock requests and blocking upon lock conflict) is the primary concurrency control (CC) method for centralized databases. The main source of performance degradation with standard locking is blocking, whereas transaction (txn) restarts to resolve dead ..."
Abstract
-
Cited by 46 (0 self)
- Add to MetaCart
Standard locking (two-phase locking with on-demand lock requests and blocking upon lock conflict) is the primary concurrency control (CC) method for centralized databases. The main source of performance degradation with standard locking is blocking, whereas transaction (txn) restarts to resolve deadlocks have a secondary effect on performance. We provide a performance analysis of standard locking that accurately estimates its performance degradation leading to thrashing. We next introduce two sets of methods to cope with its performance limitations. Restartoriented locking methods selectively abort txns to increase the level of concurrency for active txns with respect to standard locking in high-contention environments. For example, the running-priority method aborts blocked txns based on the essential blocking principle, which only allows blocking by active txns. The waitdepth-limited (WDL) method further minimizes wasted processing by basing abort decisions on the progress made by a txn. Restart waiting serves as a load-control mechanism by deferring the restart of an aborted txn until conflicting txns have left the system. These two methods have performance superior to other restartoriented
Making Snapshots Isolation Serializable
, 2000
"... 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 common concurrency anomalies, and has been implemented by Oracle and Microsoft SQL Server (with certain ..."
Abstract
-
Cited by 45 (2 self)
- Add to MetaCart
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 common 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 anomalies. All major database system products are delivered with default nonserializable isolation levels, often ones that encounter serialization anomalies more commonly than SI, and we suspect that numerous isolation errors occur each day at many large sites because of this, leading 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 offered 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 demonstration 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.
Design and Performance of an Assertional Concurrency Control System
, 1998
"... Serializability has been widely accepted as the correctness criterion for databases subject to concurrent access. Serializable execution is generally implemented using a two-phase locking algorithm that locks items in the database to delay transactions that are in danger of performing in a non-seria ..."
Abstract
-
Cited by 12 (3 self)
- Add to MetaCart
Serializability has been widely accepted as the correctness criterion for databases subject to concurrent access. Serializable execution is generally implemented using a two-phase locking algorithm that locks items in the database to delay transactions that are in danger of performing in a non-serializable fashion. Such delays are unacceptable in high-performance database systems and in systems supporting long-running transactions. A number of models have been proposed in which transactions are decomposed into smaller, atomic, interleavable steps. A shortcoming of much of this work is that little guidance is provided as to how transactions should be decomposed and what interleavings preserve correct execution. We previously proposed a new correctness criterion, weaker than serializability, that guarantees that each transaction satisfies its specification. Based on that correctness criterion, we have designed and implemented a new concurrency control. Experiments using the new concurre...
Automating the Detection of Snapshot Isolation Anomalies ABSTRACT
"... Snapshot isolation (SI) provides significantly improved concurrency over 2PL, allowing reads to be non-blocking. Unfortunately, it can also lead to non-serializable executions in general. Despite this, it is widely used, supported in many commercial databases, and is in fact the highest available le ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
Snapshot isolation (SI) provides significantly improved concurrency over 2PL, allowing reads to be non-blocking. Unfortunately, it can also lead to non-serializable executions in general. Despite this, it is widely used, supported in many commercial databases, and is in fact the highest available level of consistency in Oracle and PostgreSQL. Sufficient conditions for detecting whether SI anomalies could occur in a given set of transactions were presented recently, and extended to necessary conditions for transactions without predicate reads. In this paper we address several issues in extending the earlier theory to practical detection/correction of anomalies. We first show how to mechanically find a set of programs which is large enough so that we ensure that all executions will be free of SI anomalies, by modifying these programs appropriately. We then address the problem of false positives, i.e., transaction programs wrongly identified as possibly leading to anomalies, and present techniques that can significantly reduce such false positives. Unlike earlier work, our techniques are designed to be automated, rather than manually carried out. We describe a tool which we are developing to carry out this task. The tool operates on descriptions of the programs either taken from the application code itself, or taken from SQL query traces. It can be used with any database system. We have used our tool on two real world applications in production use at IIT Bombay, and detected several anomalies, some of which have caused real world problems. We believe such a tool will be invaluable for ensuring safe execution of the large number of applications which are already running under SI. 1.
Fault-tolerance for stateful application servers in the presence of advanced transactions patterns
- In SRDS
, 2005
"... Replication is widely used in application server products to tolerate faults. An important challenge is to correctly coordinate replication and transaction execution for stateful application servers. Many current solutions assume that a single client request generates exactly one transaction at the ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
Replication is widely used in application server products to tolerate faults. An important challenge is to correctly coordinate replication and transaction execution for stateful application servers. Many current solutions assume that a single client request generates exactly one transaction at the server. However, it is quite common that several client requests are encapsulated within one server transaction or that a single client request can initiate several server transactions. In this paper, we propose a replication tool that is able to handle these variations in request/transaction association. We have integrated our approach into the J2EE application server JBoss. Our evaluation using the ECPerf benchmark shows a low overhead of the approach. 1
Concurrency Control for Step-Decomposed Transactions
- Information Systems
, 1999
"... A number of authors have proposed methods for increasing the throughput of transaction processing systems by decomposing transactions into steps and allowing the steps of concurrently executing transactions to be interleaved. In some proposals all interleavings are assumed to be acceptable, while ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
A number of authors have proposed methods for increasing the throughput of transaction processing systems by decomposing transactions into steps and allowing the steps of concurrently executing transactions to be interleaved. In some proposals all interleavings are assumed to be acceptable, while in others certain interleavings are forbidden. In this paper we describe a new concurrency control that guarantees that only the allowable interleavings specified for an application occur The concurrency control is called an assertional concurrency control (ACC). We describe its implementation within the CA-Open Ingres tm database management system and a set of experiments that were run to evaluate its effectiveness using the TPC-C tm Benchmark Transactions. The experiments demonstrate up to 80% improvement for benchmark transactions when lock contention is high, when long running transactions are a part of the transaction suite, and/or when sufficient system resources are prese...
Using Versions in Update Transactions: Application to Integrity Checking
- In Proceedings of the 23rd International Conference on Very Large Data Bases
, 1997
"... This paper proposes an extension of the multiversion two phase locking protocol, called EMV2PL, which enables update transactions to use versions while guaranteeing the serializability of all transactions. The use of the protocol is restricted to transactions, called write-then-read transactions tha ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
This paper proposes an extension of the multiversion two phase locking protocol, called EMV2PL, which enables update transactions to use versions while guaranteeing the serializability of all transactions. The use of the protocol is restricted to transactions, called write-then-read transactions that consist of two consecutive parts: a write part containing both read and write operations in some arbitrary order, and an abusively called read part, containing read operations or write operations on data items already locked in the write part of the transaction. With EMV2PL, read operations in the read part use versions and read locks acquired in the write part can be released just before entering the read part. We prove the correctness of our protocol, and show that its implementation requires very few changes to classical implementations of MV2PL. After presenting various methods used by application developers to implement integrity checking, we show how EMV2PL can be effectively used to...
A Reliable Computational Model For BDI Agents
"... BDI (Belief, Desire, Intention) is a mature and commonly adopted architecture for intelligent agents. However, the current computational model adopted by BDI has a number of problems with concurrency control, recoverability and predictability. This has hindered the construction of agents having robu ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
BDI (Belief, Desire, Intention) is a mature and commonly adopted architecture for intelligent agents. However, the current computational model adopted by BDI has a number of problems with concurrency control, recoverability and predictability. This has hindered the construction of agents having robust and predictable behaviour. To this end, we propose to integrate distributed transactions, a well-established technology in distributed systems, into the computational model of multi-agent systems based on the BDI architecture. Differently from common approaches, where so-called ACID (Atomic, Consistent, Isolated, Durable) transactions are used simply to operate on external resources such as databases, in our model transactions are the foundation of the operational semantics of intentions and of collaborative tasks within team of agents. They provide a predictable, well understood behaviour in case of partial or total failure of intentions to achieve their goals or even crashes of agents. Furthermore, distributed transactions provide a simple and clear extension of the BDI semantics from the single-agent case to teams of agents. We discuss the development of an agent system having a computational model with well-defined correctness criteria. Instead of hardwiring robustness and fault-tolerant behaviour into agent plans, well defined notions of correctness exist at the semantic level. Verification can then be undertaken at the desired level of abstraction. Two BDI interpreter prototypes have been developed to demon-
Reduction of Materialized View Staleness Using Online Updates
, 1998
"... Updating the materialized views stored in data warehouses usually implies making the warehouse unavailable to users. We propose MAUVE , a new algorithm for online incremental view updates that uses timestamps and allows consistent read-only access to the warehouse while it being updated. The algorit ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Updating the materialized views stored in data warehouses usually implies making the warehouse unavailable to users. We propose MAUVE , a new algorithm for online incremental view updates that uses timestamps and allows consistent read-only access to the warehouse while it being updated. The algorithm propagates the updates to the views more often than the typical once a day in order to reduce view staleness. We have implemented MAUVE on top of the Informix Universal Server and used a synthetic workload generator to experiment with various update workloads and different view update frequencies. Our results show that, all kinds of update streams benefit from more frequent view updates, instead of just once a day. However, there is a clear maximum for the view update frequency, for which view staleness is minimal. 1 Introduction Data warehouses contain data replicated from several external sources, collected to answer decision support queries. The replicated data is often copied in re...

