  Joining the shortest or least loaded queue among $d$ randomly selected queues
are two fundamental load balancing policies. Under both policies the dispatcher
does not maintain any information on the queue length or load of the servers.
In this paper we analyze the performance of these policies when the dispatcher
has some memory available to store the ids of some of the idle servers. We
consider methods where the dispatcher discovers idle servers as well as methods
where idle servers inform the dispatcher about their state.
  We focus on large-scale systems and our analysis uses the cavity method. The
main insight provided is that the performance measures obtained via the cavity
method for a load balancing policy {\it with} memory reduce to the performance
measures for the same policy {\it without} memory provided that the arrival
rate is properly scaled. Thus, we can study the performance of load balancers
with memory in the same manner as load balancers without memory. In particular
this entails closed form solutions for joining the shortest or least loaded
queue among $d$ randomly selected queues with memory in case of exponential job
sizes. Moreover, we obtain a simple closed form expression for the (scaled)
expected waiting time as the system tends towards instability.
  We present simulation results that support our belief that the approximation
obtained by the cavity method becomes exact as the number of servers tends to
infinity.
