Data Sharing in Distributed Computing Systems