Patent ID: 8145614

Claim:
A method for use in a computer system comprising at least one client device, at least one storage system that provides at least one volume of storage to store information and at least one file system server that provides a file system interface for at least some of the information stored on the at least one volume of storage, the computer system comprising at least first and second data paths extending between the at least one client device and the at least one storage system, the first data path passing through the at least one file system server so that the at least one client device exchanges information with the at least one storage system via the first path using the file system interface, the second data path not passing through the at least one file system server so that the client device exchanges information with the at least one storage system via the second path using a storage system interface presented by the at least one storage system, the method comprising acts of: (A) for an input/output (I/O) operation, generated by the at least one client device, that seeks to exchange a first set of information between the at least one client device and the at least one storage system; (A1) determining whether the I/O operation is a write operation; (A2) if the I/O operation is a write operation, selecting the second data path and not selecting the first data path for exchanging the first set of information between the at least one client device and the at least one storage system, said second data path not passing through the at least one file system server for exchanging the first set of information between the at least one client device and the at least one storage system using the storage system interface presented by the at least one storage system; and (A3) if the I/O operation is not a write operation, performing processing to, select between the first data path and the second data path for exchanging the first set of information between the at least one client device and the at least one storage system, the processing including: (a) determining a likelihood that the first set of information is cached in the at least one file system server; and (b) selecting between the first data path passing through the at least one file system server and the second data path not passing through the at least one file system server for exchanging the first set of information between the at least one client device and the at least one storage system based at least in part on the likelihood that the first set of information is cached in the at least one file system server, wherein the file system interface is used for exchanging the first set of information via the first data path and the storage system interface is used for exchanging the first set of information via the second data path.