Qualifying Filesystems for Seastar and ScyllaDB
Blog post from ScyllaDB
Asynchronous processing is a common practice in networking, but in storage, traditional synchronous I/O methods struggle to keep up with the high IOPS capabilities of modern SSDs. ScyllaDB, a database that combines networking and storage, utilizes the Seastar framework to enable both asynchronous networking and storage operations via a unified API, leveraging libaio for asynchronous I/O commands. However, Linux's limited AIO support requires direct memory access and a suitable filesystem like XFS, which has recently improved its support for asynchronous appending writes—a feature critical for ScyllaDB's immutable SSTables. To ensure compatibility, the fsqual tool was developed to test filesystems for asynchronous appending write support, revealing that while some systems still fall short, others have integrated necessary fixes. This qualification process is essential for ScyllaDB's performance, and future integration with ScyllaDB's distribution will automate this check, thanks to contributions from the XFS team in enhancing Linux's asynchronous I/O capabilities.