Applications that Use Spread

Spread has been used in a variety of open source and commercial applications in addition to research projects. Below is a list of some of these projects.

Please let us know if you would like your project to be added to this list.

Research Projects

Secure Spread
The Secure Spread research project studies the integration of security services with reliable group communication.

Wackamole
Wackamole is a high-availability virtual cluster support application that manages virtual IP addresses and guarantees that no matter what machines in the cluster are working, all of the virtual IP addresses are covered by exactly one machine. Wackamole also tries to balance the number of virtual IP addresses handled by each server. See also N-Way Fail-Over Infrastructure for Reliable Servers and Routers.

Oasis
A distributed storage system for small scale clusters implemented in-memory using a distributed shared memory. A research project at UC Riverside. Papers about it can be found here.

MEAD
Proactively Reconfigurable, Adaptive, Reliable Middleware. A software distribution and papers are available from the website. A research project at CMU led by Priya Narasimhan.

ATLAS RepDB*
RepDB* is an Open Source Software data management component for replicating autonomous databases or data sources in a cluster system. It has been developed in the context of the Leg@net RNTL project. RepDB* supports preventive advanced data replication capabilities which are independent of the underlying DBMS. It uses general, non intrusive techniques. It is implemented in Java on Linux and supports various DBMS: Oracle, PostGresQL and BerkeleyDB. It has been validated on the Atlas 8-node cluster and another 32-node cluster at INRIA-Rennes.

Applications

Secure Spread
A commercially available high performance multicast and group communication service that ensures the confidentiality and integrity of messages, and is resilient to faults across local area or wide area networks.

mod_log_spread
An Apache module that provides reliable distributed logging of a cluster of Apache webservers. A logging patch for thttpd is also available. This is currently used by sites as large as 60+ machines to provide centralized logs of the entire cluster, as well as multiple log copies for redundency and auditablity reasons.

Fedora Unity Spread Logging
This is an online article explaining how Fedora Unity deployed Spread logging for Apache to centralize their logging. They also provide a new perl-based logging client to replace mod_log_spread which doesn't work well in Apache 2

Splash
A caching module for Apache-SSL that allows a cluster of SSL enabled webservers to share the cache of active SSL connections. This improves the performance of the cluster by preventing renegotiation of keys when a client changes which webserver it is connecting to.

MySQL Message API
The MySQL Message API is a set of User-Defined Functions (UDFs) that enable MySQL database servers to send and receive messages across a network. They allow MySQL users to do this using simple SQL queries that result in a message being sent to other applications or service using Spread. The code can be downloaded at either the main site or a Google Code Download Location.

Zope Replication Services
The Zope Replication Service increases the reliability and performance for all Zope enterprise clusters by providing standby servers that maintain redundant data storage and eliminate the storage system as a single point of failure.

Spread Management Tools
Several tools that make it easier to manage a Spread network. One tool is a liveness tester for the Spread daemon that can be used with the Nagios/NetSaint NMS. A second tool is a small program to count the number of messages sent to a Spread group and plot a graph of the messages over time on a web page.

Ssrc Wisp™ Event-based distributed service framework
Ssrc Wisp™ (pronounced source wisp) allows you to rapidly build event-based distributed services in C++. Events are delivered as native C++ data structures, avoiding the complexity and performance cost of manipulating intermediate serialization formats. Services may send/receive point-to-point messages or send/receive events to/from groups of services using the same communication API.

Perl Messaging:Courier library
A Perl Messaging API that uses Spread as it's underlying messaging implementation. It describes itself as providing "asynchronous and synchronous access to a message queue.".

Perl Spread-Queue module
Spread-Queue provides a set of perl modules that provide a shared queue that multiple workers can pull messages from to share a workload.

User/Flooder
The user and flooder programs are provided with the Spread distribution. They provide demonstrations of the Spread API, working test programs, and a simple performance benchmark.

Congruity Replication
Multi-master (peer) replication, supporting a range of application semantics. Provides low latency and high throughput replication in environments that may experience server crashes and network partitions.

RESTGroups
RESTGroups is a group communication API for developing resilient RESTful Web Services. Our current implementation is based on Spread Toolkit. Contrary to exisiting group communication systems, RESTGroups represents group communication abstractions as resources on the Web, addressed by URIs, and has a small API that consists of just four methods of the HTTP protocol. This provides Web application developers with a uniform way of using group communication, aiding software integration and reuse.