112 High Performance Parallel I/O
that readers always see the most recent updates. Furthermore, it provides
proper failure semantics because it prevents updates seen on other nodes from
suddenly disappearing if the node that last updated an object fails.
GPFS uses byte-range locks rather than whole-file locks to synchronize
reads and writes to file data. These locks allow concurrent access to the same
file from multiple nodes. The underlying byte-range tokens are negotiated
dynamically based on the access pattern, as explained in greater detail by
Schmuck et al. [10]. In the absence of concurrent write sharing, a byte-range
token covering the whole file can be obtained in a single interaction with
the token server for that file, and is therefore just as ...