Simultaneous multithreading (SMT) is an architec- tural technique in which the processor issues multiple instructions from multiple threads each cycle. While SMT has been shown to be effective on scientific workloads, its performance on database systems is still an open question. In particular, database systems have poor cache perfor- mance, and the addition of multithreading has the poten- tial to exacerbate cache conflicts. This paper examines database performance on SMT processors using traces of the Oracle database manage- ment system. Our research makes three contributions. First, it characterizes the memory-system behavior of database systems running on-line transaction processing and decision support system workloads. Our data show that while DBMS workloads have large memory foot- prints, there is substantial data reuse in a small, cache- able “critical” working set. Second, we show that the additional data cache conflicts caused by simultaneous- multithreaded instruction scheduling can be nearly elimi- nated by the proper choice of software-directed policies for virtual-to-physical page mapping and per-process address offsetting. Our results demonstrate that with the best policy choices, D-cache miss rates on an 8-context SMT are roughly equivalent to those on a single-threaded superscalar. Multithreading also leads to better inter- thread instruction cache sharing, reducing I-cache miss rates by up to 35%. Third, we show that SMT’s latency tol- erance is highly effective for database applications. For example, using a memory-intensive OLTP workload, an 8- context SMT processor achieves a 3-fold increase in instruction throughput over a single-threaded superscalar with similar resources.
Mendeley saves you time finding and organizing research
Choose a citation style from the tabs below