USENIX Conference Policies
Charm: An I/O-Driven Execution Strategy for High-Performance Transaction Processing
The performance of a transaction processing system whose database is not completely memory-resident critically depends on the amount of physical disk I/O required. This paper describes a high-performance transaction processing system called Charm, which aims to reduce the concurrency control overhead by minimizing the performance impacts of disk I/O on lock contention delay. In existing transaction processing systems, a transaction blocked by lock contention is forced to wait while the transaction currently holding the contended lock performs physical disk I/O. A substantial portion of a transaction's lock contention delay is thus attributed to disk I/Os performed by other transactions. Charm implements a two-stage transaction execution (TSTE) strategy, which makes sure that all the data pages that a transaction needs are memory-resident before it is allowed to lock database pages. Moreover, Charm supports an optimistic version of the TSTE strategy (OTSTE), which further eliminates unnecessary performance overhead associated with TSTE. Another TSTE variant (HTSTE) attempts to achieve the best of both TSTE and OTSTE by executing only selective transactions using TSTE and others using OTSTE. Charm has been implemented on the Berkeley DB package and requires only a trivial modification to existing applications. Performance measurements from a fully operational Charm prototype based on the TPC-C workload demonstrate that Charm out-performs conventional transaction processing systems by up to 164% in transaction throughput, when the application's performance is limited by lock contention.
author = {Lan Huang and Tzi-cker Chiueh},
title = {Charm: An {I/O-Driven} Execution Strategy for {High-Performance} Transaction Processing},
booktitle = {2001 USENIX Annual Technical Conference (USENIX ATC 01)},
year = {2001},
address = {Boston, MA},
url = {https://www.usenix.org/conference/2001-usenix-annual-technical-conference/charm-io-driven-execution-strategy-high},
publisher = {USENIX Association},
month = jun
}