Affinity Replica Selection in Distributed Systems