Return to search

Merging Queries in OLTP Workloads

OLTP applications are usually executed by a high number of clients in parallel and are typically faced with high throughput demand as well as a constraint latency requirement for individual statements. In enterprise scenarios, they often face the challenge to deal with overload spikes resulting from events such as Cyber Monday or Black Friday. The traditional solution to prevent running out of resources and thus coping with such spikes is to use a significant over-provisioning of the underlying infrastructure. In this thesis, we analyze real enterprise OLTP workloads with respect to statement types, complexity, and hot-spot statements. Interestingly, our findings reveal that workloads are often read-heavy and comprise similar query patterns, which provides a potential to share work of statements belonging to different transactions. In the past, resource sharing has been extensively studied for OLAP workloads. Naturally, the question arises, why studies mainly focus on OLAP and not on OLTP workloads?

At first sight, OLTP queries often consist of simple calculations, such as index look-ups with little sharing potential. In consequence, such queries – due to their short execution time – may not have enough potential for the additional overhead. In addition, OLTP workloads do not only execute read operations but also updates. Therefore, sharing work needs to obey transactional semantics, such as the given isolation level and read-your-own-writes.

This thesis presents THE LEVIATHAN, a novel batching scheme for OLTP workloads, an approach for merging read statements within interactively submitted multi-statement transactions consisting of reads and updates. Our main idea is to merge the execution of statements by merging their plans, thus being able to merge the execution of not only complex, but also simple calculations, such as the aforementioned index look-up. We identify mergeable statements by pattern matching of prepared statement plans, which comes with low overhead. For obeying the isolation level properties and providing read-your-own-writes, we first define a formal framework for merging transactions running under a given isolation level and provide insights into a prototypical implementation of merging within a commercial database system.

Our experimental evaluation shows that, depending on the isolation level, the load in the system, and the read-share of the workload, an improvement of the transaction throughput by up to a factor of 2.5x is possible without compromising the transactional semantics. Another interesting effect we show is that with our strategy, we can increase the throughput of a real enterprise workload by 20%.:1 INTRODUCTION
1.1 Summary of Contributions
1.2 Outline

2 WORKLOAD ANALYSIS
2.1 Analyzing OLTP Benchmarks
2.1.1 YCSB
2.1.2 TATP
2.1.3 TPC Benchmark Scenarios
2.1.4 Summary
2.2 Analyzing OLTP Workloads from Open Source Projects
2.2.1 Characteristics of Workloads
2.2.2 Summary
2.3 Analyzing Enterprise OLTP Workloads
2.3.1 Overview of Reports about OLTP Workload Characteristics
2.3.2 Analysis of SAP Hybris Workload
2.3.3 Summary
2.4 Conclusion

3 RELATED WORK ON QUERY MERGING
3.1 Merging the Execution of Operators
3.2 Merging the Execution of Subplans
3.3 Merging the Results of Subplans
3.4 Merging the Execution of Full Plans
3.5 Miscellaneous Works on Merging
3.6 Discussion

4 MERGING STATEMENTS IN MULTI STATEMENT TRANSACTIONS
4.1 Overview of Our Approach
4.1.1 Examples
4.1.2 Why Naïve Merging Fails
4.2 THE LEVIATHAN Approach
4.3 Formalizing THE LEVIATHAN Approach
4.3.1 Transaction Theory
4.3.2 Merging Under MVCC
4.4 Merging Reads Under Different Isolation Levels
4.4.1 Read Uncommitted
4.4.2 Read Committed
4.4.3 Repeatable Read
4.4.4 Snapshot Isolation
4.4.5 Serializable
4.4.6 Discussion
4.5 Merging Writes Under Different Isolation Levels
4.5.1 Read Uncommitted
4.5.2 Read Committed
4.5.3 Snapshot Isolation
4.5.4 Serializable
4.5.5 Handling Dependencies
4.5.6 Discussion

5 SYSTEM MODEL
5.1 Definition of the Term “Overload”
5.2 Basic Queuing Model
5.2.1 Option (1): Replacement with a Merger Thread
5.2.2 Option (2): Adding Merger Thread
5.2.3 Using Multiple Merger Threads
5.2.4 Evaluation
5.3 Extended Queue Model
5.3.1 Option (1): Replacement with a Merger Thread
5.3.2 Option (2): Adding Merger Thread
5.3.3 Evaluation

6 IMPLEMENTATION
6.1 Background: SAP HANA
6.2 System Design
6.2.1 Read Committed
6.2.2 Snapshot Isolation
6.3 Merger Component
6.3.1 Overview
6.3.2 Dequeuing
6.3.3 Merging
6.3.4 Sending
6.3.5 Updating MTx State
6.4 Challenges in the Implementation of Merging Writes
6.4.1 SQL String Implementation
6.4.2 Update Count
6.4.3 Error Propagation
6.4.4 Abort and Rollback

7 EVALUATION
7.1 Benchmark Settings
7.2 System Settings
7.2.1 Experiment I: End-to-end Response Time Within a SAP Hybris System
7.2.2 Experiment II: Dequeuing Strategy
7.2.3 Experiment III: Merging Improvement on Different Statement, Transaction and Workload Types
7.2.4 Experiment IV: End-to-End Latency in YCSB
7.2.5 Experiment V: Breakdown of Execution in YCSB
7.2.6 Discussion of System Settings
7.3 Merging in Interactive Transactions
7.3.1 Experiment VI: Merging TATP in Read Uncommitted
7.3.2 Experiment VII: Merging TATP in Read Committed
7.3.3 Experiment VIII: Merging TATP in Snapshot Isolation
7.4 Merging Queries in Stored Procedures
Experiment IX: Merging TATP Stored Procedures in Read Committed
7.5 Merging SAP Hybris
7.5.1 Experiment X: CPU-time Breakdown on HANA Components
7.5.2 Experiment XI: Merging Media Query in SAP Hybris
7.5.3 Discussion of our Results in Comparison with Related Work

8 CONCLUSION
8.1 Summary
8.2 Future Research Directions
REFERENCES
A UML CLASS DIAGRAMS

Identiferoai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:85606
Date30 May 2023
CreatorsRehrmann, Robin
ContributorsLehner, Wolfgang, Seeger, Bernhard, Binnig, Carsten, Technische Universität Dresden
Source SetsHochschulschriftenserver (HSSS) der SLUB Dresden
LanguageEnglish
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/publishedVersion, doc-type:doctoralThesis, info:eu-repo/semantics/doctoralThesis, doc-type:Text
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0023 seconds