In some embodiments, each page of dynamic memory in the system can be a local copy of some other memory, i.e., an alternate flash memory or a networked attached flash memory. This flash memory may be centrally located in a flash appliance accessible to all of the nodes in the cluster, or it may be distributed in parts throughout the cluster, on one or more nodes (e.g., on PCI cards including flash memory on one or more nodes).
Such an array of flash memory is referred to herein, without loss of generality, as a “network-attached memory.” The network-attached memory (also referred to herein as a “NAM”) may be composed itself of one more banks of memory distributed amongst the nodes of the cluster. In various embodiments, the network-attached memory can be implemented using memory technologies, such as PCM, 3D-XPoint, hard disk drives, etc., as described above, with the techniques described herein variously adapted, as applicable. An example of a network-attached memory is described in further detail below.
The network-attached memory can be used as an additional layer of memory in a TidalPod. In one example embodiment, the network-attached memory can be considered as the “real” home of all memory in the system (e.g., TidalPod). When the network-attached memory is considered or used or configured in this manner, then parts of the network-attached memory may temporarily reside on each node, for example, in the dynamic memory of the node. When considered in this way, the memory in each node can, in some embodiments, be used as a cache of the network-attached memory.
An example of a network-attached memory appliance is described in further detail below in conjunction with