IP Library Granted Patent US 12681861
Granted Patent B2
US 12681861 · App. 18/418,840 · Granted Jul 14, 2026

Extent reads at random offsets by synthesizing extents to leverage sequential restore performance

Inventors: Nitin Madan (San Jose, CA); Donna Barry Lewis (Holly Springs, NC); Bhimsen Bhanjois (Fremont, CA)
Assignee: Dell Products L.P.
G06F12/0862G06F12/063
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 12681861
App. No.
18/418,840
Granted
Jul 14, 2026
Kind
B2
Abstract

Improving extent-based read performance using pre-fetches by utilizing synthesized sequential extent files in a deduplication storage system. Extent information is obtained for changes between two generations (e.g., Generation 0 and Generation 1) of backup files. In a client-server system, the client will instruct the filesystem to create a new synthesized file corresponding to the extents. Upon receiving this request, a filesystem server will create the new synthesized file. The new synthesized file can be read sequentially to leverage the benefits of prefetching. The extents can be patched into a target file that may be stored on different storage using the extent information.

Claims (21)

1 . A computer-implemented method for improving extent-based read performance of a file using data pre-fetches in a client-server network, comprising:

obtaining extent information for delta changes between a first generation backup file and a second generation backup file;

receiving, in a filesystem server and from a client, an instruction to create a new synthesized file corresponding to the extent information;

storing the extent information in a storage comprising part of a deduplication backup process executed by a data storage server running a Data Domain filesystem (DDFS), and wherein the client comprises a DDBoost client;

returning the extent information to the backup process for patching into a target file using a DDBoost application programming interface (API) to read the new synthesized file, wherein the API includes a read buffer with offset/length extent information of data of the new synthesized file; and

creating, upon receiving this instruction, a new synthesized file comprising extents of the extent information as contiguous data that can be read sequentially to leverage the benefits of the pre-fetches.

2 . The method of claim 1 further comprising patching the extents into the target file that may be stored on different storage using the extent information.

3 . The method of claim 1 wherein the extent information comprises a sequence of offsets and lengths, with each offset and length pair defining a corresponding extent of data added to the first generation backup file to synthesize the second generation backup file.

4 . The method of claim 3 wherein the pre-fetches move data from the extents into a read-ahead cache to be sent to an application of the client in response to a read request, and further wherein a prefetch generated by a pre-fetch request comprises a hint that a read input/output (I/O) operation is imminent for purposes of filling the read-ahead cache and preventing a need to issue a blocking I/O operation for the read request.

5 . The method of claim 4 wherein the benefits of the pre-fetches comprise at least one of: preventing wasted input/output operations created by attempting to pre-fetch data beyond an end of an extent, or failing to pre-fetch any data at a beginning of an extent.

6 . The method of claim 3 wherein the sequence of offsets comprise an extent map, with each offset defining a corresponding extent.

7 . The method of claim 3 wherein the filesystem includes a multi-streamed restore component providing multiple streams to issue read-ahead operations for the pre-fetches in parallel, and further wherein the pre-fetches move the data into the read-ahead cache using the multiple streams.

8 . The method of claim 1 wherein the system comprises a Change Based Tracking (CBT) system, and wherein the delta changes are synthesized into a backup file stored by the application as part of a backup operation.

9 . A system for improving read performance of a file using data pre-fetches in a client-server network, comprising:

a server hosting a filesystem storing data in storage for an application executed in the network;

a network client hosting the application;

a backup processing component obtaining extent information for delta changes between a first generation backup file and a second generation backup file;

a data storage server running a Data Domain filesystem (DDFS), and wherein the client comprises a DDBoost client;

a storage storing the extent information in a storage comprising part of a deduplication backup process executed by the data storage server, wherein the extent information is returned to the backup process for patching into a target file using a DDBoost application programming interface (API) to read the new synthesized file, wherein the API includes a read buffer with offset/length extent information of data of the new synthesized file; and

a server component receiving, from the network client, an instruction to create a new synthesized file corresponding to the extent information, and creating, upon receiving this instruction, a new synthesized file comprising extents of the extent information as contiguous data that can be read sequentially to leverage the benefits of the pre-fetches.

10 . The system of claim 9 further comprising a read-ahead cache, wherein the pre-fetches move data from a prefetched extents into the read-ahead cache to be sent to the application in response to the read request, and further wherein the prefetch comprises a hint that a read input/output (I/O) operation is imminent for purposes of filling the read-ahead cache and preventing a need to issue a blocking I/O operation for the read request, and yet further wherein the benefits of the pre-fetches comprise at least one of: preventing wasted input/output operations created by attempting to pre-fetch data beyond an end of an extent, or failing to pre-fetch any data at a beginning of an extent.