Table of Contents
Fetching ...

Improving Database Performance by Application-side Transaction Merging

Xueyuan Ren, Frank Li, Yang Wang

TL;DR

This work tackles database performance by shifting optimization to the application layer through transaction merging. It introduces TransactionMerger, a stateless middleware, and a static analysis tool to safely merge intra- and inter-transaction statements while preserving isolation. Across TPC-C and Spree, the approach yields notable throughput improvements, up to $2.65\times$ and $3.52\times$ respectively, with incremental adoption and online reconfiguration via Bayesian optimization. The results demonstrate a practical, backend-agnostic path to boost OLTP performance when database-side optimizations are limited or unavailable.

Abstract

This paper explores a new opportunity to improve the performance of transaction processing at the application side by merging structurely similar statements or transactions. Concretely, we re-write transactions to 1) merge similar statements using specific SQL semantics; 2) eliminate redundant reads; and 3) merge contending statements across transactions by pre-computing their aggregated effect. Following this idea, we present the design of TransactionMerger, a middleware to collect and merge transactions across different clients. We further present a static analysis tool to identify the merging opportunity without violating isolation as well as our experience of re-writing transactions in TPC-C and Spree, a popular real-world application. Our evaluation shows that such transaction merging can improve TPC-C throughput by up to 2.65X and Spree throughput by 3.52X.

Improving Database Performance by Application-side Transaction Merging

TL;DR

This work tackles database performance by shifting optimization to the application layer through transaction merging. It introduces TransactionMerger, a stateless middleware, and a static analysis tool to safely merge intra- and inter-transaction statements while preserving isolation. Across TPC-C and Spree, the approach yields notable throughput improvements, up to and respectively, with incremental adoption and online reconfiguration via Bayesian optimization. The results demonstrate a practical, backend-agnostic path to boost OLTP performance when database-side optimizations are limited or unavailable.

Abstract

This paper explores a new opportunity to improve the performance of transaction processing at the application side by merging structurely similar statements or transactions. Concretely, we re-write transactions to 1) merge similar statements using specific SQL semantics; 2) eliminate redundant reads; and 3) merge contending statements across transactions by pre-computing their aggregated effect. Following this idea, we present the design of TransactionMerger, a middleware to collect and merge transactions across different clients. We further present a static analysis tool to identify the merging opportunity without violating isolation as well as our experience of re-writing transactions in TPC-C and Spree, a popular real-world application. Our evaluation shows that such transaction merging can improve TPC-C throughput by up to 2.65X and Spree throughput by 3.52X.
Paper Structure (13 sections, 8 figures, 1 table)

This paper contains 13 sections, 8 figures, 1 table.

Figures (8)

  • Figure 1: Throughput of the micro-benchmark on MySQL.
  • Figure 2: Design of TransactionMerger
  • Figure 3: TPC-C New-Order Transaction.
  • Figure 4: TPC-C Payment Transaction.
  • Figure 5: Spree Add-Item Transaction.
  • ...and 3 more figures