Table of Contents

Loris Meets Multicore

Student: Not assigned yet
Owner: David van Moolenbroek dcvmoole@cs.vu.nl / Raja Appuswamy raja@cs.vu.nl / Tomáš Hrubý thruby@few.vu.nl
Git branch name: N/A

The Loris project

The storage industry has witnessed a tremendous change in both hardware and software fronts over the past decade. Storage hardware landscape is witnessing the birth and adoption of new classes of storage like flash memory-based solid state drives that posses radically different characteristics compared to the traditional disk drives. Storage software, on the other hand, has evolved from simple single disk file systems to feature-rich, sophisticated storage systems like ZFS and Btrfs that support a suite of features like snapshotting, cloning, checksumming, background defragmentation etc.

Our research involves building a next-generation storage stack called Loris, on top of the MINIX 3 operating system. Before we started designing our stack, we analyzed all existing solutions along three different dimensions - reliability, flexibility and heterogeneity. We found that all existing solutions fail to satisfy the requirements of an ideal storage stack. Using the modular, layered network stack as a guiding example, we then designed and implemented the Loris stack which solves all problems faced by existing approaches.

Loris' modularity makes it implement a highly-reliable storage solution that can protect itself from both hardware and software failures. Loris' flexibility makes it possible to deploy a storage stack that can snapshot and clone data in a range of granularities ranging from individual files all the way to file volumes.

Project description

A recent research project used multi-core processors to improve performance and reliability of the MINIX network stack. This was done by 1) breaking up the network stack into several components, 2) running each component an an independent core, and 3) deploying techniques that avoid unnecessary data copies between components and context switches to the kernel.

Akin to the network stack, our Loris stack also has multiple layers. Loris performs plenty of computationally intensive tasks, like checksumming, that can exploit parallelism inherent in multi-core architectures. This projects involves investigating the benefits of using multi-core processors to improve Loris' performance. If you are interested, please come and talk to us!