Patent ID: 7685096
Filing Date: 2010-03-23
Classification: G06F,G06Q,Y10S

Abstract:
1. A method for storing and retrieving files, the method comprising: storing a plurality of objects, identified by fixed-length object-identifiers, in a data repository; assigning, by clients of the data repository, a fixed-value identifier to each file system of a plurality of client file systems; sending, from one of the clients of the data repository, a plurality of files belonging to at least one of the plurality of file systems to be stored in the data repository, with each of the plurality of files identified by a fixed-length object-identifier computed from a file system pathname that comprises a plurality of ordered pathname components; for each of the plurality of files to be stored: computing sequentially, by the one of the clients, a component identifier for each component of the file system pathname of the file to be stored, using a hash function, wherein the component identifier of the first component of the file system pathname is computed by hashing the first component and the fixed-value identifier assigned to the file system that the file to be stored belongs to, and for each component of the file system pathname after the first component, the component identifier of that component is computed by hashing that component and the computed component identifier of the component before that component; and storing the file as an object in the data repository, using the computed component identifier of the last component of the file system pathname as a fixed-length object-identifier for the object stored in the data repository; sending, from a client of the data repository, an access request to the data repository, wherein the access request includes a computed component identifier of the last component of a file system pathname as a fixed-length object-identifier; locating, by a data server of the data repository, stored data corresponding to the fixed-length object-identifier included in the sent access request; and retrieving a file corresponding to the located stored data from the data repository and communicating the retrieved filed to the client; wherein, for each of the sent plurality of files to be stored, the first component of the file system pathname comprises the name of a top-level directory that is one of a plurality of top-level directories of the file system that the file to be stored belongs to, and the last component of the file system pathname comprises the name of the file.