SHARED NAMESPACE FOR STORAGE CLUSTERS
First Claim
1. A method of adding a computer file to a storage cluster, said method comprising:
- receiving a first pathname identifying a computer file that uses a first pathname scheme of a client software application;
parsing said first pathname by said client application into its constituent name portions, each name portion including a generality direction and a separator;
calling a function of a namespace application and passing said name portions, each passed name portion including said generality direction and said separator for each name portion;
constructing a representation in said namespace application of said first pathname identifying said computer file using said name portions and said generality directions and separators;
passing said computer file to said storage cluster and receiving a unique identifier that uniquely identifies said computer file stored within said storage cluster; and
storing said unique identifier in conjunction with an end of said representation of said first pathname in said namespace application, whereby said computer file is uniquely represented in said namespace application by said representation.
4 Assignments
0 Petitions
Accused Products
Abstract
Any client application uses a namespace application to resolve its pathname in order to reference a computer file. Computer files are stored in a fixed-content storage cluster and are accessed by retrieving a unique identifier for the computer file using the namespace application. Any type of pathname scheme from any client application is supported by the namespace. The namespace application uses a bindings table to record bindings between objects including the start date and end date for each binding, and direction and separator data used in the pathname scheme. An attribute table in the namespace keeps track of each attribute and its value for each object of the namespace including a start date and an end date for each attribute. The namespace provides syntactic generality in that any pathname scheme of a client application can be resolved to identify a unique computer file in the storage cluster. The namespace may be shared between applications because when one application modifies a file or its attributes using the namespace, another application using a different pathname scheme has access to the exact same data and modifications. The namespace provides a near instantaneous continuous backup for computer files in the storage cluster because of the use of start date and end dates for the bindings and attributes.
-
Citations
19 Claims
-
1. A method of adding a computer file to a storage cluster, said method comprising:
-
receiving a first pathname identifying a computer file that uses a first pathname scheme of a client software application; parsing said first pathname by said client application into its constituent name portions, each name portion including a generality direction and a separator; calling a function of a namespace application and passing said name portions, each passed name portion including said generality direction and said separator for each name portion; constructing a representation in said namespace application of said first pathname identifying said computer file using said name portions and said generality directions and separators; passing said computer file to said storage cluster and receiving a unique identifier that uniquely identifies said computer file stored within said storage cluster; and storing said unique identifier in conjunction with an end of said representation of said first pathname in said namespace application, whereby said computer file is uniquely represented in said namespace application by said representation. - View Dependent Claims (2, 3)
-
-
4. A method of retrieving a computer file from a storage cluster, said method comprising:
-
receiving, from a client software application, a fully resolved pathname identifying a computer file, said pathname being received by a namespace application; parsing said pathname into its constituent name portions, each name portion including a separator; referencing, in a bindings database of said namespace application, a generality direction for each of said name portions; traversing a path in said namespace application using said name portions and said generality directions to reach a software object that uniquely represents said computer file within said namespace application; returning a unique identifier associated with said software object that uniquely identifies said computer file within said storage cluster; and passing said unique identifier to said storage cluster and receiving in return said computer file. - View Dependent Claims (5)
-
-
6. A method of adding a computer file to a storage cluster, said method comprising:
-
receiving a first pathname identifying a computer file that uses a first pathname scheme of a first client software application; calling a function of a namespace application and passing said first pathname, said first pathname including first pathname portions; constructing a first representation in said namespace application of said first pathname identifying said computer file using said first pathname portions; storing said computer file in said storage cluster and receiving a unique identifier from said storage cluster that uniquely identifies said computer file stored within said storage cluster; receiving a second pathname identifying said computer file that uses a second pathname scheme of a second client software application; calling said function of said namespace application and passing said second pathname, said second pathname including second pathname portions; constructing a second representation in said namespace application of said second pathname identifying said computer file using said second pathname portions; storing said unique identifier in conjunction with a termination of said representation of said first pathname and of said second pathname in said namespace application, whereby said computer file is uniquely represented in said namespace application by both of said representations. - View Dependent Claims (7, 8, 9)
-
-
10. A method of reading an attribute of a computer file using a namespace application, said method comprising:
-
storing a computer file in a storage cluster; defining a first representation in said namespace application that identifies said computer file using a first pathname of a first client software application; setting a value of an attribute of said computer file using said first pathname; traversing a second representation using said namespace application that also identifies said computer file, wherein said second representation uses a second pathname of a second client software application, said second pathname being different from said first pathname; reading said value of said attribute via said second pathname; and returning said value of said attribute to said second client software application. - View Dependent Claims (11)
-
-
12. A method of reading an attribute of a computer file stored in a storage cluster using a namespace application, said method comprising:
-
receiving a unique identifier from said storage cluster that uniquely identifies said computer file stored within said storage cluster; defining a first representation in said namespace application that identifies said computer file using a first pathname of a first client software application, said first representation including a unique identifier attribute of said computer file; modifying said computer file in said storage cluster and receiving a new unique identifier; setting said new unique identifier as an attribute of said computer file using said first representation; traversing a second representation of said namespace application that also identifies said computer file, wherein said second representation uses a second pathname of a second client software application, said second pathname being different from said first pathname; and returning said value of said new unique identifier via said second pathname to said second client software application.
-
-
13. A method of deleting a file, said method comprising:
-
storing a computer file in a storage cluster; defining a representation in a namespace application that identifies a software object that uniquely represents said computer file within said namespace application, said representation using a pathname of a client software application; receiving a request from said client software application to delete said computer file at a time T; identifying a set of bindings in said namespace application that implements said temptation; and assigning a last binding of said set of bindings that points to said software object an end date of time T, whereby said client software application is precluded from accessing said computer file using said pathname at any time after time T. - View Dependent Claims (14)
-
-
15. A method of retrieving a file from backup, said method comprising:
-
receiving a request from a client software application to retrieve a computer file from a storage cluster as it existed at a time T, said time T being in the past; accessing a namespace application using a pathname of said client software application that identifies said computer file, each portion of said pathname being represented by a binding in said namespace application; traversing said namespace and comparing said time T to a start date and an end date for each of said bindings; identifying a software object of said namespace that uniquely identifies said computer file; retrieving a unique identifier attribute of said software object for which said time T falls between a start date and an end date of said unique identifier attribute; and retrieving said computer file from said storage cluster using said unique identifier attribute.
-
-
16. A method of changing an attribute of a computer file, said method comprising:
-
receiving a request from a client software application to change an attribute of a computer file at a time T to a new value; accessing a namespace application using a pathname of said client software application that identifies said computer file; traversing said namespace using said pathname and identifying a software object of said namespace that uniquely identifies said computer file; copying original data associated with said attribute to create new data associated with said attribute; setting an end date of said original data to be equal to time T; setting a start date of said new data to be equal to time T; and setting a value of said new data for said attribute to be equal to said new value, whereby said attribute of said computer file has a value of said new value as time T. - View Dependent Claims (17, 18)
-
-
19. A method of retrieving an old attribute of a computer file, said method comprising:
-
receiving a request from a client software application to retrieve an attribute of a computer file from a storage cluster as it existed at a time T, said time T being in the past; accessing a namespace application using a pathname of said client software application that identifies said computer file; traversing said namespace using said pathname and identifying a software object of said namespace that uniquely identifies said computer file; retrieving an attribute value of said software object for said old attribute for which said time T falls between a start date and an end date of said old attribute; and returning said attribute value to said client software application.
-
Specification