1. A distributed storage system comprising: memory hosts, each memory host comprising: remote direct memory accessible non-transitory memory; and a network interface controller in communication with the memory and servicing remote direct memory access requests; a curator in communication with the memory hosts, the curator: managing striping of a file amongst the memory hosts; and generating a file descriptor for the file that maps the striping of the file to corresponding storage locations on memory hosts; and a cache manager in communication with and separate from both the curator and the memory hosts, the cache manager obtaining a copy of the file descriptor from the curator and transmitting the copy of the file descriptor to the remote direct memory accessible non-transitory memory of the memory hosts, the remote direct memory accessible non-transitory memory of the memory hosts storing the copy of the file descriptor for remote direct memory access of the file descriptor by a client in communication with the memory hosts, wherein in response to a memory access request for the file by the client and when the copy of the file descriptor is unretrievable from the memory hosts by the client, the curator provides the client with the file descriptor associated with the file and informs the cache manager of the unretrievable file descriptor, and wherein in response to being informed of the unretrievable file descriptor, the cache manager obtains a new copy of the file descriptor from the curator and transmits the new copy of the file descriptor to the remote direct memory accessible non-transitory memory of the memory hosts, the remote direct memory accessible non-transitory memory of the memory hosts storing the new copy of the file descriptor for remote direct memory access of the file descriptor by the client, the client obtaining the file from the remote direct memory accessible non-transitory memory by using the file descriptor.