The VIVA filesystem for Linux


Abstract

The VIVA filesystem was designed to minimize the time taken for file operations. VIVA achieves this goal by using an allocation policy that clusters sequentially accessed disk blocks so that disk-head movement is minimiz ed. VIVA also uses this clustering to compress block addresses in an inode from 32 bits to 1 bit, relative to traditional filesystems.This compression allows us to access about 800KB of data without using indirect blocks. Benchmark results of our implementation of VIVA in the Linux kernel show that it is much faster than Ext2, the default Linux filesystem, for common file operations.

VIVA was developed by Eric H. Herrin II and Raphael A. Finkel. It was implemented in Linux by Shankar Pasupathy.

There are currently two versions of VIVA available. Version 1.0 is for Linux 1.2.8, version 2.0 is for Linux 2.0.0. If you want to install VIVA on any other version of Linux, download both versions of VIVA and read the README file.

If you have any questions, send email to shankar@pop.uky.edu or raphael@cs.uky.edu


Note: Both VIVA distributions contain the papers and README, and TODO files. These are listed separately on this page for your convenience.

Papers

1. The original paper by the authors of VIVA, Eric H. Herrin II and Raphael A. Finkel.
The VIVA Filesystem

2. Paper on implementing VIVA in the Linux kernel by Shankar Pasupathy.
Implementing the VIVA filesystem in the Linux kernel

VIVA sources

README file. Contains instructions on how to install VIVA.

TODO file. A list of planned modifications to our implementation of VIVA.

viva.1.0.tar.gz. For Linux 1.2.8

viva.2.0.tar.gz. For Linux 2.0.0 - untested, but should work.

util-linux-viva.tar.gz. Source for utility programs (mkfs.viva, fsck.viva, mount, umount). These are based on the util-linux package. This source is also a part of both Viva distributions.