IP Library › Granted Patent US 7,599,932
Granted Patent B2
US 7,599,932 · App. 11/584,433 · Granted Oct 6, 2009

Data storage using identifiers

Assignee: Data Domain, Inc.
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 7,599,932
App. No.
11/584,433
Filed
Oct 20, 2006
Granted
Oct 6, 2009
Kind
B2
Art Unit
2188
USPC
711/156
Abstract

A system and method are disclosed for processing a data stream. A data segment is received. It is determined whether the data segment has been previously stored. In the event that the data segment is determined not to have been previously stored, a unique identifier for specifying the data segment in a representation of the data stream is generated.

Claims (64)

1. A method for processing a data stream comprising:

receiving a data segment;

determining whether the data segment has been previously stored; and

in the event that the data segment is determined not to have been previously stored, generating a unique identifier for uniquely specifying the data segment in a representation of the data stream without probability of collision with a different data segment in the data stream; wherein

generating the unique identifier includes:

deriving a content derived summary based on content of the data segment;

determining whether a portion of the content derived summary has been previously stored; and

in the event that the portion of the content derived summary has not been previously stored, using the portion of the content derived summary as a unique identifier;

and wherein

the unique identifier is different from the content derived summary.

2. A method as recited in claim 1 , wherein no unique identifier for specifying the data segment in a representation of the data stream is generated in the event that the data segment is determined to have been previously stored.

3. A method as recited in claim 1 , wherein determining whether the data segment has been previously stored does not require using the unique identifier.

4. A method as recited in claim 1 , further comprising, in the event that the data segment is determined to have been previously stored, reusing a previously generated unique identifier associated with the data segment.

5. A method as recited in claim 1 , further comprising, in the event that the data segment is determined to have been previously stored, looking up a previously generated unique identifier associated with the data segment.

6. A method as recited in claim 1 , further comprising, in the event that the data segment is determined not to have been previously stored:

storing the data segment in a data segment storage location; and

recording the data segment storage location.

7. A method as recited in claim 6 , wherein the data segment storage location includes a memory address.

8. A method as recited in claim 1 , in the event that the data segment is determined not to have been previously stored, further including:

storing the data segment in a data segment storage location; and

updating a data structure for storing the content derived summary, the unique identifier, and the data segment storage location.

9. A method as recited in claim 1 in the event that the data segment is determined not to have been previously stored, further including:

storing the data segment in a data segment storage location; and

updating a data structure for storing the content derived summary, the unique identifier, and the data segment storage location; wherein

the data segment storage location is accessed given the unique identifier or given the content derived summary in the data structure.

10. A method as recited in claim 1 ,

in the event that the data segment is determined not to have been previously stored, further including:

storing the data segment in a data segment storage location; and

updating a data structure for storing the content derived summary, the unique identifier, and the data segment storage location; wherein

the data segment storage location is accessed given the unique identifier or given the content derived summary, using a single access of a storage device.

11. A method for processing a data stream as recited in claim 1 ,

in the event that the data segment is determined not to have been previously stored, further including:

storing the data segment in a data segment storage location; and

updating a data structure for storing the content derived summary, the unique identifier, and the data segment storage location; wherein

a region of the data structure that includes the data segment storage location is accessed given the unique identifier or given the content derived summary, using a single access of a storage device.

12. A method for processing a data stream as recited in claim 1 , wherein determining whether the data segment has been previously stored includes generating a content derived summary for the data segment; and the unique identifier is derived from the content derived summary.

13. A method as recited in claim 1 , in the event that the portion of the content derived summary has been previously stored, modifying a value that corresponds to the portion of the content derived summary to derive the unique identifier.

14. A system for processing data stream comprising:

an interface configured to receive a data segment;

a processor coupled to the interface, configured to:

determine whether the data segment has been previously stored; and

in the event that the data segment is determined not to have been previously stored, generate a unique identifier for uniquely specifying the data segment in a representation of the data stream without probability of collision with a different data segment in the data stream; wherein

generating the unique identifier includes:

deriving a content derived summary based on content of the data segment;

determining whether a portion of the content derived summary has been previously stored;

in the event that the portion of the content derived summary has not been previously stored, using the portion of the content derived summary as a unique identifier;

wherein

the unique identifier is different from the content derived summary.

15. A system as recited in claim 14 , wherein no unique identifier for specifying the data segment in a representation of the data stream is generated in the event that the data segment is determined to have been previously stored.

16. A system as recited in claim 14 , wherein determining whether the data segment has been previously stored does not require using the unique identifier.

17. A system as recited in claim 14 , the processor is further configured, in the event that the portion of the content derived summary has been previously stored, to modify a value that corresponds to the portion of the content derived summary to derive the unique identifier.

18. A computer program product for processing a data stream, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

receiving a data segment;

determining whether the data segment has been previously stored; and

in the event that the data segment is determined not to have been previously stored, generating a unique identifier uniquely specifying the data segment in a representation of the data stream without probability of collision with a different data segment in the data stream; wherein

generating the unique identifier includes:

deriving a content derived summary based on content of the data segment;

determining whether a portion of the content derived summary has been previously stored; and

in the event that the portion of the content derived summary has not been previously stored, using the portion of the content derived summary as a unique identifier;

and wherein

the unique identifier is different from the content derived summary.

19. A computer program product as recited in claim 18 , wherein no unique identifier for specifying the data segment in a representation of the data stream is generated in the event that the data segment is determined to have been previously stored.

20. A computer program product as recited in claim 18 , wherein determining whether the data segment has been previously stored does not require using the unique identifier.

21. A computer program product as recited in claim 18 , further comprising computer instructions for in the event that the portion of the content derived summary has been previously stored, modifying a value that corresponds to the portion of the content derived summary to derive the unique identifier.

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 5, 2010
From: DATA DOMAIN HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 024035/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2010
From: DATA DOMAIN LLC
To: DATA DOMAIN HOLDING, INC.
Reel/Frame 023998/0774 →
CONVERSION Recorded Feb 24, 2010
From: DATA DOMAIN, INC.
To: DATA DOMAIN LLC
Reel/Frame 023985/0374 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2010
From: PATTERSON, R. HUGO
To: DATA DOMAIN, INC.
Reel/Frame 023892/0339 →
Continuity (2)
Continuation 1061130900 · Jun 30, 2003
Related Publication 20070101074A1 · May 3, 2007