IP Library Granted Patent US 9,459,957
Granted Patent B2
US 9,459,957 · App. 13/925,868 · Granted Oct 4, 2016

Offloading node CPU in distributed redundant storage systems

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,459,957
App. No.
13/925,868
Granted
Oct 4, 2016
Kind
B2
Abstract

A network interface includes a host interface for communicating with a node, and circuitry which is configured to communicate with one or more other nodes over a communication network so as to carry out, jointly with one or more other nodes, a redundant storage operation that includes a redundancy calculation, including performing the redundancy calculation on behalf of the node.

Claims (28)

1. A Network Interface Controller (NIC) that connects a compute node to a communication network, the NIC comprising:

a host interface, which is comprised in the NIC and which is configured for communicating with the compute node;

communication circuitry, which is comprised in the NIC and is configured to communicate with one or more other nodes over the communication network so as to carry out, jointly with one or more other nodes, a redundant storage operation involving data; and

offloading computation logic circuitry, which is comprised in the NIC and is configured to calculate redundancy information over at least part of the data of the redundant storage operation, while offloading a Central Processing Unit (CPU) of the compute node from calculating the redundancy information.

2. The NIC according to claim 1 , wherein the offloading computation logic circuitry is configured to calculate redundancy information over two or more data blocks.

3. The NIC according to claim 1 , wherein, by performing the redundancy calculation, the offloading computation logic circuitry is configured to recover a block based on one or more other blocks.

4. The NIC according to claim 1 , wherein, following updating of a data block, the offloading computation logic circuitry is configured to calculate an updated version of respective redundancy information depending on a previous version and an updated version of a data block.

5. The NIC according to claim 4 , wherein the offloading computation logic circuitry is configured to receive a delta block that is indicative of a difference between the updated and previous versions of the data block, and to calculate the updated version of the redundancy information based on the delta block.

6. The NIC according to claim 1 , wherein the offloading computation logic circuitry is configured to calculate partial redundancy information, and to send the partial information to another node for calculation of redundancy information.

7. The NIC according to claim 1 , wherein the offloading computation logic circuitry is configured to receive from another node partial redundancy information that was calculated based on one or more data blocks, and to calculate redundancy information based on the partial redundancy information.

8. A method, comprising:

in a Network Interface Controller (NIC) that connects a compute node to a communication network, carrying out, jointly with one or more other nodes, a redundant storage operation involving data, by communicating using the NIC with one or more other nodes over the communication network; and

using offloading computation logic circuitry, which is comprised in the NIC, calculating redundancy information over at least part of the data of the redundant storage operation, while offloading a Central Processing Unit (CPU) of the compute node from calculating the redundancy information.

9. The method according to claim 8 , wherein carrying out the redundancy calculation comprises calculating redundancy information over two or more data blocks.

10. The method according to claim 8 , wherein carrying out the redundancy calculation comprises recovering a block based on one or more other blocks.

11. The method according to claim 8 , wherein, following updating of a data block, calculating an updated version of respective redundancy information depending on a previous version and an updated version of the data block.

12. The method according to claim 11 , wherein calculating the updated version comprises receiving a delta block that is indicative of a difference between the updated and previous versions of the data block, and calculating the updated version of the redundancy information based on the delta block.

13. The method according to claim 8 , wherein carrying out the redundancy calculation comprises calculating partial redundancy information, and sending the partial information to another node for calculation of redundancy information.

14. The method according to claim 8 , wherein carrying out the redundancy calculation comprises receiving from another node partial redundancy information that was calculated based on one or more data blocks, and calculating redundancy information based on the partial redundancy information.

15. A compute node, comprising:

a Central Processing Unit (CPU); and

a Network Interface Controller (NIC), which is configured to connect the compute node to a communication network and to communicate with one or more other nodes over the communication network so as to carry out, jointly with one or more other nodes, a redundant storage operation involving data, wherein the NIC comprises offloading computation logic circuitry that is configured to calculate redundancy information over at least part of the data of the redundant storage operation, while offloading the CPU from calculating the redundancy information.

16. The compute node according to claim 15 , wherein the NIC is configured to calculate redundancy information over two or more data blocks.

17. The compute node according to claim 15 , wherein, by performing the redundancy calculation, the NIC is configured to recover a block based on one or more other blocks.

18. The compute node according to claim 15 , wherein, following updating of a data block, the NIC is configured to calculate an updated version of respective redundancy information depending on a previous version and an updated version of the data block.

19. The compute node according to claim 18 , wherein the NIC is configured to receive a delta block that is indicative of a difference between the updated and previous versions of the data block, and to calculate the updated version of the redundancy information based on the delta block.

20. The compute node according to claim 15 , wherein the NIC is configured to calculate partial redundancy information, and to send the partial information to another node for calculation of redundancy information.

21. The compute node according to claim 15 , wherein the NIC is configured to receive from another node partial redundancy information that was calculated based on one or more data blocks, and to calculate redundancy information based on the partial redundancy information.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 1ST INVENTOR PREVIOUSLY RECORDED ON REEL 030918 FRAME 0739. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 24, 2015
From: SELA, OMER; HAYUT, OFER; HAVIV, YARON; MULA, LIRON; BLOCH, NOAM; GETTER, NIR; SHACHAR, ARIEL
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 036012/0546 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2013
From: ZILBERBOIM, OMER; HAYUT, OFER; HAVIV, YARON; MULA, LIRON; BLOCH, NOAM; GETTER, NIR; SHACHAR, ARIEL
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 030918/0739 →