Duck Futures: A Generative Approach to Transparent Futures

By: Eric Lin, Ganesha Upadhyaya, Sean L. Mooney, and Hridesh Rajan

PDF Download Download Paper

Abstract

Futures offer a convenient abstraction for encapsulating delayed computation. It is a mechanism to introduce concurrency through a rewrite of the sequential program. However, managing futures is tedious and requires knowledge of concurrency and its concerns. The notion of transparent futures is used to hide the complexity of futures from developers. A number of techniques based on transparency have been proposed to create and manage futures. Previous techniques make use of reflection. In this paper, we propose duck futures that use a generative approach. We show that duck futures are much more efficient compared to previous notions of transparent futures. We also present the first large scale study of the applicability and utility of duck futures in practice using the Boa infrastructure for mining large scale open source repositories. Our study finds that transparent futures, despite their limitations, can be very useful in practice.

ACM Reference

Lin, E. et al. 2015. Duck futures: A generative approach to transparent futures. Technical Report #15-05. Department of Computer Science, Iowa State University.

BibTeX Reference

@techreport{lin2015duck,
  title = {Duck futures: A generative approach to transparent futures},
  author = {Lin, Eric and Upadhyaya, Ganesha and Mooney, Sean L and Rajan, Hridesh},
  year = {2015},
  month = {June},
  institution = {Department of Computer Science, Iowa State University},
  number = {15-05},
  abstract = {
    Futures offer a convenient abstraction for encapsulating delayed computation.
    It is a mechanism to introduce concurrency through a rewrite of the sequential
    program. However, managing futures is tedious and requires knowledge of
    concurrency and its concerns. The notion of transparent futures is used to
    hide the complexity of futures from developers. A number of techniques based
    on transparency have been proposed to create and manage futures. Previous
    techniques make use of reflection. In this paper, we propose duck futures that
    use a generative approach. We show that duck futures are much more efficient
    compared to previous notions of transparent futures. We also present the first
    large scale study of the applicability and utility of duck futures in practice
    using the Boa infrastructure for mining large scale open source repositories.
    Our study finds that transparent futures, despite their limitations, can be
    very useful in practice.
  }
}