tapestry.dissemination
Class SetCreatorStage

java.lang.Object
  |
  +--ostore.util.StandardStage
        |
        +--tapestry.dissemination.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.

USAGE

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.

INITIALIZATION PARAMETERS

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

Version:
$Id: SetCreatorStage.java,v 1.2 2004/03/30 07:28:31 hweather Exp $
Author:
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
SetCreatorStage()
          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

SetCreatorStage

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

Method Detail

handleEvent

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

Specified by:
handleEvent in interface EventHandlerIF
EventHandlerException

init

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

Specified by:
init in interface EventHandlerIF
Overrides:
init in class StandardStage
Exception