Piggybacking on Social Networks
Abstract
The popularity of social-networking sites has increased rapidly over the last decade. One of the most fundamental functionalities of social-networking sites is to present users with streams of events shared by their friends. At a systems level, materialized per-user views are a common way to assemble and deliver such event streams on-line and with low latency. Access to the data stores, which keep the user views, is a major bottleneck of social-networking systems. We propose improving the throughput of a system by using social piggybacking: process the requests of two friends by querying and updating the view of a third common friend. By using one such hub view, the system can serve requests of the first friend without querying or updating the view of the second. We show that, given a social graph, social piggybacking can minimize the overall number of requests, but computing the optimal set of hubs is an NP-hard problem. We propose an O(log n) approximation algorithm and a heuristic to solve the problem, and evaluate them using the full Twitter and Flickr social graphs, which have up to billions of edges. Compared to existing approaches, using social piggy-backing results in similar throughput in systems with few servers, but enables substantial throughput improvements as the size of the system grows, reaching up to a 2-factor increase. We also evaluate our algorithms on a real social-networking system prototype and we show that the actual increase in throughput corresponds nicely to the gain anticipated by our cost function.
Domains
Databases [cs.DB]
Origin : Publisher files allowed on an open archive
Loading...