IP Library Granted Patent US 12670127
Granted Patent B2
US 12670127 · App. 18/988,545 · Granted Jun 30, 2026

Temporary mapping to avoid chain of virtuals for background deduplication

Inventor: Philippe Armangau (Kalispell, MT)
Assignee: Dell Products L.P.
G06F16/1752G06F16/13G06F16/1744
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12670127
App. No.
18/988,545
Granted
Jun 30, 2026
Kind
B2
Abstract

A system can create a first, persistent, data structure that indicates a location of an ingested file within a log filesystem. The system can, based on not deduplicating the file at ingest, create a second, temporary, data structure that indicates the location of the file, which comprises a logical backpointer to the file. The system can perform deduplication after creating the second data structure, comprising parsing a chunk descriptor associated with the file to identify the second data structure, identifying any active first virtual mapping structures associated with the file, identifying a deduplicated block associated with the file, updating a leaf mapping block of the file to point to a virtual pointer that identifies data associated with the deduplicated block, based on the logical backpointer of the second data structure, and after processing any second virtual mapping structures of the chunk, freeing the second data structure.

Claims (55)

1 . A system, comprising:

at least one processor; and

at least one memory that stores executable instructions that, when executed by the at least one processor, facilitate performance of operations, comprising:

ingesting a file into a log filesystem;

omitting a deduplication operation on the file at a time of the ingesting;

based on the ingesting, creating a first data structure that indicates a location of the file within the log filesystem, wherein the first data structure is persistent for a duration of the file being stored in the log filesystem;

based on the omitting of the deduplication operation on the file at the time of the ingesting, creating a second data structure that indicates the location of the file within the log filesystem, wherein the second data structure comprises a logical backpointer to the file in the log filesystem, and wherein the second data structure is persistent until the deduplication operation is performed on the file; and

performing the deduplication operation subsequent to the creating of the second data structure, comprising:

parsing a chunk descriptor associated with a chunk of the file in the log filesystem to identify the second data structure,

identifying any active first virtual mapping structures that are associated with the file in the log filesystem,

identifying a deduplicated block associated with the file in the log filesystem, wherein the log filesystem implements block storage,

updating a leaf mapping block of the file to point to a virtual pointer that identifies data associated with the deduplicated block that is stored in another block other than the deduplicated block, based on the logical backpointer of the second data structure, and

after processing any second virtual mapping structures of the chunk, freeing the second data structure.

2 . The system of claim 1 , wherein the logical backpointer identifies a snap-iD associated with the file in the log filesystem.

3 . The system of claim 1 , wherein the logical backpointer identifies an inode associated with the file in the log filesystem.

4 . The system of claim 1 , wherein the logical backpointer identifies an offset of a block within the file in the log filesystem.

5 . The system of claim 1 , wherein the performing of the deduplication operation further comprises:

performing a compression operation on the file in the log filesystem.

6 . The system of claim 1 , wherein the ingesting comprises flushing a write-back cache of the log filesystem, wherein the write-back cache stores the file.

7 . The system of claim 1 , wherein the file is a first file, wherein the deduplication operation is a first deduplication operation, wherein the time is a first time, wherein the location is a first location, and wherein the operations further comprise:

ingesting a second file into the log filesystem, wherein a second deduplication on the second file is performed at a second time of the ingesting of the second file; and

based on the second deduplication on the second file being performed at a second time of the ingesting of the second file, refraining from creating a temporary data structure for the second file that indicates a second location of the second file within the log filesystem.

8 . A method, comprising:

based on ingesting a file into a log filesystem, creating, by a system comprising at least one processor, a first data structure that indicates a location of the file within the log filesystem, wherein the first data structure is persistent for a duration of storage of the file in the log filesystem;

based on omitting a deduplication operation on the file at a time of the ingesting, creating, by the system, a second data structure that indicates the location of the file within the log filesystem, wherein the second data structure comprises a logical backpointer to the file in the log filesystem, and wherein the second data structure is persistent at least until the deduplication operation is performed on the file; and

performing the deduplication operation subsequent to the creating of the second data structure, comprising:

parsing, by the system, a chunk descriptor associated with a chunk of the file in the log filesystem to identify the second data structure,

identifying, by the system, at least one active first virtual mapping structure that is associated with the file in the log filesystem,

identifying, by the system, a deduplicated block associated with the file in the log filesystem, wherein the log filesystem implements block storage,

updating, by the system, a leaf mapping block of the file to point to a virtual pointer that identifies data associated with the deduplicated block that is stored in another block, based on the logical backpointer of the second data structure, and

after processing at least one second virtual mapping structure of the chunk, freeing, by the system, the second data structure.

9 . The method of claim 8 , wherein the parsing of the chunk descriptor associated with the chunk of the file in the log filesystem to identify the second data structure comprises:

locating, by the system, a backpointer in the chunk descriptor that identifies the second data structure.

10 . The method of claim 9 , wherein the backpointer in the chunk descriptor that identifies the second data structure indicates that the deduplication operation has not been performed on the file.

11 . The method of claim 9 , wherein the deduplication operation is a first deduplication operation, wherein the chunk descriptor is a first chunk descriptor, wherein the backpointer is a first backpointer, and further comprising:

based on determining, from parsing a second chunk descriptor, that the second chunk descriptor omits a second backpointer to a temporary data structure, halting, by the system, a second deduplication operation with respect to the second chunk descriptor.

12 . The method of claim 9 , wherein the identifying of the at least one active first virtual mapping structure that is associated with the file in the log filesystem comprises fetching a virtual chunk extent that comprises virtual pointers that point to the same chunk, and wherein the virtual chunk extent identifies the at least one active first virtual mapping structure.

13 . The method of claim 12 , wherein the identifying of the at least one active first virtual mapping structure is performed concurrently with the fetching of the virtual chunk extent.

14 . The method of claim 13 , wherein respective active first virtual mapping structures of the at least one active first virtual mapping structures are active based on having respective reference counts that are equal to one.

15 . A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising at least one processor to perform operations, comprising:

based on ingesting a file into a filesystem, creating a first data structure that indicates a location of the file within the filesystem;

based on refraining from performing a deduplication operation on the file at a time of the ingesting, creating a second data structure that indicates the location of the file within the filesystem, wherein the second data structure comprises a logical backpointer to the file in the filesystem, and wherein the second data structure is persistent until the deduplication operation is performed on the file; and

performing the deduplication operation subsequent to the creating of the second data structure, comprising:

identifying the second data structure from a chunk descriptor associated with a chunk of the file in the filesystem,

identifying active first virtual mapping structures that are associated with the file in the filesystem,

identifying a deduplicated block associated with the file in the filesystem, wherein the filesystem implements block storage,

updating a leaf mapping block of the file to point to a virtual pointer that identifies data associated with the deduplicated block that is stored in another block, based on the logical backpointer of the second data structure, and

after processing second virtual mapping structures of the chunk, freeing memory associated with the second data structure.

16 . The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

decrementing a reference count of a second virtual mapping structure of the second virtual mapping structures after processing the second virtual mapping structure.

17 . The non-transitory computer-readable medium of claim 16 , wherein the operations further comprise:

freeing the second virtual mapping structure based on the reference count being zero.

18 . The non-transitory computer-readable medium of claim 15 , wherein the deduplication operation omits traversing a chain of multiple links between third virtual mapping structures.

19 . The non-transitory computer-readable medium of claim 15 , wherein the deduplication operation omits searching a name space of the filesystem.

20 . The non-transitory computer-readable medium of claim 15 , wherein the deduplication operation comprises a background deduplication operation.