Server Design for Emerging Computer Architectures
Tuesday November 7, 2006
Hamerschlag Hall D-210
Carnegie Mellon University
The design of conventional database management systems (DBMS) is based on the
characteristics of now antiquated hardware designs. With the advent of chip
multiprocessors and with the ever-increasing processor-memory speed gap, redesigning
high-performance data management software is an imminent technical and research challenge
for the database community.
Staged computing is a new server programming paradigm, which exhibits a number of
attractive properties. By clustering similar threads and through explicit scheduling
of their execution instruction and data locality is increased. Additionally, different
types of threads can be pinned into different cores, and by pipelining data between various
cores the system's performance becomes more scalable and predictable. Also, by grouping all the
requests that want to do similar work, e.g. read the same file or execute the same procedure,
the system can quickly and naturally identify work sharing opportunities, execute common work
once, and distribute the results to all interested parties.
In this presentation we focus on database servers. Initially, we present QPipe, the first
relational database execution engine that follows the principles of staged computing. Through
staging QPipe manages to exploit work sharing opportunities that conventional database servers
fail to detect. As a result, in decision support workloads (DSS) with multiple concurrent requests
QPipe significantly outperforms commercial database servers. In the second part, we
characterize the performance of a commercial database server on top of the emerging chip
multiprocessors. Using both simulation and experiments on real hardware we find that the major
bottleneck of current database server software is data cache stalls. We briefly describe techniques
to address the problem, and we outline a preliminary design and implementation of an adaptable
multi-core optimized staged database engine, called Cordoba.
Ippokratis Pandis is a second year graduate student at the ECE department of Carnegie
Mellon University, advised by Prof. Anastassia Ailamaki. His research focuses on Staged
Database Systems. Ippokratis received his B.Sc. from the Computer Engineering and Informatics
Department of the University of Patras, Greece in 2002, and his M.Sc. jointly from the
Information Networking Institute of CMU and Athens Information Technology, Greece, in 2004.