This project aims at improving filesystem performance on modern multi-core systems, by rethinking filesystem design to enable concurrent operations to scale with the number of cores, while maintaining durability and crash-safety.
Filesystems help store data durably and in a consistent manner even in the eventof system crashes. This crash-safety is achieved by employing well-known techniques like transactions and logging, which enable the filesystem to recover
from system failures. While modern crash-safe filesystems provide excellent disk throughput, their performance does not scale well with multiple cores due to bottlenecks introduced by the synchronization needs of the logging system. Our goal is to develop a filesystem design that scales well to many cores while preserving durability and crash-safety. Our key idea is to split the filesystem into two layers: an in-memory filesystem and an on-disk filesystem, and independently optimize them for multi-core scalability and disk throughput, respectively. The layers are connected by per-core operation logs that help implement the logging system to provide crash-safety.