IP Library Granted Patent US 9,037,596
Granted Patent B2
US 9,037,596 · App. 13/566,178 · Granted May 19, 2015

System and method for committing data objects to be immutable

Inventor: Windsor W. Hsu (San Jose, CA)
Assignee: EMC Corporation
G06F3/0619G06F3/0637G06F3/0689
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 9,037,596
App. No.
13/566,178
Filed
Aug 3, 2012
Granted
May 19, 2015
Kind
B2
Examiner
LE, UYEN T
Art Unit
2157
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 (45)

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

receiving at a file system interface of a storage system a request from a client application for accessing a data object stored in a storage device of the storage system, wherein the request is an ordinary file system call associated with the file system;

in response to the request, decoding the request by a command decoder executed by a processor of the storage system to determine whether the request belongs to a predetermined category, including determining whether the request is to modify or delete content of the data object as part of the ordinary file system call;

in response to determining that the request belongs to the predetermined category, automatically determining by a state manager of the storage system whether the data object should be committed as a read-only object based on a predetermined policy, wherein the data object is not the read-only object prior to receiving the request, and wherein determining whether the data object should be committed as the read-only object is only performed when the request is to modify or delete content of the data object;

committing by the state manager the data object as the read-only object if it is determined that the data object should be committed as the read-only object;

modifying or deleting by an enforcement agent the data object according to the request as part of the ordinary file system call, if it is determined that the data object should not be committed as the read-only object; and

rejecting the request by returning an error to the client application as part of the ordinary file system call, if it is determined that the data object should be committed as the read-only object.

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

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

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

5. The method of claim 4 , 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.

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

7. The method of claim 1 , wherein determining whether the data object should be committed as a read-only object comprises determining whether the data object has been modified within a last predetermined period of time, and wherein the data object is committed as a read-only object if the data object has not been modified within a last predetermined period of time.

8. The method of claim 7 , wherein determining whether the data object has been modified within a last predetermined period of time comprises 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 is committed as a read-only object.

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

receiving at a file system interface of a storage system a request from a client application for accessing a data object stored in a storage device of the storage system, wherein the request is an ordinary file system call associated with the file system;

in response to the request, decoding the request by a command decoder executed by a processor of the storage system to determine whether the request belongs to a predetermined category, including determining whether the request is to modify or delete content of the data object as part of the ordinary file system call;

in response to determining that the request belongs to the predetermined category, automatically determining by a state manager of the storage system whether the data object should be committed as a read-only object based on a predetermined policy, wherein the data object is not the read-only object prior to receiving the request, and wherein determining whether the data object should be committed as the read-only object is only performed when the request is to modify or delete content of the data object;

committing by the state manager the data object as the read-only object if it is determined that the data object should be committed as the read-only object;

modifying or deleting by an enforcement agent the data object according to the request as part of the ordinary file system call, if it is determined that the data object should not be committed as the read-only object; and

rejecting the request by returning an error to the client application as part of the ordinary file system call, if it is determined that the data object should be committed as the read-only object.

10. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise examining the request to determine whether a result of an action associated with the request would likely be different if the data object was a read-only object, wherein determining whether the data object should be committed as the read-only object is performed if it is likely that the result of the action would be different if the data object was a read-only object.

11. The non-transitory computer-readable medium of claim 9 , wherein determining whether the data object should be committed as the read-only object is performed only when the request requires different handling dependent upon whether the data object is a read-only object.

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

13. The non-transitory computer-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 computer-readable medium of claim 13 , wherein the time attribute for retention period is a last access time (atime) attribute of the data object.

15. The non-transitory computer-readable medium of claim 9 , wherein determining whether the data object should be committed as a read-only object comprises determining whether the data object has been modified within a last predetermined period of time, and wherein the data object is committed as a read-only object if the data object has not been modified within a last predetermined period of time.

16. The non-transitory computer-readable medium of claim 15 , wherein determining whether the data object has been modified within a last predetermined period of time comprises 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 is committed as a read-only object.

17. A storage system, comprising:

a processor;

a storage device; and

memory coupled to the processor to store instructions, which when executed from the memory, cause the processor to perform operations, the operations including

receiving, at a file system interface of a file system, a request from a client application for accessing a data object stored in the storage device, wherein the request is an ordinary file system call associated with the file system,

in response to the request, decoding the request by a command decoder executed by the processor to determine whether the request belongs to a predetermined category, including determining whether the request is to modify or delete content of the data object as part of the ordinary file system call,

in response to determining that the request belongs to the predetermined category, automatically determining by a state manager whether the data object should be committed as a read-only object based on a predetermined policy, wherein the data object is not the read-only object prior to receiving the request, and wherein determining whether the data object should be committed as the read-only object is only performed when the request is to modify or delete content of the data object,

committing by the state manager the data object as the read-only object if it is determined that the data object should be committed as the read-only object,

modifying or deleting by an enforcement agent the data object according to the request as part of the ordinary file system call, if it is determined that the data object should not be committed as the read-only object, and

rejecting the request by returning an error to the client application as part of the ordinary file system call, if it is determined that the data object should be committed as the read-only object.

18. The system of claim 17 , wherein the request is examined to determine whether a result of an action associated with the request would likely be different if the data object was a read-only object, wherein determining whether the data object should be committed as the read-only object is performed if it is likely that the result of the action would be different if the data object was a read-only object.

19. The system of claim 17 , wherein determining whether the data object should be committed as the read-only object is performed only when the request requires different handling dependent upon whether the data object is a read-only object.

20. The system of claim 17 , wherein committing the data object as the read-only object comprises associating a retention period with the data object during which the data object is protected from modification.

21. The system of claim 20 , 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.

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

23. The system of claim 17 , wherein determining whether the data object should be committed as a read-only object comprises determining whether the data object has been modified within a last predetermined period of time, and wherein the data object is committed as a read-only object if the data object has not been modified within a last predetermined period of time.

24. The system of claim 23 , wherein determining whether the data object has been modified within a last predetermined period of time comprises 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 is committed as a read-only 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 Aug 10, 2012
From: DATA DOMAIN HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 028764/0826 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2012
From: DATA DOMAIN LLC
To: DATA DOMAIN HOLDING, INC.
Reel/Frame 028757/0001 →
CHANGE OF NAME Recorded Aug 8, 2012
From: DATA DOMAIN, INC.
To: DATA DOMAIN LLC
Reel/Frame 028747/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2012
From: HSU, WINDSOR W.
To: DATA DOMAIN, INC.
Reel/Frame 028728/0518 →
Continuity (2)
Continuation 12201957 · Aug 29, 2008
Related Publication 20120296922A1 · Nov 22, 2012