IP Library Granted Patent US 10,069,909
Granted Patent B1
US 10,069,909 · App. 14/974,419 · Granted Sep 4, 2018

Dynamic parallel save streams for block level backups

Inventors: Shelesh Chopra (Bangalore, IN); Vladimir Mandic (San Jose, CA); Peter Armorer (Milton, CA); Gururaj Kulkarni (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
H04L67/1095G06F11/1464H04L65/4069
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 10,069,909
App. No.
14/974,419
Filed
Dec 18, 2015
Granted
Sep 4, 2018
Kind
B1
Art Unit
2452
USPC
709/219
Abstract

Embodiments are directed to performing block-based backups of data using dynamic save streams by parsing, in a backup manager component, a data saveset to convert the data into blocks, analyzing the blocks in a stream engine component to define a number and respective size of save streams to assign certain blocks to respective streams, and transmitting the save streams to a backup storage media to perform a backup operation.

Claims (38)

1. A computer-implemented method for performing data backups in a data backup system having a backup manager computer and storage medium, comprising:

parsing, in the backup manager computer, a data saveset to convert the data into blocks to create block level backups using dynamic parallel save stream technology;

analyzing the blocks in a stream engine component of the backup manager computer to define a number and respective size of parallel save streams to assign certain blocks to respective streams in accordance with a parallelism policy;

determining, in a rule engine of the backup computer, whether to include at least some file level backups as part of the block level backups for the data saveset;

transmitting the save streams to a backup storage media, wherein the number of save streams is one of a default value or a user configurable value and is denoted N, and further wherein the stream engine component creates N worker threads, where each thread opens a file separately and moves the starting offset to a respective defined value, wherein each thread has no lock so that each thread gets a different file handle for the same file, and yet further wherein the respective defined value for a thread equals the file size multiplied by the result of the thread number divided by the thread count for the respective thread; and

storing the save streams in the storage medium to complete a backup operation.

2. The method of claim 1 wherein the blocks are one of a fixed length or a variable length.

3. The method of claim 2 further comprising:

creating logical blocks for the saveset, wherein a logical organization comprises the blocks starting from different offsets;

consolidating the blocks;

generating the number of save streams from the consolidated blocks; and

running the backup operation to save the saveset to the backup media storage.

4. The method of claim 3 wherein the backup operation comprises one of a full backup or an incremental backup, and the saveset represents a snapshot or consistent state image of a large database.

5. The method of claim 3 further comprising determining, in a rules engine, a type of backup to be performed based on certain defined rule criteria, the type of backup comprising one of a file level parallel save stream backup, a block level parallel save stream backup, and a combined file and block level parallel save stream backup.

6. The method of claim 5 wherein the defined rule criteria include a plurality of saveset characteristics comprised of at least: file size, file density, block size, and percentage change of data for incremental backups.

7. The method of claim 6 further comprising assigning respective weights to each characteristic of the plurality of saveset characteristics, and combining the rule criteria according to a defined formula to determine the backup type based on the plurality of weighted save set characteristics.

8. The method of claim 3 wherein contiguous blocks are assigned to a same respective save stream.

9. The method of claim 3 wherein the saveset is dynamically split into the save streams by one of: splitting into N logically contiguous sequential sections; or splitting into interleaved logically sized blocks.

10. A system configured to perform data backups across a network in a data backup system having a backup manager computer and storage medium, comprising:

a backup manager component parsing, in the backup manager computer, a data saveset to convert the data into blocks to create block level backups using dynamic parallel save stream technology, wherein the number of save streams is one of a default value or a user configurable value, and further wherein the number of save streams is denoted N, and yet further wherein the stream engine component creates N worker threads, where each thread opens a file separately and moves the starting offset to a respective defined value, wherein each thread has no lock so that each thread gets a different file handle for the same file, and further wherein the respective defined value for a thread equals the file size multiplied by the result of the thread number divided by the thread count for the respective thread;

a save stream engine coupled to the backup manager component and analyzing the blocks in a stream engine component to define a number and respective size of parallel save streams to assign certain blocks to respective streams in accordance with a parallelism policy;

an interface transmitting the save streams to a backup storage media; and

the backup storage media storing the transmitted save streams.

11. The system of claim 10 wherein the blocks are one of a fixed length or a variable length.

12. The system of claim 11 wherein the save stream engine further:

creates logical blocks for the saveset, wherein a logical organization comprises the blocks starting from different offsets;

consolidates the blocks and generates the number of save streams from the consolidated blocks; and

transmits the save streams in a backup operation to save the saveset to the backup media storage.

13. The system of claim 12 further comprising a rules engine determining a type of backup to be performed based on certain defined rule criteria, the type of backup comprising one of a file level parallel save stream backup, a block level parallel save stream backup, and a combined file and block level parallel save stream backup.

14. The system of claim 13 wherein the defined rule criteria include a plurality of saveset characteristics comprised of at least: file size, file density, block size, and percentage change of data for incremental backups.

15. The system of claim 14 further wherein the rules engine assigns respective weights to each characteristic of the plurality of saveset characteristics, and combines the rule criteria according to a defined formula to determine the backup type based on the plurality of weighted saveset characteristics.

16. The system of claim 15 wherein the backup operation comprises one of a full backup or an incremental backup, and the saveset represents a snapshot or consistent state image of a large database, and wherein the number of save streams is determined by a parallelism parameter defined in the backup manager.

17. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to perform data backups in a data backup system having a backup manager computer and storage medium by executing instructions implementing a method comprising:

parsing, in the backup manager computer, a data saveset to convert the data into blocks to create block level backups using dynamic parallel save stream technology;

analyzing the blocks in a stream engine component of the backup manager computer to define a number and respective size of parallel save streams to assign certain blocks to respective streams in accordance with a parallelism policy;

determining, in a rule engine of the backup computer, whether to include at least some file level backups as part of the block level backups for the data saveset;

transmitting the save streams to a backup storage media, wherein the number of save streams is one of a default value or a user configurable value and is denoted N, and further wherein the stream engine component creates N worker threads, where each thread opens a file separately and moves the starting offset to a respective defined value, wherein each thread has no lock so that each thread gets a different file handle for the same file, and yet further wherein the respective defined value for a thread equals the file size multiplied by the result of the thread number divided by the thread count for the respective thread; and

storing the save streams in the storage medium to complete a backup operation.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2015
From: CHOPRA, SHELESH; MANDIC, VLADIMIR; ARMORER, PETER; KULKARNI, GURURAJ
To: EMC CORPORATION
Reel/Frame 037329/0385 →
Cited By (9)
US 12,210,779 US 12,217,039 US 12,282,394 US 12,287,709 US 12,307,238 US 12,400,015 US 12,461,832 US 12,541,431 US 12,699,560