Rethinking the Cost of Distributed Caches for Datacenter Services