IP Library › Granted Patent US 8,260,792
Granted Patent B1
US 8,260,792 · App. 12/201,957 · Granted Sep 4, 2012

System and method for committing data objects to be immutable

Assignee: EMC Corporation
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 8,260,792
App. No.
12/201,957
Filed
Aug 29, 2008
Granted
Sep 4, 2012
Kind
B1
Art Unit
2164
USPC
707/756
Abstract

Techniques for committing data objects to be immutable are described herein. According to one embodiment, in response to a request received through an interface of a storage system, the request being associated with a data object stored in the storage system, it is determined whether the data object should be committed to be immutable. The data object is committed to be immutable if it is determined that the data object should be committed to be immutable. Thereafter, an action associated with the request is performed, where the action is performed dependent upon whether the data object is immutable. Other methods and apparatuses are also described.

Claims (34)

1. A computer-implemented method for managing data objects, comprising:

in response to a request received through an interface of a storage system, wherein the request is to modify or delete content of a data object stored in the storage system, determining whether the data object should be committed as a write-once-read-many (WORM) object, wherein the data object is not the WORM object prior to receiving the request, and wherein determining whether the data object should be committed as the WORM object is only performed when the request to modify or delete content of the data object is received, wherein determining whether the data object should be committed as the WORM object comprises determining whether the data object has been modified within a last predetermined period of time, including comparing a time attribute of the data object against a current time, wherein if a difference between the time attribute and the current time is greater than a predetermined threshold, the data object should be committed as the WORM object, and wherein the time attribute comprises one of modified time (mtime) and creation time (ctime) attributes associated with the data object;

committing the data object as the WORM object if it is determined that the data object should be committed as the WORM object, wherein the data object is committed as the WORM object if the data object has not been modified within the last predetermined period of time;

modifying or deleting the data object according to the request if it is determined that the data object should not be committed as the WORM object; and

rejecting the request if it is determined that the data object should be committed as the WORM object.

2. The method of claim 1 , further comprising examining the request to determine whether a result of the action associated with the request would likely be different if the data object were immutable, wherein determining whether the data object should be committed as the WORM object is performed if it is likely that the result of the action would be different if the data object were immutable.

3. The method of claim 1 , wherein determining whether the data object should be committed as the WORM object is performed only when the request requires different handling dependent upon whether the data object is immutable.

4. The method of claim 1 , wherein the data object is associated with a subset of the storage system having a plurality of subsets, wherein the predetermined threshold is configured and associated with the subset of the storage system containing the data object, and wherein the predetermined threshold is different from at least one predetermined threshold of another one of the plurality of subsets.

5. The method of claim 1 , wherein committing the data object as the WORM object comprises associating a retention period with the data object during which the data object is protected from modification.

6. The method of claim 5 , wherein associating the retention period with the data object comprises setting the time attribute of the data object to a time beyond a current time.

7. The method of claim 6 , wherein the time attribute for retention period is a last access time (atime) attribute of the data object.

8. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform a method for managing data objects, the method comprising:

in response to a request received through an interface of a storage system, wherein the request is to modify or delete a data object stored in the storage system, determining whether the data object should be committed as a write-once-read-many (WORM) object, wherein the data object is not the WORM object prior to receiving the request, and wherein determining whether the data object should be committed as the WORM object is only performed when the request to modify or delete content of the data object is received, wherein determining whether the data object should be committed as the WORM object comprises determining whether the data object has been modified within a last predetermined period of time, including comparing a time attribute of the data object against a current time, wherein if a difference between the time attribute and the current time is greater than a predetermined threshold, the data object should be committed as the WORM object, and wherein the time attribute comprises one of modified time (mtime) and creation time (ctime) attributes associated with the data object;

committing the data object as the WORM object if it is determined that the data object should be committed as the WORM object, wherein the data object is committed as the WORM object if the data object has not been modified within the last predetermined period of time;

modifying or deleting the data object according to the request if it is determined that the data object should not be committed as the WORM object; and

rejecting the request if it is determined that the data object should be committed as the WORM object.

