Class SetCreatorStage

All Implemented Interfaces:
EventHandlerIF, SingleThreadedEventHandlerIF

public class SetCreatorStage
extends StandardStage
implements SingleThreadedEventHandlerIF

The SetCreatorStage creates dissemination sets, sets of servers that fail together with low correlation.

To create dissemination sets the SetCreatorStage uses a host_database. The host_database is populated by using host_heartbeats sent by other nodes storing the heartbeats in a database. The heartbeats are propogated throughout the network epidemically. Each heartbeat contains a hosts characteristics and a summary of applications the host supports.

Once the SetCreatorStage has collected a sufficiently large pool of servers (e.g.. several hundred), it analyzes the probability for correlated failures using the result of the Model Builder and creates sets of storage servers that fail with low correlation. Resulting dissemination sets should be large enough that each disseminatable of an object may be sent to a different, unique node in the set with a few additional storage servers to replace failed storage servers. Because the model is constantly evolving and the properties of storage servers are constantly changing, dissemination sets eventually expire. If no sets of sufficient size can be found, the SetCreatorStage seeks out other storage servers to replace some members of the pool.


To receive a dissemination set, dispatch a dissemination set request (i.e. RequestDisseminationSetMsg). When the SetCreatorStage receives the message, it will respond with a RequestDisseminationSetResponseMsg containing a set of dissemination sets.


NodeId of the local server where this stage is running.
Should be the same size as the number of disseminatables used in the serializer stage.
Random seed for randomizing starting place in scan of address space.

$Id: SetCreatorStage.java,v 1.2 2004/03/30 07:28:31 hweather Exp $
Hakim Weatherspoon
See Also:
RequestDisseminationSetMsg, RequestDisseminationSetResponseMsg

Field Summary
Fields inherited from class ostore.util.StandardStage
classifier, DEBUG, event_types, inb_msg_types, my_node_id, my_sink, outb_msg_types, tag
Constructor Summary
          Constructor: Creates a new SetCreatorStage.
Method Summary
 void handleEvent(QueueElementIF item)
          Specified by seda.sandStorm.api.EventHandlerIF
 void init(ConfigDataIF config)
          Specified by seda.sandStorm.api.EventHandlerIF
Methods inherited from class ostore.util.StandardStage
BUG, destroy, dispatch, enqueue, handleEvents, now_ms, now_us
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public SetCreatorStage()
                throws Exception
Constructor: Creates a new SetCreatorStage.

Method Detail


public void handleEvent(QueueElementIF item)
                 throws EventHandlerException
Specified by seda.sandStorm.api.EventHandlerIF

Specified by:
handleEvent in interface EventHandlerIF


public void init(ConfigDataIF config)
          throws Exception
Specified by seda.sandStorm.api.EventHandlerIF

Specified by:
init in interface EventHandlerIF
init in class StandardStage