Project Details
Managing Very Large Data Sets on Directly-Attached NVMe Arrays
Applicant
Professor Dr. Viktor Leis
Subject Area
Security and Dependability, Operating-, Communication- and Distributed Systems
Term
since 2020
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 447457559
Between 2012 and 2020, the capacities of flash-based Solid-State-Drives (SSDs) have increased by a factor of 10, while main memory capacities have stagnated. Modern SSDs can be directly attached through PCIe/NVMe, which enables high bandwidths. Indeed, combining multiple Solid-State Drives into a Directly-Attached NVMe Array (DANA) offers throughput that, so far, was only achievable with main memory.Neither main-memory database systems, which have been the focus of intense recent research, nor traditional disk-based database systems can fully exploit DANA. The former simply assume that all data structures fit into main memory and cannot easily exploit flash. The latter are too inefficient to achieve the massive I/O bandwidth of DANA. Therefore, the goal of this project is to develop a storage engine that can fully exploit the bandwidth of DANA and the special characteristics of flash memory.To achieve this, it is necessary to rethink all layers that are relevant for I/O operations. First, the database system must be capable of scheduling and processing millions of page requests per second on modern multi-core processors. Second, conventional I/O interfaces at the level of the operating system are too inefficient and modern alternatives like io_uring or SPDK have to be used. Finally, we will also investigate the hardware level because flash has fundamentally different properties than magnetic disks. For example, it is not possible to directly overwrite a page on flash and the durability of flash cells is limited. Conventional SSDs therefore contain a Flash Translation Layer (FTL), which implements complex logic and hides these properties. However, this prevents many optimizations, which is why Open Channel SSDs allow direct access to the flash hardware. With Open Channel SSDs, this logic will be moved into the database system, allowing, for example, control over physical data placement.To achieve optimal performance with flash, the three layers mentioned should not be considered in isolation, but should be developed holistically and co-designed. We demonstrate this through integration into our storage engine LeanStore.
DFG Programme
Priority Programmes
Subproject of
SPP 2037:
Scalable Data Management on Future Hardware