1. A computer-implemented method of allocating a plurality of objects associated with an online service to a plurality of network elements, comprising: receiving log data relating to usage of the online service; inferring a relationship graph from the log data, the relationship graph comprising a node for each object and connections between pairs of nodes, wherein each connected pair of nodes corresponds to a pair of objects having at least one associated data item in common, the at least one associated data item being different from both of the connected pair of nodes, and wherein each of the connections between the pairs of nodes is assigned a weight value relating to a number of common data items between a corresponding pair of objects; partitioning the relationship graph into a set of clusters, each cluster comprising pairs of nodes joined by connections having similar weight values, relative to weight values of connections between nodes in different clusters; distributing one or more of the objects to at least one of the plurality of network elements based on the clusters in the relationship graph, objects corresponding to nodes in a same cluster being co-located at a same network element; and coalescing, subsequent to distributing, a plurality of common data items of objects located at the same network element, resulting in only a single instance of the plurality of common data items being stored at the same network element and a reduction in the number of instances of each of the plurality of common data items across the plurality of network elements, at least a first common data item of the plurality of common data items having been stored on a different network element from the same network element prior to distributing.