Distributed logging for transaction processing
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scalable reader-writer synchronization for shared-memory multiprocessors
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
ARIES/IM: an efficient and high concurrency index management method using write-ahead logging
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Journal of the ACM (JACM)
Shoring up persistent applications
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Sharing memory robustly in message-passing systems
Journal of the ACM (JACM)
The SPLASH-2 programs: characterization and methodological considerations
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Two techniques for on-line index modification in shared nothing parallel databases
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
The dangers of replication and a solution
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
Memory system characterization of commercial workloads
Proceedings of the 25th annual international symposium on Computer architecture
Performance of database workloads on shared-memory systems with out-of-order processors
Proceedings of the eighth international conference on Architectural support for programming languages and operating systems
On optimistic methods for concurrency control
ACM Transactions on Database Systems (TODS)
Multiversion concurrency control—theory and algorithms
ACM Transactions on Database Systems (TODS)
Sequentiality and prefetching in database systems
ACM Transactions on Database Systems (TODS)
Towards self-tuning data placement in parallel database systems
SIGMOD '00 Proceedings of the 2000 ACM SIGMOD international conference on Management of data
Making B+- trees cache conscious in main memory
SIGMOD '00 Proceedings of the 2000 ACM SIGMOD international conference on Management of data
Chord: A scalable peer-to-peer lookup service for internet applications
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
The Gamma Database Machine Project
IEEE Transactions on Knowledge and Data Engineering
Partial Strictness in Two-Phase Locking
ICDT '95 Proceedings of the 5th International Conference on Database Theory
Proceedings of the 17th International Conference on Data Engineering
Group Commit Timers and High Volume Transaction Systems
Proceedings of the 2nd International Workshop on High Performance Transaction Systems
Queue Locks on Cache Coherent Multiprocessors
Proceedings of the 8th International Symposium on Parallel Processing
Cache Conscious Indexing for Decision-Support in Main Memory
VLDB '99 Proceedings of the 25th International Conference on Very Large Data Bases
DBMSs on a Modern Processor: Where Does Time Go?
VLDB '99 Proceedings of the 25th International Conference on Very Large Data Bases
VLDB '90 Proceedings of the 16th International Conference on Very Large Data Bases
On the duality of operating system structures
ACM SIGOPS Operating Systems Review
Go!—A Multi-Paradigm Programming Language for Implementing Multi-Threaded Agents
Annals of Mathematics and Artificial Intelligence
QPipe: a simultaneously pipelined relational query engine
Proceedings of the 2005 ACM SIGMOD international conference on Management of data
Using elimination to implement scalable and lock-free FIFO queues
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
Maximizing CMP Throughput with Mediocre Cores
Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
B-tree concurrency control and recovery in page-server database systems
ACM Transactions on Database Systems (TODS)
Singularity: rethinking the software stack
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
MapReduce: simplified data processing on large clusters
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Bigtable: a distributed storage system for structured data
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Improving hash join performance through prefetching
ACM Transactions on Database Systems (TODS)
Dynamo: amazon's highly available key-value store
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Adaptive aggregation on chip multiprocessors
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
The end of an architectural era: (it's time for a complete rewrite)
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
Automating the detection of snapshot isolation anomalies
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
OLTP through the looking glass, and what we found there
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Communications of the ACM - Rural engineering development
Amdahl's Law in the Multicore Era
Computer
The PARSEC benchmark suite: characterization and architectural implications
Proceedings of the 17th international conference on Parallel architectures and compilation techniques
Validity of the single processor approach to achieving large scale computing capabilities
AFIPS '67 (Spring) Proceedings of the April 18-20, 1967, spring joint computer conference
Shore-MT: a scalable storage manager for the multicore era
Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology
The multikernel: a new OS architecture for scalable multicore systems
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Organization and maintenance of large ordered indices
SIGFIDET '70 Proceedings of the 1970 ACM SIGFIDET (now SIGMOD) Workshop on Data Description, Access and Control
Low overhead concurrency control for partitioned main memory databases
Proceedings of the 2010 ACM SIGMOD International Conference on Management of data
Schism: a workload-driven approach to database replication and partitioning
Proceedings of the VLDB Endowment
The case for determinism in database systems
Proceedings of the VLDB Endowment
Aether: a scalable approach to logging
Proceedings of the VLDB Endowment
Data-oriented transaction execution
Proceedings of the VLDB Endowment
Stonebraker on NoSQL and enterprises
Communications of the ACM
HyPer: A hybrid OLTP&OLAP main memory database system based on virtual memory snapshots
ICDE '11 Proceedings of the 2011 IEEE 27th International Conference on Data Engineering
PLP: page latch-free shared-everything OLTP
Proceedings of the VLDB Endowment
High-performance concurrency control mechanisms for main-memory databases
Proceedings of the VLDB Endowment
Massively parallel sort-merge joins in main memory multi-core database systems
Proceedings of the VLDB Endowment
Proceedings of the VLDB Endowment
Hi-index | 0.00 |
Multicore hardware demands software parallelism. Transaction processing workloads typically exhibit high concurrency, and, thus, provide ample opportunities for parallel execution. Unfortunately, because of the characteristics of the application, transaction processing systems must moderate and coordinate communication between independent agents; since it is notoriously difficult to implement high performing transaction processing systems that incur no communication whatsoever. As a result, transaction processing systems cannot always convert abundant, even embarrassing, request-level parallelism into execution parallelism due to communication bottlenecks. Transaction processing system designers must therefore find ways to achieve scalability while still allowing communication to occur. To this end, we identify three forms of communication in the system--unbounded, fixed, and cooperative--and argue that only the first type poses a fundamental threat to scalability. The other two types tend not impose obstacles to scalability, though they may reduce single-thread performance. We argue that proper analysis of communication patterns in any software system is a powerful tool for improving the system's scalability. Then, we present and evaluate under a common framework techniques that attack significant sources of unbounded communication during transaction processing and sketch a solution for those that remain. The solutions we present affect fundamental services of any transaction processing engine, such as locking, logging, physical page accesses, and buffer pool frame accesses. They either reduce such communication through caching, downgrade it to a less-threatening type, or eliminate it completely through system design. We find that the later technique, revisiting the transaction processing architecture, is the most effective. The final design cuts unbounded communication by roughly an order of magnitude compared with the baseline, while exhibiting better scalability on multicore machines.