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.