Dissertation

My PhD dissertation is titled Cluster Storage for Commodity Computation, and is published as a technical report by the Cambridge Computer Laboratory.

Papers

BibTeX entries

@PhdThesis{ross:thesis,
  title     = "Cluster Storage for Commodity Computation",
  author    = "Russell Glen Ross",
  school    = "University of Cambridge Computer Laboratory",
  month     = dec,
  year      = "2006",
}
@TechReport{ross:techreport,
  title     = "Cluster Storage for Commodity Computation",
  author    = "Russell Glen Ross",
  institution = "University of Cambridge Computer Laboratory",
  number    = "UCAM-CL-TR-690",
  month     = jun,
  year      = "2007",
}
@InProceedings{parallax:hotos05,
  title     = "Parallax: Managing Storage for a Million Machines",
  author    = "Andrew Warfield and Russ Ross and Keir Fraser
               and Christian Limpach and Steven Hand",
  booktitle = "Proceedings of the 10th USENIX Workshop on
               Hot Topics in Operating Systems (HotOS X)",
  address   = "Santa Fe, NM",
  month     = "June",
  year      = "2005",
}
@InProceedings{xeno-deploy:worlds04,
  title     = "Global-scale Service Deployment in the {XenoServer}
               Platform",
  author    = "Evangelos Kotsovinos and Tim Moreton and Ian Pratt
               and Russ Ross and Kier Fraser and Steven Hand
               and Tim Harris",
  booktitle = "Proceedings of the 1st USENIX Workshop on
               Real, Large Distributed Systems (WORLDS'04)",
  address   = "San Francisco, CA",
  month     = "December",
  year      = "2004",
}

Making DFA/NFA diagrams in LaTeX

I wrote a package of macros using Metapost to make it easy to create nice looking DFA/NFA diagrams in LaTeX.

Amazon S3 file system

I wrote a file system backed by an Amazon S3 storage bucket. This is a fork of an existing project called s3fs, but I have rewritten most of it and it bears little resemblence to the original code. The main functional change was the addition of a writeback cache and a persistent attribute cache, both to enhance the otherwise dreadful performance of such a system. My main aim was to optimize the use of rsync to publish data to S3 for access with a web browser.

The source code and additional information is available on github.

Stacked file system

I wrote a stacked file system that allows you to layer multiple directory structures over each other. You can label some layers as read-only, and it will use a copy-on-write strategy to redirect changes to a higher (writable) level. It's useful for modifying a base file system image while isolating all changes in another layer (stored in a different directory) as will as taking the union of multiple directory structures. I wrote it with Xen-controlled virtual machine environments in mind, where it is handy for giving new virtual machine domains their own view of a basic Linux (or FreeBSD, etc.) installation and preventing multiple domains from stepping on each other.

The source code and a bit more information is available on github.

ILC 2003 programming contest

I entered a programming contest that ran as part of the 2003 International Lisp Conference. The contest was to solve a puzzle using Common Lisp. My entry was awarded the prizes for efficiency and elegance. More details including my entry are available here.

Undergraduate papers and projects

I studied computer science as an undergraduate, and I wrote papers to accompany a few of the projects I did. They are a few years old, but some of the work is still useful.