Patent attributes
Techniques are described herein for expanding the range of data targeted in I/O requests made by clients, so that the expanded range results in aligned I/O operations within the file system. Data that is included in the expanded range, but was not actually requested by the client, is trimmed off the data chunk returned by the file system, so that the client receives only the data required by the client. The blocks that contain the partially-read data are cached, so that they can be provided to the clients in response to subsequent I/O requests, without having to retrieve the blocks again from the file system. The I/O requests of multiple clients are handled by a read scheduler that uses a single global queue for all such requests. When appropriate, the read scheduler creates companionship relationships between the requests, and services the “companion” requests based on the data returned for the requests with which the companion requests are associated.