My actions
What's your PUBLISHER policy?
Check with SHERPA/ROMEO whether your PUBLISHER allows you to put your own papers online.
Access
Contact
Format
Export
I want to...

Search


   
Close
Limit to these document types:
Publications
 Journal Articles
 Reviews
 Conference Papers
Monographs
 Books
 Thesis
 Book chapters
 Conference Proceedings
Reports
 Technical Reports
 Working papers
Presentations & Talks
 Posters
 Presentations & Talks
Standards & Patents
 Standards
 Patents
Lectures & Teaching Material
 Teaching documents
 Student projects
Filter by publication status Filter by origin Fulltext availability
 Peer-reviewed publications
 Published  Accepted  Submitted
 Work produced at EPFL
 Publicly available  Restricted access
JOURNAL ARTICLE

Improving instruction cache performance in OLTP

Harizopoulos, Stavros ; Ailamaki, Anastassia

In: ACM Transactions on Database Systems, vol. 31, num. 3, 2006, p. 887-920

Date: 2006

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.

Reference: LABOS-ARTICLE-2007-001

Record created on 2007-10-10, modified on 2008-12-05