Similar Items: Distributed systems:concepts and design