Poor man's social network: consistently trade freshness for scalability

  • Authors:
  • Zhiwu Xie;Jinyang Liu;Herbert Van De Sompel;Johann Van Reenen;Ramiro Jordan

  • Affiliations:
  • Virginia Polytechnic Institute and State University;Howard Hughes Medical Institute;Los Alamos National Laboratory;University of New Mexico;University of New Mexico

  • Venue:
  • WebApps'12 Proceedings of the 3rd USENIX conference on Web Application Development
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Typical social networking functionalities such as feed following are known to be hard to scale. Different from the popular approach that sacrifices consistency for scalability, in this paper we describe, implement, and evaluate a method that can simultaneously achieve scalability and consistency in feed following applications built on shared-nothing distributed systems. Timing and client-side processing are the keys to this approach. Assuming global time is available at all the clients and servers, the distributed servers publish a pre-agreed upon schedule based on which the continuously committed updates are periodically released for read. This opens up opportunities for caching and client-side processing, and leads to scalability improvements. This approach trades freshness for scalability. Following this approach, we build a twitter-style feed following application and evaluate it on a following network with about 200,000 users under synthetic workloads. The resulting system exhibits linear scalability in our experiment. With 6 low-end cloud instances costing a total of no more than $1.2 per hour, we recorded a peak timeline query rate at about 10 million requests per day, under a fixed update rate of 1.6 million new tweets per day. The maximum staleness of the responses is 5 seconds. The performance achieved sufficiently verifies the feasibility of this approach, and provides an alternative to build small to medium size social networking applications on the cheap.