Simultaneous multithreading (SMT) is an architectural
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 potential
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 footprints, there is substantial data reuse in a small, cacheable "critical" working set. Second, we show that the additional data cache conflicts caused by simultaneous- multithreaded instruction scheduling can be nearly eliminated 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 tolerance 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.
To get the PostScript file, click here. To get the PDF file, click here.