Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
STOC '97 Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
Flexible update propagation for weakly consistent replication
Proceedings of the sixteenth ACM symposium on Operating systems principles
Adaptive web caching: towards a new global caching architecture
Computer Networks and ISDN Systems - Selected papers of the 3rd international caching workshop
Chord: A scalable peer-to-peer lookup service for internet applications
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
Storage management and caching in PAST, a large-scale, persistent peer-to-peer storage utility
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Wide-area cooperative storage with CFS
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
A survey of web caching schemes for the Internet
ACM SIGCOMM Computer Communication Review
Distributed caching with memcached
Linux Journal
ARC: A Self-Tuning, Low Overhead Replacement Cache
FAST '03 Proceedings of the 2nd USENIX Conference on File and Storage Technologies
I tube, you tube, everybody tubes: analyzing the world's largest user generated content video system
Proceedings of the 7th ACM SIGCOMM conference on Internet measurement
How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
IEEE Transactions on Computers
PNUTS: Yahoo!'s hosted data serving platform
Proceedings of the VLDB Endowment
Wikipedia workload analysis for decentralized hosting
Computer Networks: The International Journal of Computer and Telecommunications Networking
Benchmarking cloud serving systems with YCSB
Proceedings of the 1st ACM symposium on Cloud computing
Object storage on CRAQ: high-throughput chain replication for read-mostly workloads
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
Blink: managing server clusters on intermittent power
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
SkimpyStash: RAM space skimpy key-value store on flash-based storage
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Small cache, big effect: provable load balancing for randomly partitioned cluster services
Proceedings of the 2nd ACM Symposium on Cloud Computing
Don't settle for eventual: scalable causal consistency for wide-area storage with COPS
SOSP '11 Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
Diminished chord: a protocol for heterogeneous subgroup formation in peer-to-peer networks
IPTPS'04 Proceedings of the Third international conference on Peer-to-Peer Systems
Workload analysis of a large-scale key-value store
Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE joint international conference on Measurement and Modeling of Computer Systems
World Wide Web caching: trends and techniques
IEEE Communications Magazine
Spanner: Google's globally-distributed database
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Making geo-replicated systems fast as possible, consistent when necessary
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
Hi-index | 0.00 |
Distributed memory caching systems (e.g., memcached) offer tremendous performance improvements for multi-tiered applications compared to architectures that directly access the storage layer. Unfortunately, the performance improvements are artificially limited by load imbalance in the memcached server pool. Specifically, we show that skewed key popularity induces significant load imbalance, which in turn can cause significant degradation in the tail (i.e., 90+th %ile) latency. Based on this understanding, we design and implement SPORE -- an augmented memcached variant which uses self-adapting, popularity-based replication to mitigate the effects of such load imbalance. SPORE uses reactive internal key renaming as a basic mechanism to efficiently achieve replication without excessive communication and/or coordination among servers and clients. Further, our SPORE design offers the same consistency model (with added time-bounds on write propagation) as a system with memcached. Based on evaluations on a "wimpy-node" testbed and on Amazon EC2, we show that SPORE achieves significantly higher performance than the baseline memcached.