The RPC-based "NFS" remote file system is sometimes considered to have slower
than expected write performance. In NFS, a server's RPC reply to a client
write request means that the data is physically written to the server's disk,
not just placed in a queue.
(a) Explain the bottleneck we might expect, even with infinite bandwidth, if
the client sends all its write requests through a single logical CHAN channel,
and explain why using a pool of channels could help. Hint: You will need to
know a little about disk controllers.
(b) Suppose the server's reply means only that the data has been placed in the
disk queue. Explain how this could lead to data loss that wouldn't occur with
a local disk. Note that a system crash immediately after data was enqueued
doesn't count because that would cause data loss on a local disk as well.
(c) An alternative would be for the server to respond immediately to
acknowledge the write request, and to send its own separate CHAN request later
to confirm the physical write. Propose different CHAN RPC semantics to achieve
the same effect, but with a single logical request/reply.