Affiliation:
1. Indiana University, USA
Abstract
Purely functional data structures stored inside a mutable variable provide an excellent concurrent data structure—obviously correct, cheap to create, and supporting snapshots. They are not, however, scalable. We provide a way to retain the benefits of these pure-in-a-box data structures while dynamically converting to a more scalable lock-free data structure under contention. Our solution scales to any pair of pure and lock-free container types with key/value set semantics, while retaining lock-freedom. We demonstrate the principle in action on two very different platforms: first in the Glasgow Haskell Compiler and second in Java. To this end we extend GHC to support lock-free data structures and introduce a new approach for safe CAS in a lazy language.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference28 articles.
1. S. Bauman C. F. Bolz R. Hirschfeld V. Krilichev T. Pape J. Siek and S. Tobin-Hochstadt. Pycket: A tracing jit for a functional language. S. Bauman C. F. Bolz R. Hirschfeld V. Krilichev T. Pape J. Siek and S. Tobin-Hochstadt. Pycket: A tracing jit for a functional language.
2. Storage strategies for collections in dynamically typed languages
3. Automatic contention detection and amelioration for data-intensive operations
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献