IP Library Granted Patent US 9,104,326
Granted Patent B2
US 9,104,326 · App. 12/945,915 · Granted Aug 11, 2015

Scalable block data storage using content addressing

Inventors: Shahar Frank (Ramat-HaSharon, IL); Erez Webman (Petach-Tikva, IL); Renen Hallak (Beit-YeHoshua, IL); Kobi Luz (Rechovot, IL); Irit Yadin-Lempel (Caesarea, IL); Yaron Segev (RaAnana, IL)
Assignee: EMC Corporation
G06F3/064G06F3/061G06F3/067G06F3/0641G06F3/0688
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,104,326
App. No.
12/945,915
Filed
Nov 15, 2010
Granted
Aug 11, 2015
Kind
B2
Art Unit
2139
USPC
711/161
Abstract

A device for scalable block data storage and retrieval uses content addressing. Data storage devices store data blocks, and are connected over a network to computing modules. The modules comprise control modules and data modules and carry out content addressing for both storage and retrieval. The network defines separate control paths via the control modules and data paths via the data modules.

Claims (46)

1. A device for scalable block data storage and retrieval using content addressing, said content addressing comprising using said content to define an address in which to place said content, the device comprising data storage devices operative to store said blocks, the data storage devices being connected over a network to computing modules, the computing modules comprising at least one of control modules, at least one of routing modules, and at least one of data modules, the modules being configured to carry out said content addressing to define locations in said storage and retrieval, said network defining separately control paths via said at least one of control modules, data paths via said at least one of data modules and distributing workload over the at least one of control modules and the at least one of data modules by the at least one of routing modules, such that data to be routed over said separate data paths is routed based on content thereof;

wherein said at least one of data modules are operative to compare hash values of write data with hash values of stored data, and when a match is found, to point to the matched data and avoid rewriting;

wherein when the hash values of write data do not match hash values of already stored data, said at least one of data modules are operative to write the write data and store the hash values of the write data;

wherein said at least one control modules are enabled to align an unaligned write of write data to said at least one of data modules; and

wherein each routing module is enabled to route data over multiple data paths, wherein each data path is through a control module, wherein the data path is routed based on an associated logical address.

2. The device of claim 1 , wherein said storage devices are random access storage devices.

3. The device of claim 1 , wherein said modules are combined into nodes on said network, and said nodes are connected over said network by a switch, said network comprising a remote direct memory access network.

4. The device of claim 1 , wherein said data storage is carried out with a granularity of 4 KB.

5. The device of claim 1 , wherein said at least one of control modules are operative to use said content addressing to ensure that identical data appearing a second time is supplied with a pointer and not written, thereby avoiding duplicate write operations.

6. The device of claim 1 , wherein said at least one of control modules are operative to control execution of read and write commands and said at least one of data modules are respectively connected to at least one of said storage devices and are operative, under control of a respective control module, to pass data to or from said at least one respectively connected storage devices and to retain extracts of data stored in said at least one respectively connected storage device, said extracts being for said content addressing.

7. The device of claim 6 , further comprising hash modules, said hash modules being operative to calculate hash values for data which is the subject of storage or retrieval commands, the hash value being usable to provide said extracts for said content addressing.

8. The device of claim 7 , wherein said hash modules are configured to use a hash function having an output range which is mapped evenly over said storage devices.

9. The device of claim 1 , further comprising routing modules, said routing modules being operative to terminate storage and retrieval operations and to distribute command parts of said operations to ones of said at least one of control modules selected to retain balanced usage within said device.

10. The device of claim 9 , wherein said routing modules comprise hash calculation units operative to calculate hash values for data of said operations.

11. The device of claim 9 , wherein said routing modules are operative to incorporate said hash values into digests which are associated with pages of said data.

12. The device of claim 9 , wherein said routing modules are operative to use hash values of data associated with said operations to select one of said data modules for said distribution.

13. A method for scalable block data storage and retrieval using content addressing, said content addressing comprising using said content to define an address in which to place said content, the method comprising connecting data storage devices, to store said blocks, over a network to computing modules, the modules comprising control modules, routing modules and data modules, the modules carrying out content addressing to define locations of said storage and retrieval, defining separately control paths via said control modules and data paths via said data modules and distributing workload over the at least one of control modules and the at least one of data modules by the at least one of routing modules, data travelling over said data paths being routed according to content thereof;

