1. A container comprising:
a container body defining a first body end, a second body end, an internal surface and an external su face;
a removable tray within the container body;
a membrane enclosing the first body end and the removable tray; and
at least two fingers extending upwardly from a bottom portion of the removable tray and that do not extend beyond the membrane.
2. The container of claim 1, wherein the container further comprises an overcap that encloses the membrane.
3. The container of claim 1, wherein the container body first body end further comprises a first end lip that extends a portion of a perimeter of the first body end.
4. The container of claim 1, wherein the removable tray comprises the same shape as the container body.
5. The container of claim 1, wherein the removable tray is a different shape as the container body.
6. The container of claim 1, wherein the membrane further comprises a pull tab.
7. The container of claim 1, wherein the at least two upwardly extending fingers are of the same shape.
8. The container of claim 1, wherein the container further comprises a housing that is securely fit between the at least two upwardly extending finger.
9. A container comprising:
a container body defining a first body end, a second body end, an internal surface and an external surface;
a removable tray within the container body;
a membrane enclosing the first body end and the removable tray; and
a ridge located on at least a portion of an external surface of the removable tray that mates with corresponding structure of internal surface of the container and that is located below the membrane.
10. The container of claim 9, wherein the container further comprises an overcap that encloses the membrane.
11. The container of claim 9, wherein the container body first body end further comprises a first end lip that extends a portion of a perimeter of the first body end.
12. The container of claim 9, wherein the removable tray comprises the same shape as the container body.
13. The container of claim 9, wherein the removable tray is a different shape as the container body.
14. The container of claim 9, wherein the membrane further comprises a pull tab.
15. The container of claim 9, wherein the internal surface of the container body further comprises a mating groove that mates with the ridge of the removable tray.
16. The container of claim 9, wherein the ridge of the removable tray is shaped a half-circle.
17. A container comprising:
a container body defining a first body end, a second body end, an internal surface and an external surface;
a removable tray within the container body;
a membrane enclosing the first body end and the removable tray;
at least two fingers extending upwardly from a bottom portion of the removable tray and that do not extend beyond the membrane; and
a ridge located on at least a portion of an external surface of the removable tray that mates with corresponding structure of internal surface of the container and that is located below the membrane.
18. The container of claim 17, wherein the container further comprises an overcap that encloses the membrane.
19. The container of claim 17, wherein the container further comprises a second removable tray within the container body and positioned underneath the removable tray.
20. The container of claim 19, wherein the container further comprises a third removable tray within the container body and positioned underneath the second removable tray.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method, in a data processing system, for performing a remote direct memory access operation, the method comprising:
storing a virtual address to physical address translation of a pinned memory buffer and an access protection key in a translation protection table in a network interface controller;
responsive to receiving in the network interface controller a hash value of data to be copied from a source address in a source node to a destination address in a destination node in the remote direct memory access operation, performing, by the network interface controller, a lookup operation in the translation protection table in the network interface controller to match the hash value to a hash value for data existing in memory of the destination node; and
responsive to the network interface controller finding a match in the translation protection table at the virtual address of the pinned memory buffer, completing the remote direct memory access operation without transferring the data between the source node and the destination node, updating, by the network interface controller, the translation protection table to write the access protection key, the hash value, and a validinvalid bit in association with the destination address.
2. (canceled)
3. The method of claim 1, further comprising:
responsive to the network interface controller finding a match at a given memory location that is different from the destination address, performing a local copy operation to copy the data from the given memory location to the destination memory locations.
4. The method of claim 1, wherein the remote direct memory access operation is a remote direct memory access write operation, the method further comprising:
responsive to the network interface controller finding a match in the translation protection table, sending, by the network interface controller, an acknowledgement message to the source node.
5. The method of claim 4, the method further comprising:
responsive to the network interface controller not finding a match, sending, by the network interface controller, a negative acknowledgement message.
6. The method of claim 5, wherein responsive to receiving the negative acknowledgement message, the source node performs a traditional remote direct memory access write operation.
7. The method of claim 4, wherein source node computes a hash value of data to be copied from the source address at the source node to the destination address at the destination node and wherein the source node sends the computed hash value to the network interface controller.
8. The method of claim 1, wherein the remote direct memory access operation is a remote direct memory access read operation, the method further comprising:
sending, by the network interface controller, the source address to the source node in association with the remote direct memory access read operation; and
receiving, by the network interface controller, the hash value from the source node, wherein source node computes a hash value of data to be copied from the source address at the source node to the destination address at the destination node and wherein the source node sends the computed hash value to the network interface controller in response to receiving the source address from the destination node.
9. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a network interface controller, causes the network interface controller to;
store a virtual address to physical address translation of a pinned memory buffer and an access protection key in a translation protection table in a network interface controller;
responsive to receiving in the network interface controller a hash value of data to be copied from a source address in a source node to a destination address in a destination node in the remote direct memory access operation, perform, a lookup operation in the translation protection table in the network interface controller to match the hash value to a hash value for data existing in memory of the destination node; and
responsive to the network interface controller finding a match in the translation protection table at the virtual address of the pinned memory buffer, complete the remote direct memory access operation without transferring the data between the source node and the destination node, updating by, the network interface controller, the translation protection table to write the access protection key, the hash value, and a validinvalid bit in association with the destination address.
10. (canceled)
11. The computer program product of claim 9, wherein the computer readable program further causes the network interface controller to:
responsive to the network interface controller finding a match at a given memory location that is different from the destination address, perform a local copy operation to copy the data from the given memory location to the destination memory location.
12. The computer program product of claim 9, wherein the remote direct memory access operation is a remote direct memory access write operation, wherein the computer readable program further causes the network interface controller to:
responsive to the network interface controller finding a match in the translation protection table, send an acknowledgement message to the source node.
13. The computer program product of claim 12, wherein the computer readable program further causes the network interface controller to:
responsive to the network interface controller not finding a match, send a negative acknowledgement message.
14. The computer program product of claim 9, wherein the remote direct memory access operation is a remote direct memory access read operation, wherein the computer readable program further causes the network interface controller to:
send, by the network interface controller, the source address to the source node in association with the remote direct memory access read operation; and
receive the hash value from the source node, wherein source node computes a hash value of data to be copied from the source address at the source node to the destination address at the destination node and wherein the source node sends the computed hash value to the network interface controller in response to receiving the source address from the destination node.
15. (canceled)
16. (canceled)
17. An apparatus, comprising:
a network interface controller comprising a translation protection table; and
a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed by the network interface controller, causes the network interface controller to:
store a virtual address to physical address translation of a pinned memory buffer and an access protection key in a translation protection table in a network interface controller;
responsive to receiving in the network interface controller a hash value of data to be copied from a source address in a source node to a destination address in a destination node in the remote direct memory access operation, perform a lookup operation in the translation protection table in the network interface controller to match the hash value to a hash value for data existing in memory of the destination node; and
responsive to the network interface controller finding a match in the translation protection table at the virtual address of the pinned memory buffer, complete the remote direct memory access operation without transferring the data between the source node and the destination node, updating, by the network interface controller, the translation protection table to write the access protection key, the hash value, and a validinvalid bit in association with the destination address.
18. (canceled)
19. The apparatus of claim 17, wherein the computer readable program further causes the network interface controller to:
responsive to the network interface controller finding a match at a given memory location that is different from the destination address, perform a local copy operation to copy the data from the given memory location to the destination memory location.
20. The apparatus of claim 17, wherein the remote direct memory access operation is a remote direct memory access write operation, wherein the computer readable program further causes the network interface controller to:
responsive to the network interface controller finding a match in the translation protection table, send an acknowledgement message to the source node.
21. The apparatus of claim 20, wherein the computer readable program further causes the network interface controller to:
responsive to the network interface controller not finding a match, send a negative acknowledgement message.
22. The apparatus of claim 17, wherein the remote direct memory access operation is a remote direct memory access read operation, wherein the computer readable program further causes the network interface controller to:
send, by the network interface controller, the source address to the source node in association with the remote direct memory access read operation; and
receive the hash value from the source node, wherein source node computes a hash value of data to be copied from the source address at the source node to the destination address at the destination node and wherein the source node sends the computed hash value to the network interface controller in response to receiving the source address from the destination node.
23. The computer program product of claim 13, wherein responsive to receiving the negative acknowledgement message, the source node performs a traditional remote direct memory access write operation.
24. The computer program product of claim 12, wherein source node computes a hash value of data to be copied from the source address at the source node to the destination address at the destination node and wherein the source node sends the computed hash value to the network interface controller.
25. The apparatus of claim 20, wherein source node computes a hash value of data to be copied from the source address at the source node to the destination address at the destination node and wherein the source node sends the computed hash value to the network interface controller.