ACM Home Page
Please provide us with feedback. Feedback
Improving instruction cache performance in OLTP
Full text PdfPdf (783 KB)
Source ACM Transactions on Database Systems (TODS) archive
Volume 31 ,  Issue 3  (September 2006) table of contents
Pages: 887 - 920  
Year of Publication: 2006
ISSN:0362-5915
Authors
Stavros Harizopoulos  MIT CSAIL, Cambridge, MA
Anastassia Ailamaki  Carnegie Mellon University, Pittsburgh, PA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 109,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1166074.1166079
What is a DOI?

ABSTRACT

Instruction-cache misses account for up to 40% of execution time in online transaction processing (OLTP) database workloads. In contrast to data cache misses, instruction misses cannot be overlapped with out-of-order execution. Chip design limitations do not allow increases in the size or associativity of instruction caches that would help reduce misses. On the contrary, the effective instruction cache size is expected to further decrease with the adoption of multicore and multithreading chip designs (multiple on-chip processor cores and multiple simultaneous threads per core). Different concurrent database threads, however, execute similar instruction sequences over their lifetime, too long to be captured and exploited in hardware. The challenge, from a software designer's point of view, is to identify and exploit common code paths across threads executing arbitrary operations, thereby eliminating extraneous instruction misses.In this article, we describe Synchronized Threads through Explicit Processor Scheduling (STEPS), a methodology and tool to increase instruction locality in database servers executing transaction processing workloads. STEPS works at two levels to increase reusability of instructions brought in the cache. At a higher level, synchronization barriers form teams of threads that execute the same system component. Within a team, STEPS schedules special fast context-switches at very fine granularity to reuse sets of instructions across team members. To find points in the code where context-switches should occur, we develop autoSTEPS, a code profiling tool that runs directly on the DBMS binary. STEPS can minimize both capacity and conflict instruction cache misses for arbitrarily long code paths.We demonstrate the effectiveness of our approach on Shore, a research prototype database system shown to be governed by similar bottlenecks as commercial systems. Using microbenchmarks on real and simulated processors, we observe that STEPS eliminates up to 96% of instruction-cache misses for each additional team thread and at the same time eliminates up to 64% of mispredicted branches by providing a repetitive execution pattern to the processor. When performing a full-system evaluation on real hardware using TPC-C, the industry-standard transactional benchmark, STEPS eliminates two-thirds of instruction-cache misses and provides up to 1.4 overall speedup.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Ailamaki, A., DeWitt, D. J., and Hill, M. D. 2001b. Walking four machines by the shore. In Proceedings of the Fourth Workshop on Computer Architecture Evaluation Using Commercial Workloads (CAECW).
 
3
4
5
 
6
Browne, S., Deane, C., Ho, G., and Mucci, P. 1999. PAPI: A portable interface to hardware performance counters. In Proceedings of Department of Defense HPCMP Users Group Conference.
7
 
8
 
9
 
10
11
 
12
Harizopoulos, S. and Ailamaki, A. 2004. STEPS towards cache-resident transaction processing. In VLDB '04: Proceedings of the 30th International Conference on Very Large Data Bases. Morgan Kaufmann, San Francisco, CA, 660--671.
 
13
 
14
Jayasimha, J. and Kumar, A. 1999. Thread-based cache analysis of a modified TPC-C workload. In Proceedings of the Second Workshop on Computer Architecture Evaluation Using Commercial Workloads.
15
16
 
17
18
 
19
20
21
 
22
Romer, T., Voelker, G., Lee, D., Wolman, A., Wong, W., Levy, H., Bershad, B., and Chen, B. 1997. Instrumentation and optimization of win32/intel executables using etch. In Proceedings of the USENIX Windows NT Workshop.
23
 
24
25
 
26
 
27
28
 
29
Stets, R., Gharachorloo, K., and Barroso, L. A. 2002. A detailed comparison of two transaction processing workloads. In WWC-5: IEEE 5th Annual Workshop on Workload Characterization.
30


Collaborative Colleagues:
Stavros Harizopoulos: colleagues
Anastassia Ailamaki: colleagues