Writing file data
write processing is initiated by a system call to the operating system, which calls GPFS when the write involves data in a GPFS file system.
GPFS moves data from a user buffer into a file system buffer synchronously with the application write call, but defers the actual write to disk. This asynchronous I/O technique allows better scheduling of the disk I/O operations and improved performance. The file system buffers come from the memory allocated based on the pagepool parameter in the mmchconfig command. Increasing the size of the pagepool might allow more writes to be deferred, which can improve performance in certain workloads.
- The application has specified a synchronous write.
- The system needs the memory used to buffer the written data.
- The file token is revoked.
- The last byte of a block of a file is being written sequentially.
- A system sync command is run.
- Buffer available in memory.
- Tokens available locally but data must be read.
- Data and tokens must be acquired.
Metadata changes are flushed under a subset of the same conditions. They can be written either directly, if this node is the metanode, or through the metanode, which merges changes from multiple nodes. This last case occurs most frequently if processes on multiple nodes are creating new data blocks in the same region of the file.