Distribution of messages to queues in a distributed computing environment
First Claim
1. A network adapter, comprising:
- a network interface, which is assigned a single network address in a communication network, and which is configured to receive, from one or more other nodes over the communication network, messages that are destined for processing by multiple threads in one or more processing cores of a network node comprising the network adapter, but are nevertheless addressed to the single network address, wherein each message comprises a header field comprising an identifier of a process running on a remote node that sent the message; and
circuitry, which is configured to;
hold a distribution rule for distributing the messages among multiple Receive Queues (RQs) that are accessible by the threads, wherein the distribution rule specifies a process-to-RQ mapping that maps one or more processes running on one or more remote nodes, by their respective identifiers, to each of the RQs;
receive a multi-packet message via the network interface;
extract from the header field of the received message a respective process identifier; and
select for the packets of the received message a respective RQ by mapping the extracted process identifier to the respective RQ using the process-to-RQ mapping.
3 Assignments
0 Petitions
Accused Products
Abstract
A network adapter includes a network interface and circuitry. The network interface is assigned a single network address in a communication network, and is configured to receive, from one or more other nodes over the communication network, messages that are destined for processing by multiple threads in one or more processing cores of a network node including the network adapter, but are nevertheless addressed to the single network address. The circuitry is configured to hold a distribution rule for distributing the messages among multiple Receive Queues (RQs) that are accessible by the threads, and to select for each message received via the network interface a respective RQ, by applying the distribution rule to the message.
8 Citations
18 Claims
-
1. A network adapter, comprising:
-
a network interface, which is assigned a single network address in a communication network, and which is configured to receive, from one or more other nodes over the communication network, messages that are destined for processing by multiple threads in one or more processing cores of a network node comprising the network adapter, but are nevertheless addressed to the single network address, wherein each message comprises a header field comprising an identifier of a process running on a remote node that sent the message; and circuitry, which is configured to; hold a distribution rule for distributing the messages among multiple Receive Queues (RQs) that are accessible by the threads, wherein the distribution rule specifies a process-to-RQ mapping that maps one or more processes running on one or more remote nodes, by their respective identifiers, to each of the RQs; receive a multi-packet message via the network interface; extract from the header field of the received message a respective process identifier; and select for the packets of the received message a respective RQ by mapping the extracted process identifier to the respective RQ using the process-to-RQ mapping. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
in a network adapter, which comprises a network interface that is assigned a single network address in a communication network, receiving messages from one or more other nodes over the communication network, wherein the messages are destined for processing by multiple threads in one or more processing cores of the network node but are nevertheless addressed to the single network address, and wherein each message comprises a header field comprising an identifier of a process running on a remote node that sent the message; holding a distribution rule for distributing the messages among multiple Receive Queues (RQs) that are accessible by the threads, wherein the distribution rule specifies a process-to-RQ mapping that maps one or more processes running on one or more remote nodes, by their respective identifiers, to each of the RQs; receiving a multi-packet message via the network interface; extracting from the header field of the received message a respective process identifier; and selecting for the packets of the received message a respective RQ by mapping the extracted process identifier to the respective RQ using the process-to-RQ mapping. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A network node, comprising:
-
one or more processing cores, which are configured to execute multiple threads; and a network adapter, which is configured to; connect to a communication network via a network interface, which is assigned a single network address in the communication network; receive from one or more other nodes over the communication network, via the network interface, messages that are destined for processing by the multiple threads, but are nevertheless addressed to the single network address, wherein each message comprises a header field comprising an identifier of a process running on a remote node that sent the message; hold a distribution rule for distributing the messages among multiple Receive Queues (RQs) that are accessible by the threads, wherein the distribution rule specifies a process-to-RQ mapping that maps one or more processes running on one or more remote nodes, by their respective identifiers, to each of the RQs; receive a multi-packet message via the network interface; extract from the header field of the received message a respective process identifier; and select for the packets of the received message a respective RQ by mapping the extracted process identifier to the respective RQ using the process-to-RQ mapping.
-
-
18. A computing system, comprising multiple network nodes connected to a communication network, each network node comprising one or more processing cores for executing multiple threads, wherein the network nodes are configured to:
-
exchange messages with one another over the communication network for performing a distributed application; and in a given network node; receive from one or more other nodes over the communication network, via a network interface for which a single network address is assigned in the communication network, messages that are destined for processing by multiple threads of the given network node, but are nevertheless addressed to the single network address; hold a distribution rule for distributing the messages among Receive Queues (RQs) that are accessible by the threads of the given network node, wherein the distribution rule specifies a process-to-RQ mapping that maps one or more processes running on one or more remote nodes, by their respective identifiers, to each of the RQs; receive a multi-packet message via the network interface; extract from the header field of the received message a respective process identifier; select for the packets of the received message a respective RQ by mapping the extracted process identifier to the respective RQ using the process-to-RQ mapping; and perform at least a portion of the distributed application using the threads.
-
Specification