Databases Reference
In-Depth Information
and D.type == fragmented;
then send (HostID, compose (retrieve_list (Own, D.stream))).
The retrieve_list internal stream command searches for sub-streams according
to the list D.stream . These sub-streams are finally combined as a stream and
returned to the host.
These three rules, Rule_1, Rule_2, and Rule_3 , are triggered at the
same time, and check their conditions. Hereafter, for simplicity, we concentrate on
the case where the stream is not fragmented. However, the treatment of the
fragmented stream is easily installed by appending rules such as Rule_3 .
2.2.2 Asynchronous Update of Backups
Rules for the insert and delete commands are defined similarly to those for
the retrieve command. However, if the target stream of these update commands
is replicated, to tolerate faults, the replicas must be updated as well. Backups of
the stream must be placed on different disks to the primary, but each disk will
contain both primaries and backups of different streams. Because the
synchronization cost makes simultaneous update of these replicas expensive,
asynchronous update of backups using sequential log files is more cost-effective.
To implement this, the following rule is defined:
Rule_4:
when insert (HostID, StreamID, Stream);
if (D = traverse_directory (StreamID)).disk == Own;
then L = mapping(Own, log),
lock(StreamID),
send(L.disk, put_log(D, insert(HostID, StreamID, Stream))),
insert_local(D.location, StreamID, Stream),
unlock(StreamID),
send(HostID, true);
else send(D.disk, insert(HostID, StreamID, Stream)).
Rule_4 first checks the location of the stream as does the rule of the retrieve
command. If the stream is not stored in the current disk it transmits the command
to an appropriate disk, derived from the directory traversal. If the disk is the
correct one to store the stream, it derives the identifier of another disk for storing
its log by using the mapping command, sends the log information to the log disk,
inserts the stream into the appropriate location with the insert_local command,
and returns the value true as the success flag. Backups are not updated at this
point. If the volume of log information exceeds a threshold, the log information is
transferred to backup disks and the contents of the backups are brought up to
date. The procedure is implemented by the following rule. The disk identifier of
the backup is also derived by the mapping command.
Rule_5:
Search WWH ::




Custom Search