IP Library Granted Patent US 10,642,780
Granted Patent B2
US 10,642,780 · App. 15/444,345 · Granted May 5, 2020

Atomic access to object pool over RDMA transport network

Inventors: Shahaf Shuler (Karkom, IL); Noam Bloch (Bat Shlomo, IL); Gil Bloch (Zichron Yaakov, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F15/17331G06F9/526H04L67/1097G06F9/546G06F13/28
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 10,642,780
App. No.
15/444,345
Granted
May 5, 2020
Kind
B2
Abstract

In a fabric of network elements one network element has an object pool to be accessed stored in its memory. A request for atomic access to the object pool by another network element is carried out by transmitting the request through the fabric to the one network element, performing a remote direct memory access to a designated member of the object pool, atomically executing the request, and returning a result of the execution of the request through the fabric to the other network element.

Claims (31)

1. A method of communication comprising the steps of:

in a fabric of network elements including a first network element and a plurality of second network elements, the second network elements each having a memory and respective portions of a pool of objects in the memory;

initiating a request in the first network element for concurrent remote direct memory accesses to the pool of objects in the second network elements;

transmitting the request through the fabric to the second network elements;

accessing a designated member of the pool of objects by atomically executing the request;

returning respective reports of the execution of the request through the fabric from each of the second network elements to the first network element; and

verifying conjoint atomicity of the execution of the request from the respective reports,

wherein the pool of objects is arranged as a queue and the designated member is a next object of the queue, and accessing comprises at least one of dequeuing and enqueueing the next object.

2. The method according to claim 1 , wherein accessing comprises an atomic get operation that retrieves one of the objects of the pool.

3. The method according to claim 2 , wherein the pool is arranged as a first-in-first-out queue and returning respective reports comprises retrieving the next object.

4. The method according to claim 2 , wherein the pool is arranged as a last-in-first-out queue and returning respective reports comprises retrieving the next object.

5. The method according to claim 1 , wherein atomically executing the request is controlled independently by a device connected to a host computer.

6. The method according to claim 1 , wherein accessing comprises enqueueing a new object to the pool in an atomic push operation.

7. The method according to claim 6 , wherein the pool is arranged as a first-in-first-out queue.

8. The method according to claim 6 , wherein the pool is arranged as a last-in-first-out queue.

9. An apparatus of communication comprising:

a fabric of network elements including a first network element and a plurality of second network elements, the second network elements each having a memory and storing respective portions of a pool of objects in the memory, the first network element operative for:

initiating a request in the first network element for concurrent remote direct memory accesses to the pool of objects in the second network elements;

transmitting the request through the fabric to the second network elements;

accessing a designated member of the pool of objects by atomically executing the request;

returning respective reports of the execution of the request through the fabric from each of the second network elements to the first network element; and

verifying conjoint atomicity of the execution of the request from the respective reports,

wherein the pool of objects is arranged as a queue and the designated member is a next object of the queue, and accessing comprises at least one of dequeuing and enqueuing the next object.

10. The apparatus according to claim 9 , wherein accessing comprises an atomic get operation that retrieves one of the objects of the pool.

11. The apparatus according to claim 10 , wherein the pool is arranged as a first-in-first-out queue, and returning respective reports comprises retrieving the next object.

12. The apparatus according to claim 10 , wherein the pool is arranged as a last-in-first-out queue, and returning respective reports comprises retrieving the next object.

13. The apparatus according to claim 9 , wherein accessing comprises enqueuing the next object in an atomic push operation.

14. The apparatus according to claim 13 , wherein the pool is arranged as a first-in-first-out queue, further comprising adding a new object by enqueuing the next object.

15. The apparatus according to claim 13 , wherein the pool is arranged as a last-in-first-out queue, further comprising adding a new object by enqueuing the next object.

16. The apparatus according to claim 9 , wherein the network element is a network interface card.

17. The apparatus according to claim 16 , further comprising an atomic controller in the network interface card for independently controlling executing the request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2017
From: SHULER, SHAHAF; BLOCH, NOAM; BLOCH, GIL
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 041411/0799 →
Continuity (2)
Provisional Application 62304348 · Mar 7, 2016
Related Publication 20170255590A1 · Sep 7, 2017
Cited By (2)
US 12,259,832 US 12,699,664