Sprint: Speculative prefetching of remote data

Arun Raman, Greta Yorsh, Martin Vechev, Eran Yahav

Research output: Contribution to journalArticlepeer-review

Abstract

Remote data access latency is a significant performance bottleneck in many modern programs that use remote databases and web services. We present Sprint-a run-time system for optimizing such programs by prefetching and caching data from remote sources in parallel to the execution of the original program. Sprint separates the concerns of exposing potentially-independent data accesses from the mechanism for executing them efficiently in parallel or in a batch. In contrast to prior work, Sprint can efficiently prefetch data in the presence of irregular or input-dependent access patterns, while preserving the semantics of the original program. We used Sprint to automatically improve the performance of several real-world Java programs that access remote databases (MySQL, DB2) and web services (Facebook, IBM's Yellow Pages). Sprint achieves speedups ranging 2.4× to 15.8× over sequential execution, which are comparable to those achieved by manually modifying the program for asynchronous and batch execution of data accesses. Sprint provides a simple interface that allows a programmer to plug in support for additional data sources without modifying the client program..

Original languageEnglish
Pages (from-to)259-273
Number of pages15
JournalACM SIGPLAN Notices
Volume46
Issue number10
DOIs
StatePublished - Oct 2011

Keywords

  • Automatic
  • Batching
  • Caching
  • Compiler
  • Parallelization
  • Prefetching
  • Remote data
  • Run-time
  • Speculation
  • Tool

All Science Journal Classification (ASJC) codes

  • General Computer Science

Fingerprint

Dive into the research topics of 'Sprint: Speculative prefetching of remote data'. Together they form a unique fingerprint.

Cite this