Actually on second thought, can CoarseGrainedSchedulerBackend just store the total cores for each worker in a hash map?  I'd prefer that solution since other classes use WorkerOffer and don't use it to keep track of the total cores on each worker.