wherein said data modules compare hash values of write data with hash values of stored data, and when a match is found, point to the matched data and avoid rewriting;

wherein when the hash values of write data do not match hash values of already stored data, said at least one of data modules are operative to write the write data and store the hash values of the write data;

wherein said at least one control modules are enabled to align an unaligned write of write data to said at least one of data modules; and

wherein each routing module is enabled to route data over multiple data paths, wherein each data path is through a control module, wherein the data path is routed based on an associated logical address.

14. The method of claim 13 , wherein said storage devices are random access storage devices.

15. The method of claim 13 , comprising combining said modules into nodes on said network, and connecting said nodes over said network by a switch, said network comprising a remote direct memory access network.

16. The method of claim 13 , wherein said control modules control execution of read and write commands and said data modules are respectively connected to at least one of said storage devices and, under control of a respective control module, pass data to or from said at least one respectively connected storage devices and retain extracts of data stored in said at least one respectively connected storage device, said extracts being for said content addressing.

17. The method of claim 16 , further comprising connecting hash modules to said network, and at said hash modules calculating hash values for data which is the subject of storage or retrieval commands, the hash value providing said extracts for said content addressing.

18. The method of claim 13 , further comprising connecting routing modules to said network, and at said routing modules terminating storage and retrieval operations and distributing command parts of said operations to ones of said control modules selected to retain balanced usage within said device.

19. The method of claim 18 , comprising calculating, at said routing module, hash values for data being the subject of said operations.

20. The method of claim 18 , wherein said routing modules use hash values of data associated with said operations to select one of said data modules for said distribution.

21. A method of expandable content addressable data storage comprising:

hashing incoming data into hash digests using a hashing function having an output space, to provide content addressing by which to store said incoming data into memory;

initially providing a plurality of modules including control modules, routing modules and data storage modules for physical management of said data, said physical data management comprising mapping said hash function output space evenly over said data storage modules;

maintaining said hashed incoming data as a single content addressable storage pool for virtual management of said data; thereby to provide a structure for content addressable memory which is physically expandable without affecting the virtual management of the data;

wherein said data storage modules compare hash values of write data with hash values of stored data, and when a match is found, point to the matched data and avoid rewriting;

wherein when the hash values of write data do not match hash values of already stored data, said at least one of data storage modules are operative to write the write data and store the hash values of the write data;

wherein said at least one control modules are enabled to align an unaligned write of write data to said at least one of data modules;

wherein each routing module is enabled to route data over multiple data paths, wherein each data path is through a control module, wherein the data path is routed based on an associated logical address;

distributing a workload, using the routing modules, over the control modules and the data modules.

22. An expandable content addressable data storage system comprising:

hashing modules configured to hash incoming data into hash digests using a hashing function having an output space, to provide content addressing by which to store said incoming data into content-addressable memory;

control modules, routing modules and data storage modules for physical management of said data, said physical data management comprising mapping said hash function output space evenly over said data storage modules;

said hashing, control and switching modules being configured together to manage said hashed incoming data virtually as a single content addressable storage pool; thereby to provide a structure for content addressable memory which is physically expandable without affecting the virtual management of the data;

wherein said data storage modules compare hash values of write data with hash values of stored data, and when a match is found, point to the matched data and avoid rewriting;

wherein when the hash values of write data do not match hash values of already stored data, said at least one of data storage modules are operative to write the write data and store the hash values of the write data;

wherein said at least one control modules are enabled to align an unaligned write of write data to said at least one of data modules;

wherein said routing modules distributes a distributing a workload over the control modules and the data modules;

wherein each routing module is enabled to route data over multiple data paths, wherein each data path is through a control module, wherein the data path is routed based on an associated logical address.

Assignments (11)
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 Feb 6, 2013
From: XTREMIO LIMITED
To: EMC CORPORATION
Reel/Frame 029763/0054 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2010
From: FRANK, SHAHAR; WEBMAN, EREZ; HALLAK, RENEN; LUZ, KOBI; YADIN-LEMPEL, IRIT; SEGEV, YARON
To: XTREMIO LTD.
Reel/Frame 025382/0921 →
Continuity (1)
Related Publication 20120124282A1 · May 17, 2012