Suppose an RPC request is of the form "Increment the value of field X of disk block N by 10%." Specify a mechanism to be used by the executing server to guarantee that an arriving request is executed exactly once, even if the server crashes while in the middle of the operation. Assume that individual disk block writes are either complete or else the block is unchanged. You may also assume that some designated "undo log" blocks are available. Your mechanism should include how the RPC server is to behave at restart.