COD: Database / Operating System Co-Design
Trends in multi-core processors and hardware virtualization pose severe structural challenges to system software in general, and databases in particular. On the one hand, machines are becoming increasingly heterogeneous in terms of, i.e., cache hierarchies, processor interconnect, instruction sets, etc., thereby making it increasingly difficult to develop optimal software for all possible platforms. On the other hand, virtualization forces databases to share resources with other applications without the databases having any knowledge about the run-time conditions. As part of a long-term effort in the authors' group to revisit the entire software stack of the data center, in this paper they explore how to enhance the interaction between databases and OS to allow the database better cope with varying hardware characteristics and runtime conditions.