In some embodiments, the network-attached memory 1306 is an array of memory (1312) (e.g., bytes of flash memory). The NAM also includes a processor (1314) configured to implement a cache coherency protocol, as described herein. Multiple NAMs may be used for redundancy and/or resiliency. In this example, the network-attached memory appliance 1306 is centrally located in a flash appliance accessible to all of the nodes in the cluster. In other embodiments, the network attached memory may be distributed in parts throughout the cluster, on one or more nodes (where examples of portions of the NAM distributed across nodes 1304 are shown at 1316-1322).
Using the techniques described herein, pages of memory may be placed in the NAM, just as pages of memory can be put on any node in the system, as described above (e.g., when performing memory migration). In some embodiments, the network-attached memory appliance communicates with the other nodes in the TidalPod over the interconnect using a cache coherency protocol, which will be described in further detail below.