A system for providing a hierarchical namespace service, comprising: a first node (1002, 1502), comprising: a name resolver that is configured to: receive a file system command to be performed upon a file system object that is stored in a storage system having a flat namespace, the file system command including a hierarchical namespace identifier of the file system object, the hierarchical namespace identifier of the file system object including a directory name; determine if the directory name is stored in an entry in a local cache (1012, 1512), by: determining a timestamp associated with the file system command; identifying one or more entries in the local cache that were valid at a time specified by the timestamp; and only searching for the directory name in the identified one or more entries; in response to determining that the directory name is stored in an entry in the local cache, obtain from the entry in the local cache an identifier in the flat namespace that corresponds to the directory name; and in response to determining that the directory name is not stored in an entry in the local cache, communicate with at least a second node to determine the identifier in the flat namespace that corresponds to the directory name and create an entry in the local cache that includes the directory name and the flat namespace identifier; and a command forwarder (1004, 1502) that is configured to identify a third node based on the identifier in the flat namespace and to forward the file system command to the third node for execution thereby. a name resolver that is configured to: receive a file system command to be performed upon a file system object that is stored in a storage system having a flat namespace, the file system command including a hierarchical namespace identifier of the file system object, the hierarchical namespace identifier of the file system object including a directory name; determine if the directory name is stored in an entry in a local cache (1012, 1512), by: determining a timestamp associated with the file system command; identifying one or more entries in the local cache that were valid at a time specified by the timestamp; and only searching for the directory name in the identified one or more entries; in response to determining that the directory name is stored in an entry in the local cache, obtain from the entry in the local cache an identifier in the flat namespace that corresponds to the directory name; and in response to determining that the directory name is not stored in an entry in the local cache, communicate with at least a second node to determine the identifier in the flat namespace that corresponds to the directory name and create an entry in the local cache that includes the directory name and the flat namespace identifier; and determining a timestamp associated with the file system command; identifying one or more entries in the local cache that were valid at a time specified by the timestamp; and only searching for the directory name in the identified one or more entries; in response to determining that the directory name is stored in an entry in the local cache, obtain from the entry in the local cache an identifier in the flat namespace that corresponds to the directory name; and in response to determining that the directory name is not stored in an entry in the local cache, communicate with at least a second node to determine the identifier in the flat namespace that corresponds to the directory name and create an entry in the local cache that includes the directory name and the flat namespace identifier; and a command forwarder (1004, 1502) that is configured to identify a third node based on the identifier in the flat namespace and to forward the file system command to the third node for execution thereby.