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
dispatch
ed.
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