skip to main content
research-article

A simple abstraction for complex concurrent indexes

Published:22 October 2011Publication History
Skip Abstract Section

Abstract

Indexes are ubiquitous. Examples include associative arrays, dictionaries, maps and hashes used in applications such as databases, file systems and dynamic languages. Abstractly, a sequential index can be viewed as a partial function from keys to values. Values can be queried by their keys, and the index can be mutated by adding or removing mappings. Whilst appealingly simple, this abstract specification is insufficient for reasoning about indexes accessed concurrently. We present an abstract specification for concurrent indexes. We verify several representative concurrent client applications using our specification, demonstrating that clients can reason abstractly without having to consider specific underlying implementations. Our specification would, however, mean nothing if it were not satisfied by standard implementations of concurrent indexes. We verify that our specification is satisfied by algorithms based on linked lists, hash tables and B-Link trees. The complexity of these algorithms, in particular the B-Link tree algorithm, can be completely hidden from the client's view by our abstract specification.

References

  1. Blelloch, G. E. Programming parallel algorithms. Commun. ACM 39 (March 1996), 85--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Boyland, J. Checking interference with fractional permissions. In Static Analysis (2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Calcagno, C., Gardner, P., and Zarfaty, U. Context Logic and tree update. In POPL (2005), ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. da Rocha Pinto, P. Reasoning about Concurrent Indexes. Master's thesis, Imperial College London, Sept. 2010.Google ScholarGoogle Scholar
  5. da Rocha Pinto, P., Dinsdale-Young, T., Dodds, M., Gardner, P., and Wheelhouse, M. A simple abstraction for complex concurrent indexes. Tech. rep., Imperial College London, 2011.Google ScholarGoogle Scholar
  6. Dillig, I., Dillig, T., and Aiken, A. Precise reasoning for programs using containers. SIGPLAN Not. 46 (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dinsdale-Young, T., Dodds, M., Gardner, P., Parkinson, M., and Vafeiadis,V. Concurrent abstract predicates. In ECOOP (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Dinsdale-Young, T., Gardner, P., and Wheelhouse, M. Abstraction and Refinement for Local Reasoning. In VSTTE (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Dodds, M., Feng, X., Parkinson, M., and Vafeiadis, V. Deny-guarantee reasoning. In ESOP (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Feng, X., Ferreira, R., and Shao, Z. On the relationship between concurrent separation logic andassume-guarantee reasoning. In ESOP (2007). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Filipovic, I., O'Hearn, P., Rinetzky, N., and Yang, H. Abstraction for concurrent objects. In ESOP (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Herlihy, M. P., and Wing, J. M. Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12 (July 1990), 463--492. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hoare, C. A. R. Proof of a structured program: 'The sieve of Eratosthenes'. The Computer Journal 15, 4 (1972), 321--325.Google ScholarGoogle ScholarCross RefCross Ref
  14. Kuncak, V., Lam, P., Zee, K., and Rinard, M. C. Modular pluggable analyses for data structure consistency. IEEE Trans. Softw. Eng. 32 (December 2006), 988--1005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Malecha, G., Morrisett, G., Shinnar, A., and Wisnesky, R. Toward a verified relational database management system. In POPL (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. O'Hearn, P. W. Resources, concurrency, and local reasoning. Theor. Comput. Sci. 375 (April 2007), 271--307. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Parkinson, M., and Bierman, G. Separation logic and abstraction. In POPL (2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Philippou, A., and Walker, D. A process-calculus analysis of concurrent operations on b-trees. J. Comput. Syst. Sci. 62, 1 (2001), 73--122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Reynolds, J. Separation logic: a logic for shared mutable data structures. In LICS (2002). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Sagiv, Y. Concurrent operations on B*-trees with overtaking. Journal of Computer and System Sciences 33 (October 1986). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Sexton, A., and Thielecke, H. Reasoning about B-trees with operational semantics and separationlogic. ENTCS 218 (2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Turon, A. J., and Wand, M. A separation logic for refining concurrent objects. In POPL (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Vafeiadis, V., and Parkinson, M. A marriage of rely/guarantee and separation logic. CONCUR (2007). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A simple abstraction for complex concurrent indexes

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 46, Issue 10
        OOPSLA '11
        October 2011
        1063 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2076021
        Issue’s Table of Contents
        • cover image ACM Conferences
          OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
          October 2011
          1104 pages
          ISBN:9781450309400
          DOI:10.1145/2048066

        Copyright © 2011 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 22 October 2011

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader