Efficient storage of objects in a file system
First Claim
1. In a file system in a data processing system having secondary storage divided into sectors, a method of storing contents of files in the secondary storage, comprising the steps of:
- providing a sequence of fixed-sized file system data structures of a data type that is specifically designed for storing contents of the files on the secondary storage wherein said fixed-sized file system data structures are distinct from the sectors of the secondary storage;
storing a first set of contents of files that are logically related of a first size in a first variable-sized file system data structure of a given structure type on the secondary storage; and
storing the first variable-sized file system data structure of the given structure type in which the first set of contents of files that are logically related are stored in at least one of the fixed-sized file system data structures on the secondary storage.
2 Assignments
0 Petitions
Accused Products
Abstract
A file system provides a hierarchical approach to storage of file data. Logically contiguous bytes of file data are stored in stream data structures, and streams which hold related file data are stored in a variable sized onode data structures on disk. The variable-sized onode data structures are stored in fixed sized buckets, and the buckets are organized into a variable sized array. Thus, the file system provides a combination of variable-sized storage with fixed-sized storage to provide a very efficient approach to storing file data. In addition, indexes may be provided within the structures to allow quick access to onodes and streams.
-
Citations
30 Claims
-
1. In a file system in a data processing system having secondary storage divided into sectors, a method of storing contents of files in the secondary storage, comprising the steps of:
-
providing a sequence of fixed-sized file system data structures of a data type that is specifically designed for storing contents of the files on the secondary storage wherein said fixed-sized file system data structures are distinct from the sectors of the secondary storage; storing a first set of contents of files that are logically related of a first size in a first variable-sized file system data structure of a given structure type on the secondary storage; and storing the first variable-sized file system data structure of the given structure type in which the first set of contents of files that are logically related are stored in at least one of the fixed-sized file system data structures on the secondary storage. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A data processing system, comprising:
-
internal memory; secondary storage divided into sectors; a file system for managing files; a sequence of fixed-sized file system data structures for storing contents of files wherein said fixed-sized file system data structures are distinct from the sectors of the secondary storage; means for storing a first set of contents of files that are logically related in a first variable-sized file system data structure of a given structure type; and means for storing the first variable-sized file system data structure in which the first set of contents of files that are logically related are stored in at least one of the fixed-sized file system data structures. - View Dependent Claims (9, 10, 11, 12)
-
-
13. In a file system in a data processing system having secondary storage divided into sectors, a method comprising the steps of:
-
storing logically contiguous bytes of files in variable-sized data structures of a first type; storing sets of the variable-sized data structures of the first type in which are stored related files in a variable-sized data structure of a second type; and storing the variable-sized data structure of the second type in a fixed-sized data structure wherein the fixed-sized data structure is independent of the sectors of the secondary storage. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A data processing system comprising:
-
internal storage; secondary storage having memory space divided into logical partitions of multiple bytes; a file system for managing files; means for storing logically contiguous bytes of files in variable-sized file system data structures of a first type in the internal storage; means for storing sets of the variable-sized file system data structures of the first type that hold related files in variable-sized file system data structures of a second type in the internal storage; and means for storing the variable-sized file system data structures of the second type in fixed-sized data structures in the internal storage.
-
-
19. In a data processing system having secondary storage and a file system for managing files, a method comprising the steps of:
-
storing sets of logically contiguous bytes of file data in respective variable-sized file system data structures of a first type; storing variable-sized file system data structures of the first type which store related files in a variable-sized file system data structure of a second type in the secondary storage; and storing a B-tree index to the variable-sized data structures of the first type in the variable-sized file system data structure of the second type in the secondary storage. - View Dependent Claims (20, 21)
-
-
22. In a data processing system having secondary storage and a file system for managing files, a method comprising the steps of:
-
storing logically contiguous bytes of files in variable-sized file system data structures of a first type; storing variable-sized file system data structures of a second type in the secondary storage wherein each variable-sized file system data structure of the second type stores a set of the variable-sized file system data structures of the first type that store files; and in each variable-sized file system data structure of the second type, storing a B-tree index to the variable-sized file system data structures of the first type stored in the variable-sized file system data structure of the second type.
-
-
23. In a data processing system having a file system for managing files, secondary storage that includes memory space divided into sectors which holds an array of fixed-size buckets file system data structures that are distinct from the sectors and one of the buckets holds an object, a method of allocating additional memory space in the secondary storage to fulfill growing requirements of the object, comprising the steps of:
-
determining whether the bucket that currently holds the object has sufficient free memory space to fulfill the growing requirements of the object; when the bucket that currently holds the object has sufficient free memory space, allocating additional space in the bucket to the object to fulfill the growing requirements of the object; and otherwise, finding a bucket that has sufficient memory space to fulfill the growing requirements of the object and moving the object to the found bucket. - View Dependent Claims (24)
-
-
25. In a data processing system having secondary storage divided into sectors and a file system for managing files, a method comprising the steps of:
-
storing files in an array of fixed-sized buckets of storage space in the secondary storage wherein the buckets are defined by the file system and are distinct from the sector and wherein at least one of the fixed-sized buckets of storage space has more than one file stored in it; providing an identifier for each file that identifies the file among those stored in the array; storing a map in the secondary storage that maps each identifier for a file into the fixed-sized bucket in which the file is stored; locating one of the files having a selected identifier in the array by using the map to locate the fixed-sized bucket in which the file is stored and searching the fixed-sized bucket to locate the file having the selected identifier.
-
-
26. In a data processing system having secondary storage that is divided into sectors and a file system for managing files, a method comprising the steps of:
-
storing files in array of fixed-sized buckets of storage space in the secondary storage wherein said buckets are defined by the file system and are distinct from the sectors and wherein each file has an identifier associated with it; storing a file system mapping structure of multiple entries in the secondary storage, said entries including at least one entry that maps another of the identifiers to one of the buckets in the array; storing in the file system mapping structure a free list of identifiers of cells of space in the secondary storage that are unallocated; and using the file system mapping structure to locate a bucket from the identifier of the bucket. - View Dependent Claims (27)
-
-
28. In a data processing system having secondary storage that is divided into sectors and a file system for managing files, a method comprising the steps of:
-
providing an array of fixed-sized buckets of storage space in the secondary storage wherein said buckets are defined by the file system and are distinct from the sectors and for storing files, each file having an identifier associated with it; providing a file system mapping structure of multiple entries in the secondary storage for mapping identifiers to either cells in a free list or to the fixed-sized buckets in the array; providing the free list in the file system mapping structure, said free list including identifiers of any free cells of space in the secondary storage; determining if the free list contains an identifier for at least one cell; and where the free list contains an identifier for at least one cell, assigning a selected identifier of a cell from the free list to a new file and storing the new file in the cell. - View Dependent Claims (29, 30)
-
Specification