Method and system for storing a sparse file using fill counts
First Claim
1. A method for storing a first block and a second block, comprising:
- storing the first block and the second block in a storage pool; and
storing a third block in the storage pool, wherein the third block references the first block and second block and comprises a first fill count and a second fill count, wherein the first fill count corresponds to one selected from the group consisting of a number of data blocks directly referenced by the first block, a number of data blocks indirectly referenced by the first block, if the first block is an indirect block, wherein the first fill count is one if the first block is a data block.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for storing a first block and a second block, the includes storing the first block and the second block in a storage pool, and storing a third block in the storage pool, wherein the third block references the first block and second block and comprises a first fill count and a second fill count, wherein the first fill count corresponds to one selected from the group consisting of a number of data blocks directly referenced by the first block, a number of data blocks indirectly referenced by the first block, if the first block is an indirect block, wherein the first fill count is one if the first block is a data block.
-
Citations
11 Claims
-
1. A method for storing a first block and a second block, comprising:
-
storing the first block and the second block in a storage pool; and
storing a third block in the storage pool, wherein the third block references the first block and second block and comprises a first fill count and a second fill count, wherein the first fill count corresponds to one selected from the group consisting of a number of data blocks directly referenced by the first block, a number of data blocks indirectly referenced by the first block, if the first block is an indirect block, wherein the first fill count is one if the first block is a data block. - View Dependent Claims (2, 3, 4)
-
-
5. A system, comprising:
-
a storage pool comprising;
a first block and a second block, and a third block referencing the first block and second block and comprising a first fill count and a second fill count, wherein the first fill count is associated with the first block and the second fill count is associated with the second block; and
a storage pool allocator configured to store the first block, the second block, and the third block in the storage pool wherein the first fill count corresponds to one selected from the group consisting of a number of data blocks directly referenced by the first block, a number of data blocks indirectly referenced by the first block, if the first block is an indirect block, wherein the first fill count is one if the first block is a data block. - View Dependent Claims (6, 7, 8)
-
-
9. A method for locating a hole in a file, comprising:
-
obtaining a root associated with the file, wherein the root comprises a root block fill count and references a hierarchical data structure comprising a plurality of blocks pointer;
if the root block fill count is not equal to the maximum fill count for the root;
traversing the hierarchical data structure; and
for each block pointer encountered;
obtaining a fill count associated with the block pointer, determining whether the fill count is zero, if the fill count does not correspond to the maximum fill count for the block pointer, wherein the hole is located if the file count is zero. - View Dependent Claims (10, 11)
-
Specification