Dominoes: Configurable Replication-based Parallelism of Fine-grained System Services

Overview

Dominoes is a research project at the University of New Mexico focused on configurable, fine-grained system services for multi-core computers. In this system, services are assembled from components that receive requests generated by external actors (e.g. network devices, system calls from processes, virtual machine monitor exits from guest OSes) on high-performance channels. Execution of events on a single processor is atomic, and parallelism is handled by replicating component request processing across processor contexts. In particular, the first component that dequeues a request is responsible for fully processing it, while other replicas only process it sufficient to keep their replicas of component state consistent with other replicas. This approach avoids the locking and caching costs that have frequently limited the scalability of system services for multiprocessor systems and also preserves the simple execution model of event-based component systems.

Example Systems

We are currently focusing on using Dominoes to implement scalable system services in a variety of different systems, including:

Implementation Status

Dominoes

An initial framework for coarse-grained replications without fine-grained configurability has been written, with its internal design information and source code in git available to authorized users.

Cactus

A simplified and optimized version of the Cactus composition framework is in the process of being implemented for handling fine-grained composition along with replication. Because the dominoes framework handles asynchronous and timed requests, this version of Cactus focuses primarily on synchronous event dispatch, with wrappers around some dominoes functionality used to support asynchronous and timed events.

Applications

Networking

We are currently in the process of embedding the Scout TCP/IP stack into the Dominoes framework for speeding up TCP/IP stacks using dominoes-style replication. Integration of CTP is awaiting finalization of the revised Cactus interface and its integration with dominoes.

HPC OSes and VMMs

We are in the process of porting the Dominoes prototype into the Kitten kernel, enabling its use for both system call handling and VM exit handling in the Palacios VMM.

 
/var/www/ssl/data/pages/dominoes.txt · Last modified: 2009/11/18 17:09 by bridges     Back to top