US9648102B1ActiveUtility

Memcached server functionality in a cluster of data processing nodes

98
Assignee: III HOLDINGS 2 LLCPriority: Dec 27, 2012Filed: Dec 27, 2012Granted: May 9, 2017
Est. expiryDec 27, 2032(~6.5 yrs left)· nominal 20-yr term from priority
H04L 67/28H04L 67/1097G06F 15/167G06F 17/3048G06F 17/3033H04L 67/56G06F 16/24552G06F 16/2255
98
PatentIndex Score
79
Cited by
467
References
24
Claims

Abstract

A method is performed by a first server on a chip (SoC) node that is one instance of a plurality of nodes within a cluster of nodes. An operation is performed for determine if a second one of the SoC nodes in the cluster has data stored thereon corresponding to a data identifier in response to receiving a data retrieval request including the data identifier. An operation is performed for determining if a remote memory access channel exists between the SoC node and the second one of the SoC nodes. An operation is performed for access the data from the second one of the SoC nodes using the remote memory access channel after determine that the second one of the SoC nodes has the data stored thereon and that the remote memory access channel exists between the SoC node and the second one of the SoC nodes.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 determining, by one or more processors on a first server on a first SoC node, if a second SoC node has data stored thereon corresponding to a data identifier in response to the second SoC node receiving a data retrieval request from the first SoC node including the data identifier, wherein the first SoC node and the second SoC node are within a cluster of a plurality of nodes; 
 determining, by the one or more processors, if a remote memory access channel exists between the first SoC node and the second SoC node; and 
 accessing, by the one or more processors, the data from the second SoC node using the remote memory access channel after determining that the second SoC node has the data stored thereon and that the remote memory access channel exists between the first SoC node and the second SoC node, wherein a response to the second SoC node receiving a data retrieval request from the first SoC node including the data identifier comprises:
 installing, by one or more processors on the second SoC node, a mapping of a window on the second SoC node to a physical address, corresponding to the data retrieval request, into a memory management unit on the second SoC node, wherein the mapping is granted as read-only, write-only, or read-write; 
 installing, by a remote bus processor on the second SoC node, a mapping that designates that the first SoC node has access to the window on the second SoC node; 
 returning, by one or more processors on the second SoC node, a base intermediate physical address of the window on the second SoC node; and 
 installing, by one or more processors on the first SoC node, a mapping into a local memory management unit mapping from a window on the first SoC node to the base intermediate physical address of the window on the second SoC node. 
 
 
     
     
       2. The method of  claim 1 , said determining if a second SoC node has data stored thereon corresponding to a data identifier comprises correlating the data identifier to a value corresponding to a node identifier of the second SoC node. 
     
     
       3. The method of  claim 1 , wherein said accessing the data from the second SoC node comprises transmitting the data for reception by the first SoC node using the remote memory access channel. 
     
     
       4. The method of  claim 1 , wherein said accessing the data from the second SoC node comprises accessing the data from within a memory address space of the second SoC node. 
     
     
       5. The method of  claim 4 , wherein said accessing the data from within a memory address space of the second SoC node comprises directly accessing the memory address space of the second SoC node. 
     
     
       6. The method of  claim 5 , wherein said accessing the data from within a memory address space of the second SoC node comprises transmitting the data for reception by the first SoC node using the remote memory access channel. 
     
     
       7. The method of  claim 5 , wherein said determining if a second SoC node has data stored thereon corresponding to a data identifier comprises correlating the data identifier to a value corresponding to a node identifier of the second SoC node. 
     
     
       8. The method of  claim 1 , wherein:
 the first SoC node comprises a SoC node density configuration enabling the first SoC node to serve in a role of providing information computing resources to one or more data processing systems; and 
 the second SoC node comprises a memory configuration enabling the second SoC node to serve in a role of enabling memory resources thereof to be allocated to caching data for applications running on the one or more data processing systems. 
 
     
     
       9. The method of  claim 8 , wherein:
 said accessing the data from the second SoC node comprises accessing the data from within a memory address space of the second SoC node; and 
 said determining if a second SoC node has data stored thereon corresponding to a data identifier comprises correlating the data identifier to a value corresponding to a node identifier of the second SoC node. 
 
     
     
       10. The method of  claim 9 , wherein said accessing the data from within a memory address space of the second SoC node comprises directly accessing the memory address space of the second SoC node. 
     
     
       11. A non-transitory computer-readable medium having tangibly embodied thereon and accessible therefrom a set of instructions interpretable by one or more data processing devices of a first SoC node in a cluster of SoC nodes, wherein the set of instructions is configured to cause the one or more data processing devices to implement operations for:
 determining if a second SoC node in the cluster has data stored thereon corresponding to a data identifier in response to the second SoC node receiving a data retrieval request from the first SoC node including the data identifier; 
 determining if a remote memory access channel exists between the first SoC node and the second SoC node; and 
 accessing the data from the second SoC node using the remote memory access channel after determining that the second SoC node has data stored thereon and that the remote memory access channel exists between the first and second SoC nodes, 
 wherein a response to the second SoC node receiving a data retrieval request from the first SoC node including the data identifier comprises: 
 installing a mapping of a window on the second SoC node to a physical address, corresponding to the data retrieval request, into a memory management unit on the second SoC node, wherein the mapping is granted as read-only, write-only, or read-write; 
 installing a mapping that designates that the first SoC node has access to the window on the second SoC node; 
 returning a base intermediate physical address of the window on the second SoC node; and 
 installing a mapping into a local memory management unit mapping from a window on the first SoC node to the base intermediate physical address of the window on the second SoC node. 
 
     
     
       12. The non-transitory computer-readable medium of  claim 11 , wherein said determining if a second SoC node in the cluster has data stored thereon corresponding to a data identifier comprises correlating the data identifier to a value corresponding to a node identifier of the second SoC node. 
     
     
       13. The non-transitory computer-readable medium of  claim 11 , wherein said accessing the data from the second SoC node comprises transmitting the data for reception by the first SoC node using the remote memory access channel. 
     
     
       14. The non-transitory computer-readable medium of  claim 11 , wherein said accessing the data from the second SoC node comprises accessing the data from within a memory address space of the second SoC node. 
     
     
       15. The non-transitory computer-readable medium of  claim 14 , wherein said accessing the data from within a memory address space of the second SoC node comprises directly accessing the memory address space of the second SoC node. 
     
     
       16. The non-transitory computer-readable medium of  claim 15 , wherein said accessing the data from within a memory address space of the second SoC node comprises transmitting the data for reception by the first SoC node using the remote memory access channel. 
     
     
       17. The non-transitory computer-readable medium of  claim 15 , wherein said determining if a second SoC node in the cluster has data stored thereon corresponding to the data identifier comprises correlating the data identifier to a value corresponding to a node identifier of the second SoC node. 
     
     
       18. A data processing system comprising:
 a first server on a first SoC node characterized by a SoC node density configuration; and 
 a second SoC node characterized by a memory configuration enabling the second SoC node to serve in a role of enabling memory resources thereof to be allocated to one or more other SoC nodes; 
 wherein the first SoC node is coupled to the second SoC node by a remote memory access channel; 
 wherein one or more processors of the first SoC node are configured for accessing and processing instructions for causing the first SoC node to determine if the second SoC node has data stored thereon corresponding to a data identifier received by the first SoC node in response to the second SoC node receiving a data retrieval request from the first SoC node including the data identifier; and 
 wherein one or more processors of the second SoC node are configured for accessing and processing instructions for causing the second SoC node to provide the data stored thereon to the first SoC node using the remote memory access channel, wherein a response to the second SoC node receiving a data retrieval request from the first SoC node including the data identifier comprises:
 installing, by one or more processors on the second SoC node, a mapping of a window on the second SoC node to a physical address, corresponding to the data retrieval request, into a memory management unit on the second SoC node, wherein the mapping is granted as read-only, write-only, or read-write; 
 installing, by a remote bus processor on the second SoC node, a mapping that designates that the first SoC node has access to the window on the second SoC node; 
 returning, by one or more processors on the second SoC node, a base intermediate physical address of the window on the second SoC node; and 
 installing, by one or more processors on the first SoC node, a mapping into a local memory management unit mapping from a window on the first SoC node to the base intermediate physical address of the window on the second SoC node. 
 
 
     
     
       19. The data processing system of  claim 18 , wherein the one or more processors of the first SoC node are further configured for accessing and processing instructions for causing the first SoC node to correlate the data identifier to a value corresponding to a node identifier of the second SoC node. 
     
     
       20. The data processing system of  claim 18 , wherein the one or more processors of the first SoC node are further configured for accessing and processing instructions for causing the first SoC node to transmit the data for reception by the first SoC node using the remote memory access channel. 
     
     
       21. The data processing system of  claim 18 , wherein the one or more processors of the first SoC node being configured for accessing and processing instructions for causing the first SoC node to access the data from the second SoC node using the remote memory access channel includes the one or more processors of the first SoC node being configured for accessing and processing instructions for causing the first SoC node to access the data from within a memory address space of the second SoC node. 
     
     
       22. The data processing system of  claim 21 , wherein the one or more processors of the first SoC node are further configured for accessing and processing instructions for causing the first SoC node to directly access the memory address space of the second SoC node. 
     
     
       23. The data processing system of  claim 22 , wherein the one or more processors of the first SoC node are further configured for accessing and processing instructions for causing the first SoC node to transmit the data for reception by the first SoC node using the remote memory access channel. 
     
     
       24. The data processing system of  claim 22 , wherein the one or more processors of the first SoC node are further configured for accessing and processing instructions for causing the first SoC node to correlate the data identifier to a value corresponding to a node identifier of the second SoC node.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.