Viva File System or VIFS, a technique for high perfrmance file allocation on disks. VIFS uses bitmaps to represent both free blocks on the disk and allocated blocks in each file. Allocation bitmaps provide a very fast method of finding blocks close to the last allocated block in a file. Fragments (partial blocks) are used to store the overflow from the last file block. Conventional file systems, such as the Berkely Fast File Systems (FFS), can store a file containing 96 KB of data without using indirect blocks and around 16 MB of data for each indirect block. With the same block size, VIFS can store up to about 10 MB of data without using indirect blocks and up to about 500 MB of data per indirect block.
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 Vamsi Krishna and 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.X. 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 vamsi@cslab.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.
1. The original paper by the authors of VIVA, Eric H. Herrin II and
Raphael A. Finkel.
The VIVA
Filesystem
README file. Contains instructions on how to install VIVA.
TODO file. A list of planned modifications to our implementation of VIVA. (Most of the things mentioned here are already taken care of in viva 2.0).
viva.1.0.tar.gz. For Linux 1.2.8
viva.2.0.tar.gz. For Linux 2.0.x
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.