FlexAlloc a Lightweight Building Block for User Space Data Management

Library Content Type:
Publish Date: 
Wednesday, September 29, 2021
Event Name: 
Event Track:

In this talk we present FlexAlloc: a lean block allocator focused on bridging the gap between raw block device access in user space and data management through monolithic file systems.

By removing meta data and features of general-purpose file system layers between applications and storage devices, we have developed a thin block allocation layer meant to exist within a heterogeneous storage stack. Traditional file systems include features (like management overhead of growing/shrinking files) that are often unused, sub-optimal and in some cases lead to performance degradations. By eliminating those that are not needed and replacing the sub-optimal ones with stripped down versions that cater to the specific characteristics of applications such as RocksDB (sequential writes and immutable files or SSTables), we arrive at a thin layer that can be integrated into applications with minimal changes and at the same time can support emerging device characteristics such as zoned namespace SSDs.

FlexAlloc provides a lean block allocation layer that avoids paying the price of additional abstractions which makes it an attractive building-block within a heterogeneous storage stack. We demonstrate its viability by running a rocksDB benchmark on top of a zoned namespace SSD through FlexAlloc and subsequently copying out the resulting database files through a traditional file system interface. We hit the sweet spot where RocksDB maintains its read/write path through raw block device access while still being able to provide a read only user space mountable file system that can be used by existing infrastructure.

  • Show how NotFS can be used to access raw block device while providing a read only file system
  • Explore how NotFS affects the file system specific write amplification
  • Show how rocksDB gains from raw block device access provided by NotFS

Watch video: