IP Library › Granted Patent US 10,387,369
Granted Patent B1
US 10,387,369 · App. 14/319,128 · Granted Aug 20, 2019

Managing file deletions of files and versions of files in storage systems

Inventors: William C. Davenport (Burlington, MA); Philippe Armangau (Acton, MA); Junping Frank Zhao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F16/128
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,387,369
App. No.
14/319,128
Filed
Jun 30, 2014
Granted
Aug 20, 2019
Kind
B1
Examiner
LE, MICHAEL
Art Unit
2163
USPC
707/634
Abstract

A method is used in managing file deletions in storage systems. A request to delete a portion of a file of a file system is received. A first indirect block is associated with the portion of the file and includes a set of file system blocks. A second indirect block associated with a replica of the file is identified. The first and second indirect blocks share a subset of the set of file system blocks. The replica of the file represents a state of the file at a particular prior point in time. Metadata of the second indirect block is updated indicating that the subset of the set of file system blocks are no longer shared between the first and second indirect blocks.

Claims (26)

1. A method for use in managing file deletions in storage systems, the method comprising:

receiving a request to delete a portion of a file of a file system, wherein the file is organized as a hierarchy of file system blocks including indirect blocks and data blocks stored on a storage system, wherein the file and a set of replicas of the file are organized in a version set, each replica of the file representing a state of the file at a particular prior point in time, wherein a set of indirect blocks is associated with the portion of the file identified for deletion, wherein each indirect block of the set of indirect blocks includes a set of file system blocks;

evaluating file system hierarchies of the set of replicas of the file in the version set for identifying a respective sibling indirect block for each indirect block of the set of indirect blocks associated with the portion of the file identified for deletion, wherein a sibling indirect block is included in a file system hierarchy of a replica from the set of replicas of the file organized in the version set, wherein a sibling indirect block for an indirect block is identified based on a number of file system blocks shared between the sibling indirect block and the indirect block, wherein the sibling indirect block and the indirect block shares the most number of file system blocks in comparison with other indirect blocks included in the set of replicas of the file in the version set;

updating metadata of each respective sibling indirect block identified for the set of indirect blocks by adding a reference count of each shared file system block shared between an indirect block of the set of indirect blocks and the respective sibling indirect block for the indirect block to the metadata of the respective sibling indirect block indicating that the shared file system blocks are no longer shared between the indirect block and the respective sibling indirect block, wherein updating metadata of a sibling indirect block identified for an indirect block enables deletion of file system blocks shared between the sibling indirect block and the indirect block without having to read and update metadata of each shared file system block from a storage device; and

deleting the set of indirect blocks of the file by returning distributed weight for each shared file system block of each indirect block of the set of indirect blocks to metadata of a respective sibling indirect block identified in another file included in the set of replicas.

2. The method of claim 1 , wherein the portion of the file selected for deletion is associated with the set of indirect blocks, each indirect block of the set of indirect blocks pointing to a set of data blocks.

3. The method of claim 2 , wherein for each indirect block of the set, of indirect blocks, a sibling indirect block included in a file system hierarchy of a replica of the file is identified based on a replication identifier.

4. The method of claim 1 , wherein a mapping pointer is associated with a file system block, wherein the mapping pointer includes a distributed weight indicating whether the file system block has been shared.

5. The method of claim 1 , wherein updating the metadata of a sibling indirect block identified for an indirect block includes adding weight of each data block shared between the sibling indirect block and the indirect block to a mapping pointer associated with each shared data block included in the sibling indirect block.

6. The method of claim 1 , wherein each indirect block of the set of indirect blocks is deleted based on a delegated reference counting mechanism.

7. The method of claim 1 , further comprising:

determining whether a sibling indirect block is associated with a production file; and

based on the determination, identifying another sibling indirect block.

8. A system for use in managing file deletions in storage systems, the system comprising a processor configured to:

receive a request to delete a portion of a file of a file system, wherein the file is organized as a hierarchy of file system blocks including indirect blocks and data blocks stored on a storage system, wherein the file and a set of replicas of the file are organized in a version set, each replica of the file representing a state of the file at a particular prior point in time, wherein a set of indirect blocks is associated with the portion of the file identified for deletion, wherein each indirect block of the set of indirect blocks includes a set of file system blocks;

evaluate file system hierarchies of the set of replicas of the file in the version set for identifying a respective sibling indirect block for each indirect block of the set of indirect blocks associated with the portion of the file identified for deletion, wherein a sibling indirect block is included in a file system hierarchy of a replica from the set of replicas of the file organized in the version set, wherein a sibling indirect block for an indirect block is identified based on a number of file system blocks shared between the sibling indirect block and the indirect block, wherein the sibling indirect block and the indirect block shares the most number of file system blocks in comparison with other indirect blocks included in the set of replicas of the file in the version set;

update metadata of each respective sibling indirect block identified for the set of indirect blocks by adding a reference count of each shared file system block shared between an indirect block of the set of indirect blocks and the respective sibling indirect block for the indirect block to the metadata of the respective sibling indirect block indicating that the shared file system blocks are no longer shared between the indirect block and the respective sibling indirect block, wherein updating metadata of a sibling indirect block identified for an indirect block enables deletion of file system blocks shared between the sibling indirect block and the indirect block without having to read and update metadata of each shared file system block from a storage device; and

delete the set of indirect blocks of the file by returning distributed weight for each shared file system block of each indirect block of the set of indirect blocks to metadata of a respective sibling indirect block identified in another file included in the set of replicas.

9. The system of claim 8 , wherein the portion of the file selected for deletion is associated with the set of indirect blocks, each indirect block of the set of indirect blocks pointing to a set of data blocks.

10. The system of claim 9 , wherein for each indirect block of the set of indirect blocks, a sibling indirect block included in a file system hierarchy of a replica of the file is identified based on a replication identifier.

11. The system of claim 8 , wherein a mapping pointer is associated with a file system block, wherein the mapping pointer includes a distributed weight indicating whether the file system block has been shared.

12. The system of claim 8 , wherein updating the metadata of a sibling indirect block identified for an indirect block includes adding weight of each data block shared between the sibling indirect block and the indirect block to a mapping pointer associated with each shared data block included in the sibling indirect block.

13. The system of claim 8 , wherein each indirect block of the set of indirect blocks is deleted based on a delegated reference counting mechanism.

14. The system of claim 8 , wherein the processor is further configured to:

determining whether a sibling indirect block is associated with a production file; and

based on the determination, identifying another sibling indirect block.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
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: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2014
From: DAVENPORT, WILLIAM C.; ARMANGAU, PHILIPPE; ZHAO, JUNPING FRANK
To: EMC CORPORATION
Reel/Frame 033210/0238 →
Cited By (6)
US 12,210,430 US 12,271,614 US 12,288,060 US 12,289,415 US 12,417,299 US 12,536,008