1. A method, comprising: storing user data in a plurality of data centers of a computing system, wherein the user data comprises shared data that is shared between users of the computing system; and performing a storage allocation and replication process to optimize storage of the user data in the data centers of the computing system, wherein performing a storage allocation and replication process comprises: determining a ranking of each data center in the computing system for at least one user of the computing system, wherein determining a ranking comprises ranking a given data center as a function of access ratio values of friends of the at least one user, whose data is stored in the given data center, wherein an access ratio value of a given friend of the at least one user comprises a ratio which is based at least in part on (i) a number of times that the given friend whose data is stored in the given data center has accessed the shared data of the at least one user and (ii) a number of data uploads of shared data that the at least one user has made to the computing system; and selecting a first data center to store a primary copy of user data of the at least one user, and selecting a second data center to store a replica copy of the user data of the at least one user, based at least in part on the determined rankings of the data centers for the at least one user, to reduce an average access delay experienced by the friends of the at least one user in accessing the shared data of the at least one user; wherein one or more of the storing and performing steps are performed under control of at least one processing device.