ostore.archive
Class ArchiverStage
java.lang.Object
|
+--ostore.util.StandardStage
|
+--ostore.archive.ArchiverStage
- All Implemented Interfaces:
- EventHandlerIF, SingleThreadedEventHandlerIF
- public class ArchiverStage
- extends StandardStage
- implements SingleThreadedEventHandlerIF
The ArchiverStage archives a particular version
of an object. The result is a V-GUID or version GUID.
The ArchiverStage creates a checkpoint by sending a
GenerateFragsChkptReq.
When the checkpointing process is done, all
uniquely modified
VerifiableBlocks have been
Erasure encoded into n Fragments and
a BucketsToDisseminateEvent containing
the resulting GUID's of all the uniquely modified
VerifiableBlocks has been
dispatched.
Fragments are the main mechanism that provides durability in
OceanStore. Each Fragment is self-verifying and the
cornerstone of the archival layer's fault tolerance and automatic repair.
A Fragment is produced from an Erasure coding process,
where the Erasure code treats input data as a series of
m Fragments, which it transforms into n
Fragment, where n > m. The resulting code's
essential perperty is that any m of the coded
Fragments are sufficient to reconstruct the original data.
The rate of encoding is r = m/n<1. The
storage overhead is 1/r. The system can adjust the
durability of information by selecting the rate (and hence
storage overhead).
USAGE
To create a checkpoint dispatch a
GenerateFragsChkptReq containing the
CacheableIdentity (i.e. VHASH) of the top
VerifiableBlock, the number of
Fragments to Erasure encode, the inverse
rate of encoding, and the Erasure code type.
The local GenerateChkptStage will receive the
checkpoint request message and return a
GenerateFragsChkptResp that
either includes the resulting V-GUID.
INITIALIZATION PARAMETERS
- node_id
NodeId of the local server where this stage
is running.
- Version:
- $Id: ArchiverStage.java,v 1.22 2004/05/13 20:13:06 hweather Exp $
- Author:
- Hakim Weatherspoon
- See Also:
GenerateFragsBlkReq,
GenerateFragsBlkResp,
GenerateFragsChkptReq,
GenerateFragsChkptResp,
BucketsToDisseminateEvent,
Erasure,
Disseminatable,
Fragment,
VerifiableBlock,
DataObject,
Btree.InteriorNode,
DataObject.DataBlock
| Fields inherited from class ostore.util.StandardStage |
classifier, DEBUG, event_types, inb_msg_types, logger, my_node_id, my_sink, outb_msg_types, resender, resender_tokens, serializable_types, sim_running, tag |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
STATE_STRING
public static final String[] STATE_STRING
ArchiverStage
public ArchiverStage()
handleEvent
public void handleEvent(QueueElementIF item)
throws EventHandlerException
- Specified by:
handleEvent in interface EventHandlerIF
EventHandlerException
init
public void init(ConfigDataIF config)
throws Exception
- Specified by:
init in interface EventHandlerIF- Overrides:
init in class StandardStage
Exception