Patent ID: 8407377

Claim:
A method for writing data, comprising: receiving, from a client, a request to write data, wherein the data is located in client memory; determining, by a storage appliance, a first location in a first memory to write a first copy of the data, a second location in a second memory to write a second copy of the data, wherein the first memory is located in a first storage module comprising a first persistent storage and the second memory is located in a second storage module comprising a second persistent storage, wherein the storage appliance comprises the first storage module and the second storage module; programming a direct memory access (DMA) engine to read the data from the client memory and issue a first write request to a multicast address, wherein the first location, the second location, and a third location are associated with the multicast address; after programming: receiving, from the DMA engine, the first request at a switch in a switch fabric in the storage appliance; in response to receiving the first request, generating, in the switch, a second request to write the first copy to the first location, a third request to write the second copy to the second location, and a fourth request to write the third copy to the third location, wherein the third location is in a third memory in a control module in the storage appliance; wherein the first copy of the data is written to the first location in response to the second request; wherein the second copy of the data is written to the second location in response to the third request; wherein the third copy of the data is written to the third location in response to the fourth request; wherein the DMA engine reads the data from the client memory; wherein the first memory, the second memory, the third memory, and, at least a portion of the client memory are part of a storage fabric accessible by a unified address space.