ACM Transactions on Programming Languages and Systems (TOPLAS)
A critique of ANSI SQL isolation levels
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
The serializability of concurrent database updates
Journal of the ACM (JACM)
Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture
Semantic Conditions for Correctness at Different Isolation Levels
ICDE '00 Proceedings of the 16th International Conference on Data Engineering
A read-only transaction anomaly under snapshot isolation
ACM SIGMOD Record
Making snapshot isolation serializable
ACM Transactions on Database Systems (TODS)
ICWE '06 Proceedings of the 6th international conference on Web engineering
Versioned boxes as the basis for memory transactions
Science of Computer Programming - Special issue: Synchronization and concurrency in object-oriented languages
Automating the detection of snapshot isolation anomalies
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
MapReduce: simplified data processing on large clusters
Communications of the ACM - 50th anniversary issue: 1958 - 2008
On the correctness of transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Transactions are back---but are they the same?
ACM SIGACT News
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Queue - Object-Relational Mapping
Communications of the ACM - Rural engineering development
Versioned transactional shared memory for the FénixEDU web application
Proceedings of the 2nd workshop on Dependable distributed data management
Consistent and scalable cache replication for multi-tier J2EE applications
Proceedings of the ACM/IFIP/USENIX 2007 International Conference on Middleware
Shore-MT: a scalable storage manager for the multicore era
Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology
A Classification of Object-Relational Impedance Mismatch
DBKDA '09 Proceedings of the 2009 First International Conference on Advances in Databases, Knowledge, and Data Applications
The Cost of Serializability on Platforms That Use Snapshot Isolation
ICDE '08 Proceedings of the 2008 IEEE 24th International Conference on Data Engineering
Serializable isolation for snapshot databases
ACM Transactions on Database Systems (TODS)
D2STM: Dependable Distributed Software Transactional Memory
PRDC '09 Proceedings of the 2009 15th IEEE Pacific Rim International Symposium on Dependable Computing
Domain Specific Languages
Transactional Memory, 2nd Edition
Transactional Memory, 2nd Edition
Lock-free and scalable multi-version software transactional memory
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
10 rules for scalable performance in 'simple operation' datastores
Communications of the ACM
Hi-index | 0.00 |
Despite many evolutions in the software architecture of enterprise applications, one thing has remained the same over the years: They still use a relational database both for data persistence and transactional support. We argue that such design, once justified by hardware limitations, endured mostly for legacy reasons and is no longer adequate for a significant portion of modern applications running in a new generation of multicore machines with very large memories. We propose a new architecture for enterprise applications that uses a Software Transactional Memory for transactional support at the application server tier, thereby shifting the responsibility of transaction control from the database to the application server. The database tier remains in our architecture with the sole purpose of ensuring the durability of data. With this change we are able to provide strictly serializable transaction semantics, and we do so with increased performance. Thus, we claim that strict serializability is harmless, in the sense that programmers no longer have to trade correctness for performance for a significant class of applications. We have been using this new architecture since 2005 in the development of real-world complex object-oriented applications, and we present statistical data collected over several years about the workload patterns of these applications, revealing a surprisingly low rate of write transactions.