1. A computer implemented method, comprising: receiving a request to load data from a storage device into an in-memory database, wherein the in-memory database is distributed across a plurality of nodes, each node comprising a local memory; determining, by at least one processor, a preferred one of the plurality of nodes onto which to load the data from the storage device based on a bitmap indicating the preferred node based on a workload of the plurality of nodes and a relative distance from a client; determining whether the preferred node has sufficient free local memory in a free list to store the data, wherein if the preferred node does not have sufficient free list memory: requesting an allocation of heap memory to be allocated to the preferred node, storing the data in the requested heap memory, and binding the requested heap memory storing the data to the preferred node; and providing, responsive to the request, an address of the allocated heap memory by which the data is accessed; wherein at least one of the receiving, determining the preferred node, determining whether the preferred node has sufficient free memory, and providing are performed by one or more computers.