MxKernel: A Bare-Metal Runtime System for Database Operations on Heterogeneous Many-Core Hardware
Title
MxKernel: A Bare-Metal Runtime System for Database Operations on Heterogeneous Many-Core Hardware
Authors
Abstract
Large-scale data processing forms the core of modern online services, such as social media and e-commerce, calling for an ever-increasing performance with predictable service quality. Even though emerging hardware platforms can deliver the required performance, actually harnessing it and guaranteeing a certain service quality is still a challenge for application and system software developers. We argue that the major hindrance for applications and system software alike lies in the design of today’s system software architecture. The thread abstraction, for example, hides hardware characteristics, such as the memory topology or accelerators from applications and application behavior from the system software, forcing the latter to base resource management on assumptions while preventing the former from leveraging the potential of modern hardware. We present the MxKernel as a novel system software architecture with the requirements of modern data-intensive applications in mind. Instead of threads, the MxKernel provides MxTasks as control flows, short, closed units of work that can easily be annotated with application-specific hints giving a glimpse into an application’s future behavior. These hints are used by the MxKernel to provide automatic synchronization and prefetching, as well as efficient dynamic resource partitioning to ensure performance isolation and the observance of quality of service requirements.