NETWORK SYSTEM, NETWORK NODE AND COMMUNICATION METHOD
First Claim
1. A network system being configured to execute I/O commands and application commands in parallel and comprising a network and at least one network node,wherein the at least one network node is connected to the network via a network adapter and is configured to run several processes and/or threads in parallel,wherein the at least one network node comprises or is configured to establish a common communication channel (C-channel) to be used by the several processes and/or threads for data communication with the network via the network adapter,wherein the C-channel comprises or is established to comprise a work queue (WQ) for execution of I/O commands and a completion queue (CQ) for indication of a status of I/O commands, andwherein the at least one network node, especially its comprised or to be established C-channel, is configured for an exclusive access of precisely one single process or thread out of the several processes and/or threads to the CQ of the C-channel at a particular time.
1 Assignment
0 Petitions
Accused Products
Abstract
Network system being configured to execute I/O commands and application commands in parallel and comprising a network and at least one network node, wherein the at least one network node is connected to the network via a network adapter and is configured to run several processes and/or threads in parallel, wherein the at least one network node comprises or is configured to establish a common communication channel (C-channel) to be used by the several processes and/or threads for data communication with the network via the network adapter, wherein the C-channel comprises or is established to comprise a work queue (WQ) for execution of I/O commands and a completion queue (CQ) for indication of a status of I/O commands, and wherein the at least one network node, especially its comprised or to be established C-channel, is configured for an exclusive access of precisely one single process or thread out of the several processes and/or threads to the CQ of the C-channel at a particular time.
-
Citations
21 Claims
-
1. A network system being configured to execute I/O commands and application commands in parallel and comprising a network and at least one network node,
wherein the at least one network node is connected to the network via a network adapter and is configured to run several processes and/or threads in parallel, wherein the at least one network node comprises or is configured to establish a common communication channel (C-channel) to be used by the several processes and/or threads for data communication with the network via the network adapter, wherein the C-channel comprises or is established to comprise a work queue (WQ) for execution of I/O commands and a completion queue (CQ) for indication of a status of I/O commands, and wherein the at least one network node, especially its comprised or to be established C-channel, is configured for an exclusive access of precisely one single process or thread out of the several processes and/or threads to the CQ of the C-channel at a particular time.
-
2. The network system according to claim 1, wherein the at least one network node, especially its comprised or to be established C-channel, is configured for an exclusive access of the precisely one single process or thread out of the several processes and/or threads to the CQ and to the WQ of the said C-channel at a particular time.
-
3. The network system according to claim 1, wherein the WQ and the CQ are established or to be established in a common memory area of the memory of the at least one network node.
-
4. The network system according to claim 1, wherein at least one of the WQ and the CQ, preferably the WQ and the CQ, is/are implemented or to be implemented based on (a) ring buffer/ring buffers.
-
5. The network system according to claim 1, wherein the C-channel is configured or to be configured for insertion of working queue elements (WQE) into the WQ and for removal of completion queue elements (CQE) from the CQ.
-
6. The network system according to claim 1, wherein the at least one network node, especially its comprised or to be established C-channel, is configured or to be configured in such a manner that all completion queue elements (CQE) in the CQ will be removed from the CQ by the precisely one single process or thread when the precisely one single process or thread operates on the CQ.
-
7. The network system according to claim 1, wherein the exclusive access of the precisely one single process or thread to the CQ, to the WQ or to the CQ and the WQ is implemented or to be implemented by means of a synchronization primitive, wherein preferably the C-channel is provided with or configured to be provided with the synchronization primitive.
-
8. The network system according to claim 7, wherein the WQ and the CQ are established or to be established in a common memory area of the memory of the at least one network node, and wherein the synchronization primitive is established or to be established together with the WQ and the CQ in said common memory area of the memory of the at least one network node.
-
9. The network system according to claim 1, wherein the exclusive access of the precisely one single process or thread to the CQ, to the WQ or to the CQ and the WQ is implemented or to be implemented by using a unique counter, wherein preferably the C-channel is provided or configured to be provided with the unique counter.
-
10. The network system according to claim 9, wherein the WQ and the CQ are established or to be established in a common memory area of the memory of the at least one network node, and wherein the unique counter is established or to be established together with the WQ and the CQ in said common memory area of the memory of the at least one network node.
-
11. The network system according to claim 1, wherein the at least one network node, especially its comprised or to be established C-channel, is configured or to be configured in such a manner that if the precisely one single process or thread currently having the exclusive access detects a communication error on the network, the C-channel is blocked for further communication.
-
12. The network system according to claim 1, wherein the C-channel is configured or to be configured for insertion of working queue elements (WQE) into the WQ and for removal of completion queue elements (CQE) from the CQ, and wherein the at least one network node comprises or is configured to establish several common communication channels (C-channels) which can be used by the several processes and/or threads for data communication with the network via one or more network adapter(s), and/or in that the at least one network node comprises several network adapters for connecting the at least one network node to the network.
-
13. The network system according to claim 1, comprising several network nodes which are connected, in the network, by network paths with each other and which are configured in conformity with the at least one network node of claim 1.
-
14. The network system according to claim 1,
wherein the C-channel of at least one network node is configured or is to be configured for handling one or more extended working queue element(s) (EWQE), preferably for inserting the extended working queue element(s) into the WQ, wherein the one or more EWQE comprise(s) a set of several WQE and an execution order defining in which order these several WQE have to be executed or wherein the one or more EWQE comprise(s) pointers to several WQE and to an execution order defining in which order these several WQE have to be executed.
-
15. The network system according to claim 1, wherein the at least one network node, especially its comprised or to be established C-channel, is provided with a timer function which is configured to limit, for a process or thread entering the CQ, an execution time of said process or thread in the CQ.
-
16. The network system according to claim 15, wherein the C-channel is configured or to be configured for insertion of working queue elements (WQE) into the WQ and for removal of completion queue elements (CQE) from the CQ, and wherein the timer function is configured as follows:
- if the process or thread that entered the CQ tries to remove a non-existing CQE from the CQ, then an exclusive access of said process or thread that entered the CQ is suspended if a predetermined time after initialization of the timer function has passed.
-
17. The network system according to claim 15, wherein the timer function is configured as follows:
- if the process or thread that entered the CQ tries to get the exclusive access, preferably by acquiring a/the synchronization primitive, and if said exclusive access cannot be granted, then the execution time of said process or thread in the CQ is suspended if a predetermined time after initialization of the timer function has passed.
-
18. The network system according to claim 1 when referring back to claim 13, wherein at least one of the several network nodes is configured to run a daemon process which is configured to allow this network node to get access to the C-channel of another one out of the several network nodes.
-
19. The network system according to claim 18, wherein the network system, i.e. all network nodes thereof, is configured for exclusive access of all processes and threads running on any one out of the several network nodes, i.e. if a specific process or thread running on a specific one out of the several network nodes accesses the CQ of an arbitrary one out of the several network nodes, no other process and no other thread running on any one of the several network nodes is allowed to have access to said CQ of said arbitrary one out of the several network nodes at the same time.
-
20. The network system according to claim 1, further including a network node configured in conformity therewith.
-
21. A communication method of using a network system being configured to execute I/O commands and application commands in parallel and comprising a network and at least one network node, wherein the at least one network node is connected to the network via a network adapter and is configured to run several processes and/or threads in parallel, wherein the at least one network node comprises or is configured to establish a common communication channel (C-channel) to be used by the several processes and/or threads for data communication with the network via the network adapter,
wherein the C-channel comprises or is established to comprise a work queue (WQ) for execution of I/O commands and a completion queue (CQ) for indication of a status of I/O commands, and wherein the at least one network node, especially its comprised or to be established C-channel, is configured for an exclusive access of precisely one single process or thread out of the several processes and/or threads to the CQ of the C-channel at a particular time, the method comprising: -
providing the network system being configured to execute I/O commands and application commands in parallel, and in which the at least one network node of this network system is connected to the network of the network system via the network adapter of the network system and is configured to run several processes and/or threads in parallel; and providing the at least one network node being configured to establish a common communication channel (C-channel) to be used by the several processes and/or threads for data communication with the network via the network adapter in such a manner that the C-channel comprises a work queue (WQ) for execution of I/O commands and a completion queue (CQ) for indication of a status of I/O commands, in that the at least one network node, especially its established C-channel, is configured for an exclusive access of precisely one single process or thread out of the several processes and/or threads to the CQ of the C-channel at a particular time, and in that the C-channel is used by the several processes and/or threads for data communication with the network via the network adapter.
-
Specification