High performance file system
First Claim
1. A method in a computer system for tracking allocations of memory, the memory comprising a plurality of bands, each band comprising a plurality of sectors, each sector comprising a plurality of memory locations, the method comprising the steps of:
- allocating a bitmap for each of the plurality of bands, each bitmap having a bit for each sector within the band;
when allocating a sector of memory, setting a bit in the bitmap of the band that contains the sector to indicate that the sector is allocated; and
when deallocating a sector of memory, setting a bit in the bitmap of the band that contains the sector to indicate that the sector is deallocated.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for allocating contiguous portions of memory to a file. On or more file nodes are provided for allocating memory to one or more files, and the location of these file nodes is maintained. Within these file nodes, the location of one or more runs of contiguous portions of memory are maintained. These contiguous portions of memory are allocated to a file in accordance with the corresponding file node. In one embodiment, the file nodes can be extended in a binary tree structure of additional nodes each storing locations of runs of contiguous portions of memory.
275 Citations
70 Claims
-
1. A method in a computer system for tracking allocations of memory, the memory comprising a plurality of bands, each band comprising a plurality of sectors, each sector comprising a plurality of memory locations, the method comprising the steps of:
-
allocating a bitmap for each of the plurality of bands, each bitmap having a bit for each sector within the band; when allocating a sector of memory, setting a bit in the bitmap of the band that contains the sector to indicate that the sector is allocated; and when deallocating a sector of memory, setting a bit in the bitmap of the band that contains the sector to indicate that the sector is deallocated. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method in a computer system for tracking the allocation of memory locations to a file, the computer system having a memory with a plurality of memory locations, the method comprising the steps of:
-
allocating memory locations for a file FNODE, the file FNODE having memory locations for storing indicators of variable-length runs of logically contiguous memory locations allocated to the file; allocating a plurality of variable-length runs of logically contiguous memory locations to the file; for each run allocated to the file, setting an indicator in the file FNODE to identify a location and length of the run; and when the number of runs exceeds the capacity of the file FNODE for storing indicators of runs, storing in the file FNODE pointers to portions of memory locations, the portions for storing indicators of the runs allocated to the file. - View Dependent Claims (9, 10)
-
-
7. A method in a computer system for tracking the allocation of memory locations to a file, the computer system having a memory with a plurality of memory locations, the method comprising the steps of:
-
allocating memory locations for a file FNODE, the file FNODE having memory locations for storing indicators of variable-length runs of logically contiguous memory locations allocated to the file; allocating a plurality of variable-length runs of logically contiguous memory locations to the file; and for each run allocated to the file, setting an indicator in the file FNODE to identify a location and length of the run wherein the indicators are stored in a tree structure. - View Dependent Claims (8)
-
-
11. A method in a computer system of maintaining a directory hierarchy on a file storage device, the method comprising the steps of:
-
for each directory, allocating a directory FNODE, each directory FNODE having a pointer to a directory structure; and allocating a directory structure, the directory structure comprising a plurality of directory entries, each directory entry having a pointer to a file FNODE or a directory FNODE. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A method in a computer system for organizing files in a hierarchical manner on a storage device, the hierarchy of files comprising a plurality of directories and files, the storage device having a plurality of logically contiguous sectors, each sector having a plurality of logically contiguous locations, the method comprising the steps of:
-
allocating a descriptive block portion of the storage device, the descriptive block portion having a file system information portion and a sector allocation portion, the file system information portion having a pointer to a root directory, the sector allocation portion containing information describing the allocation of the sectors; for each directory, allocating a directory portion of the storage device for storing information relating to the directory, the directory portion having a directory FNODE portion and a directory block portion, the directory FNODE portion containing information describing the directory, the directory block portion containing entries describing each directory and file within the directory; and for each file, allocating a file portion of the storage device for storing information relating to the file, the file portion having a file FNODE portion and a data portion, the file FNODE portion containing information identifying the file and a plurality of run indicators, each run indicator identifying a run of a plurality of logically contiguous locations, the data portion comprising a plurality of runs. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer system for tracking storage device allocations, comprising:
-
a storage device having a plurality of bands, each band having a plurality of sectors, each sector having a plurality of storage locations; means for allocating a bitmap for each of the plurality of bands, each bitmap having a bit for each sector within the band; means for setting a bit in the bitmap of the band that contains the sector to indicate that the sector is allocated; and means for setting a bit in the bitmap of the band that contains the sector to indicate that the sector is deallocated. - View Dependent Claims (37, 38, 39, 40)
-
-
41. A computer system for maintaining a directory hierarchy, comprising:
-
a file storage device; means for allocating a first directory structure within the file storage device, each first directory having a pointer to a second directory structure; and means for allocating a second directory structure within the file storage device, the second directory structure comprising a plurality of directory entries, each directory entry having an identifier of a file or a directory whereby the first directory structures and the second directory structures form a directory hierarchy. - View Dependent Claims (42, 43, 44, 45, 46)
-
-
47. A computer system for tracking the allocation of memory locations to a file, comprising:
-
a memory with a plurality of memory locations; means for allocating memory locations for a file node, the file node having memory locations for storing indicators of variable-length runs of logically contiguous memory locations allocated to the file; means for allocating a plurality of variable-length runs of logically contiguous memory locations to the file; and means for setting an indicator in the file node to identify a location and length of the run; and means for storing in the file node identifiers of portions of memory locations, when the number of runs exceeds the capacity of the file node for storing indicators of runs, the portions for storing indicators of the runs allocated to the file. - View Dependent Claims (48, 50, 51)
-
-
49. A computer system for tracking the allocation of memory locations to a file, comprising:
-
a memory With a plurality of memory locations; means for allocating memory locations for a file node, the file node having memory locations for storing indicators of variable-length runs of logically contiguous memory locations allocated to the file; means for allocating a plurality of variable-length runs of logically contiguous memory locations to the file; and means for setting an indicator in the file node to identify a location and length of the run; and means for storing the indicators in a tree structure.
-
-
52. A computer system for organizing files in a hierarchical manner, the hierarchy of files comprising a plurality of directories and files, comprising:
-
a storage device having a plurality of logically contiguous sectors, each sector having a plurality of logically contiguous locations; means for allocating a descriptive block portion of the storage device, the descriptive block portion having a file system information portion and a sector allocation portion, the file system information portion having an indicator of a root directory, the sector allocation portion containing information describing the allocation of the sectors; means for allocating a directory portion of the storage device for storing information relating to the directory, the directory portion having a directory node portion and a directory block portion, the directory node portion containing information describing the directory, the directory block portion containing entries describing each directory and file within a directory; and means for allocating a file portion of the storage device for storing information relating to the file, the file portion having a file node portion and a data portion, the file node portion containing information identifying the file and a plurality of run indicators, each run indicator identifying a run of a plurality of logically contiguous locations, the data portion comprising a plurality of runs. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70)
-
Specification