Databases Reference
In-Depth Information
Figure 2: Data flow in autonomous disks
when put_log(D, CMD);
if count (log, D) > Threshold;
then insert_local (log(D, CMD)),
B = mapping (D, backup),
catch_up (D, B);
else insert_local (log(D, CMD)).
Figure 2 illustrates an example of data flow for an insert operation. In this example,
Host 2 submits a request to insert a stream to Disk 2 via the network. However, the
stream should be stored into Disk 1 for proper data distribution. Rule_4 is triggered
to derive the destination disk, Disk 1 , using the traverse_directory command,
and to transmit the request to Disk 1 by the else clause of Rule_4 . In Disk 1 ,
Rule_4 is triggered again, but it executes an actual insert operation instead of
transmitting the request, because traverse_directory indicates that the current
disk is appropriate. During the insertion process, Disk 1 sends log information to
the log disk (Disk 4 ) indicated by the mapping information according to the write
ahead log (WAL) protocol, and executes the internal stream command
insert_local . Finally it returns the value true to Host 2 .
Update logs accumulate gradually in Disk 4 , and each put-log operation triggers a
check operation on the log size. When the log size exceeds a threshold, catch-up
operations are asynchronously invoked by Rule_5 . In these operations, the
accumulated logs are transmitted and applied to the corresponding backup disk (Disk 3 ).
2.2.3 Handling Disk Failures or Errors
If there are disk failures or software errors that stop the disk controller, traversal of
the distributed directory will be interrupted. In that case, the following rule will be
Search WWH ::




Custom Search