The little engine(s) that could: scaling online social networks
By Josep M. Pujol, Vijay Erramilli, Georgos Siganos, Xiaoyuan Yang, Nikolaos Laoutaris, Parminder Chhabra, Pablo Rodríguez Rodríguez. 2010
323 citations recorded by the source corpus.
The difficulty of scaling Online Social Networks (OSNs) has introduced new system design challenges that has often caused costly re-architecting for services like Twitter and Facebook. The complexity of interconnection of users in social networks has introduced new scalability challenges. Conventional vertical scaling by resorting to full replication can be a costly proposition. Horizontal scaling by partitioning and distributing data among multiples servers - e.g. using DHTs - can lead to costly inter-server communication. We design, implement, and evaluate SPAR, a social partitioning and replication middle-ware that transparently leverages the social graph structure to achieve data locality while minimizing replication. SPAR guarantees that for all users in an OSN, their direct neighbor's data is co-located in the same server. The gains from this approach are multi-fold: application developers can assume local semantics, i.e., develop as they would for a single server; scalability is achieved by adding commodity servers with low memory and network I/O requirements; and redundancy is achieved at a fraction of the cost. We detail our system design and an evaluation based on datasets from Twitter, Orkut, and Facebook, with a working implementation. We show that SPAR incurs minimum overhead, and can help a well-known open-source Twitter clone reach Twitter's scale without changing a line of its application logic and achieves higher throughput than Cassandra, Facebook's DHT based key-value store database.
Subfields: Computer Networks and Communications
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Ion Stoica
- François Taïani
- Anne-Marie Kermarrec
- Joseph E. Gonzalez
- M. Franklin
- Amit Sharma
- Milan Vojnovic
- Panos Kalnis
Citations in the corpus
- Averaging Gone Wrong: Using Time-Aware Analyses to Better Understand Behavior (2016, background): “Keywords user behavior; cohorts; computational social science; Reddit; temporal”
- PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs (2012, unknown): “[33] present a distributed graph database but do not explicitly consider the power-law structure.”
- Want to scale in centralized systems? Think P2P (2015, methodology): “User interactions may also be exploited to influence data placement, as in the work of Pujol et al. [55], where the data of a social network is placed according to how users interact with one another.”
- Proposal Scaling Distributed Machine Learning with System and Algorithm Co-design (2016, unknown): “Previous works Graph partitioning has attracted a lot of research interests in scientific computing [28, 47, 73], scaling out large-scale computations [20, 59, 60, 141, 147, 155], graph database [39, 122, 144], search and social network analysis [7, 112, 141], and streaming processing [105, 130, 131”
- GraphX: Graph Processing in a Distributed Dataflow Framework (2014, background): “In addition, graph-specific index data structures can be shared across graphs with common vertex and edge collections, reducing storage overhead and improving performance.”
- FENNEL: streaming graph partitioning for massive scale graphs (2014, methodology): “Given the fact that real-world graphs tend to have sparser cuts [9], it is important to discover methods that are computationally efficient, practical, and yet yield high quality graph partitioning.”
- Mizan: a system for dynamic load balancing in large-scale graph processing (2013, background): “The Little Engine(s) [25] is also a distributed system designed to scale with online social networks.”