1. A non-transitory computer-readable storage medium comprising computer executable instructions, which when executed by a processor, perform the following steps: receiving a first request for an external primary memory allocation, the first request received from an application logic unit of a device, wherein the first request for the external primary memory allocation is a request for memory that is external to the device but that is primary memory to the device; determining an allocation strategy for the external primary memory allocation in response to receipt of the first request, the allocation strategy comprising identification of a memory appliance on which to allocate a region of memory; allocating the region of memory by sending, over a network via a communication interface, a second request for allocation of the region of memory on the identified memory appliance; receiving, at the device, a request to allocate a slab of the external primary memory, the request to allocate the slab received from the application logic unit of the device; selecting, independent of the memory appliance, at the device in response to the request to allocate the slab, a subset of the previously allocated region of memory to be the slab; and mapping, at the device, the slab of the external primary memory into a virtual address space, wherein data in the slab is accessible over the communication interface with client-side memory access independent of a central processing unit of the identified memory appliance.