Check out the new USENIX Web site. next up previous
Next: truncate(2) Up: Behavior of typical operations Previous: read(2)

write(2)

The write(2) operation is intercepted in much the same manner as the read operation, and it calls the same restoration-checking routine. The two main differences are that the write operation is blocked until the file is completely restored, and that the completion of a write operation on an archived file triggers a message to the dmfsd daemon that the file archive has been invalidated.

As mentioned above, the write operation is blocked until the file is completely restored because the metadata format keeps archived state for the whole file, not subsections of it. Were a restoration to fail after a write modified part of an archived file, portions of the file would still be archived and non-resident (needing to be restored from tape), and other portions would be unarchived (and thus must not be restored from tape). This limitation was not considered significant for NAStore 3's target applications.



Bill Studenmund
2000-04-24