Database Engines on Multicores, Why Parallelize When You Can Distribute?
Multicore computers pose a substantial challenge to infrastructure software such as operating systems or databases. Such software typically evolves slower than the underlying hardware, and with multicore it faces structural limitations that can be solved only with radical architectural changes. In this paper, the authors argue that, as has been suggested for operating systems, databases could treat multicore architectures as a distributed system rather than trying to hide the parallel nature of the hardware. They first analyze the limitations of database engines when running on multicores using MySQL and PostgreSQL as examples. They then show how to deploy several replicated engines within a single multicore machine to achieve better scalability and stability than a single database engine operating on all cores.