Patent ID: 8732386

Claim:
A global shared flash-memory system, comprising: a plurality of compute nodes, wherein each compute node of the plurality of compute nodes is a distinct physical machine and comprises: a flash memory for storing homed objects in non-volatile solid-state memory cells; a processor for executing an application program; a volatile memory, coupled to the processor, for storing cached objects, wherein the cached objects include copies of remote homed objects stored at remote compute nodes in the plurality of compute nodes, wherein each homed object, including the homed objects stored in the flash memory and the remote homed objects stored at remote compute nodes, has a respective single home node; a network interface controller (NIC), coupled by a network to other compute nodes, and responsive to the processor, that sends local copies of the homed objects stored in the flash memory to a first compute node in the plurality of compute nodes, and that receives from a second compute node in the plurality of compute nodes remote copies of the remote homed objects stored in the flash memory of the second compute node; a Sharing Data Fabric (SDF) component executing on the processor, that enables storing the remote copies of the remote homed objects received by the NIC into the volatile memory as the cached objects, wherein the SDF component stores objects using a single global address space that is also used by SDF components residing on respective other nodes of the plurality of compute nodes, wherein the application program executing on the processor accesses the cached objects from the volatile memory, including cached objects that are remote copies of the remote homed objects stored in the flash memory of the remote compute nodes in the plurality of compute nodes; wherein the SDF component is configured to determine the home node for the homed objects; and wherein the SDF component sends copies of homed objects stored in the flash memory to other compute nodes in the plurality of compute nodes through the network for storage as cached objects in said other compute nodes.