Content-based caching using digests
US-10585594-B1 · Mar 10, 2020 · US
US11314689B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11314689-B2 |
| Application number | US-201916249170-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 16, 2019 |
| Priority date | Jan 18, 2018 |
| Publication date | Apr 26, 2022 |
| Grant date | Apr 26, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques index a file. The techniques involve: determining, based on a first mapping stored in a first inode associated with the file, whether a predetermined conversion condition is satisfied. The first mapping points to a plurality of data blocks of a file system storing the file in a first index structure. The techniques further involve, in response to determining that the predetermined conversion condition is satisfied, creating a second inode associated with the file. The techniques further involve converting the first mapping into a second mapping to be stored in the second inode. The second mapping points to the plurality of data blocks in a second index structure different from the first index structure.
Opening claim text (preview).
We claim: 1. A method of indexing a file, comprising: determining, based on a first mapping stored in a first inode associated with the file, whether a predetermined conversion condition is satisfied, the first mapping pointing to a plurality of data blocks of a file system storing the file in a first index structure; in response to determining that the predetermined conversion condition is satisfied, creating a second inode associated with the file; and converting the first mapping into a second mapping to be stored in the second inode, the second mapping pointing to the plurality of data blocks in a second index structure different from the first index structure; wherein the first mapping comprises a plurality of allocated extents, an allocated extent directly pointing to a set of consecutive data blocks in the plurality of data blocks; and wherein the determining comprises: comparing a number of the plurality of extents with a first predetermined number threshold, and in response to the number reaching the first predetermined number threshold, determining that the predetermined conversion condition is satisfied. 2. The method of claim 1 , wherein the first predetermined number threshold is smaller than a number of extents allocable in the first inode. 3. The method of claim 1 , further comprising: comparing a number of the plurality of extents with a second predetermined number threshold, the second predetermined number threshold being greater than the first predetermined number threshold; and in response to the number reaching the second predetermined number threshold, discarding the first inode. 4. The method of claim 1 , further comprising: in response to receiving a deletion request or write request for the file, updating the first mapping in the first inode and the second mapping in the second inode. 5. The method of claim 1 , wherein determining whether the predetermined conversion condition is satisfied further comprises: in response to a write request for the file, increasing the number of the plurality of extents in the first inode prior to comparing the number of the plurality of extents with the first predetermined number threshold. 6. The method of claim 1 , further comprising: accessing the file via the first inode during a first time; and accessing the file via the second inode during a second time that is different from the first time. 7. The method of claim 6 , wherein the first index structure is a pointer-based index structure; and wherein the second index structure is an extent-based index structure that is different from the pointer-based index structure. 8. The method of claim 7 , wherein accessing the file via the first inode includes: accessing data blocks of the file in accordance with the pointer-based index structure; and wherein accessing the file via the second inode includes: accessing the data blocks of the file in accordance with the extent-based index structure. 9. The method of claim 8 , wherein the pointer-based index structure includes (i) block pointers that individually point to the data blocks of the file; and (ii) indirect pointers that point to blocks containing at least some of the block pointers that individually point to the data blocks of the file; and wherein the extent-based index structure includes extent pointers that individually point to extents containing the data blocks of the file, each extent being configured to contain consecutive multiple data blocks of the file arranged consecutively. 10. A method of indexing a file, comprising: determining, based on a first mapping stored in a first inode associated with the file, whether a predetermined conversion condition is satisfied, the first mapping pointing to a plurality of data blocks of a file system storing the file in a first index structure; in response to determining that the predetermined conversion condition is satisfied, creating a second inode associated with the file; and converting the first mapping into a second mapping to be stored in the second inode, the second mapping pointing to the plurality of data blocks in a second index structure different from the first index structure; wherein the first mapping comprises at least one of a direct pointer and an indirect pointer, the direct pointer directly pointing to a single data block of the plurality of data blocks and the indirect pointer indirectly pointing to at least one of the plurality of data blocks via an indirect index block; and wherein the determining comprises: determining whether the plurality of data blocks to which the first mapping is pointed include a predetermined number of consecutive data blocks, and in response to determining that the plurality of data blocks include the predetermined number of consecutive data blocks, determining that the predetermined conversion condition is satisfied. 11. An apparatus for indexing a file, comprising: a processor; and a memory coupled to the processor and having instructions stored thereon, the instructions, when executed by the processor, causing the apparatus to perform acts comprising: determining, based on a first mapping stored in a first inode associated with the file, whether a predetermined conversion condition is satisfied, the first mapping pointing to a plurality of data blocks of a file system storing the file in a first index structure; in response to determining that the predetermined conversion condition is satisfied, creating a second inode associated with the file; and converting the first mapping into a second mapping to be stored in the second inode, the second mapping pointing to the plurality of data blocks in a second index structure different from the first index structure; wherein the first mapping comprises a plurality of allocated extents, an allocated extent directly pointing to a set of consecutive data blocks in the plurality of data blocks; and wherein the determining comprises: comparing a number of the plurality of extents with a first predetermined number threshold, and in response to the number reaching the first predetermined number threshold, determining that the predetermined conversion condition is satisfied. 12. The apparatus of claim 11 , wherein the first predetermined number threshold is smaller than a number of extents allocable in the first inode. 13. The apparatus of claim 11 , further comprising: comparing a number of the plurality of extents with a second predetermined number threshold, the second predetermined number threshold being greater than the first predetermined number threshold; and in response to the number reaching the second predetermined number threshold, discarding the first inode. 14. The apparatus of claim 11 , further comprising: in response to receiving a deletion request or write request for the file, updating the first mapping in the first inode and the second mapping in the second inode. 15. The apparatus of claim 11 , wherein determining whether the predetermined conversion condition is satisfied further comprises: in response to a write request for the file, increasing the number of the plurality of extents in the first inode prior to comparing the number of the plurality of extents with the first predetermined number threshold. 16. An apparatus for indexing a file, comprising: a processor; and a memory coupled to the processor and having instructions stored thereon, the instructions, when executed by the processor, causing the apparatus to perform acts comprising: determining, based on a first mapping stored in a first inode associated with the fi
File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06) · CPC title
providing write once read many [WORM] semantics · CPC title
in storage media based on magnetic or optical technology, e.g. disks with sectors (preventing unauthorised reproduction or copying of disc-type recordable media G11B20/00) · CPC title
Details of conversion of file system types or formats · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.