9. The non-transitory machine-readable medium of claim 8 , wherein the method further comprises examining the request to determine whether a result of the action associated with the request would likely be different if the data object were immutable, wherein determining whether the data object should be committed as the WORM object is performed if it is likely that the result of the action would be different if the data object were immutable.

10. The non-transitory machine-readable medium of claim 8 , wherein determining whether the data object should be committed as the WORM object is performed only when the request requires different handling dependent upon whether the data object is immutable.

11. The non-transitory machine-readable medium of claim 8 , wherein the data object is associated with a subset of the storage system having a plurality of subsets, wherein the predetermined threshold is configured and associated with the subset of the storage system associated with the data object, and wherein the predetermined threshold is different from at least one predetermined threshold of another one of the plurality of subsets.

12. The non-transitory machine-readable medium of claim 8 , wherein committing the data object as the WORM object comprises associating a retention period with the data object during which the data object is protected from modification.

13. The non-transitory machine-readable medium of claim 12 , wherein associating the retention period with the data object comprises setting a time attribute of the data object to a time beyond a current time.

14. The non-transitory machine-readable medium of claim 13 , wherein the time attribute for retention period is a last access time (atime) attribute of the data object.

15. An apparatus for managing data objects, comprising:

an interface to receive a request to modify or delete a data object stored in a storage system;

a command decoder, executed in a memory by a processor of a data processing system, to determine whether the data object should be committed as a write-once-read-many (WORM) object, wherein the data object is not the WORM object prior to receiving the request, and wherein determining whether the data object should be committed as the WORM object is only performed when the request to modify or delete content of the data object is received, wherein determining whether the data object should be committed as the WORM object comprises determining whether the data object has been modified within a last predetermined period of time, including comparing a time attribute of the data object against a current time, wherein if a difference between the time attribute and the current time is greater than a predetermined threshold, the data object should be committed as the WORM object, and wherein the time attribute comprises one of modified time (mtime) and creation time (ctime) attributes associated with the data object;

a WORM state manager, executed in the memory by the processor, to commit the data object as the WORM object if the command decoder determines that the data object should be committed as a WORM object, wherein the data object is committed as the WORM object if the data object has not been modified within the last predetermined period of time;

a command processing logic, executed in the memory by the processor, to modify or delete the data object according to the request if it is determined that the data object should not be committed as the WORM object, and to reject the request if it is determined that the data object should be committed as the WORM object.

16. The apparatus of claim 15 , further comprising the WORM enforcement agent, executed in the memory by the processor, to enforce one or more policies for protecting the data object from modification if the data object has been committed as an immutable data object, when the command processing logic performs the action associated with the request.

17. The apparatus of claim 15 , wherein the command decoder is further to examine the request to determine whether a result of the action associated with the request would likely be different if the data object were immutable, wherein determining whether the data object should be committed as the WORM object is performed if it is likely that the result of the action would be different if the data object were immutable.

18. The apparatus of claim 15 , wherein the determination of whether the data object should be committed as the WORM object is performed only when the request requires different handling dependent upon whether the data object is immutable.

19. The apparatus of claim 15 , wherein the data object is associated with a subset of the storage system having a plurality of subsets, wherein the predetermined threshold is configured and associated with the subset of the storage system containing the data object, and wherein the predetermined threshold is different from at least one predetermined threshold of another one of the plurality of subsets.

20. The apparatus of claim 15 , wherein committing the data object as the WORM object comprises associating a retention period with the data object during which the data object is protected from modification.

21. The apparatus of claim 20 , wherein associating the retention period with the data object comprises setting a time attribute of the data object to the time beyond the current time.

22. The apparatus of claim 21 , wherein the time attribute for retention period is a last access time (atime) attribute of the data object.

Assignments (13)
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: 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 Mar 4, 2010
From: DATA DOMAIN HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 024031/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2010
From: DATA DOMAIN LLC
To: DATA DOMAIN HOLDING, INC.
Reel/Frame 024022/0196 →
CONVERSION Recorded Mar 2, 2010
From: DATA DOMAIN, INC.
To: DATA DOMAIN LLC
Reel/Frame 024017/0605 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2008
From: HSU, WINDSOR W.
To: DATA DOMAIN, INC.
Reel/Frame 021464/0943 →