skip to main content

Harnessing epoch-based reclamation for efficient range queries

Published:10 February 2018Publication History
Skip Abstract Section

Abstract

Concurrent sets with range query operations are highly desirable in applications such as in-memory databases. However, few set implementations offer range queries. Known techniques for augmenting data structures with range queries (or operations that can be used to build range queries) have numerous problems that limit their usefulness. For example, they impose high overhead or rely heavily on garbage collection. In this work, we show how to augment data structures with highly efficient range queries, without relying on garbage collection. We identify a property of epoch-based memory reclamation algorithms that makes them ideal for implementing range queries, and produce three algorithms, which use locks, transactional memory and lock-free techniques, respectively. Our algorithms are applicable to more data structures than previous work, and are shown to be highly efficient on a large scale Intel system.

Skip Supplemental Material Section

Supplemental Material

References

  1. Y. Afek, H. Attiya D. Dolev, E. Gafni, M. Merritt, and N. Shavit. Atomic snapshots of shared memory. J. ACM, 40(4):873--890, Sept. 1993. ISSN 0004--5411. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Agarwal, Z. Liu, E. Rosenthal, and V. Saraph. Linearizable iterators for concurrent data structures. CoRR, abs/1705.08885, 2017. URL http://arxiv.org/abs/1705.08885.Google ScholarGoogle Scholar
  3. M. Arbel and H. Attiya. Concurrent updates with RCU: Search tree as an example. In Proceedings of the 2014 ACM Symposium on Principles of Distributed Computing, PODC '14, pages 196--205, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2944-6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Arbel-Raviv and T. Brown. Reuse, don't recycle: Transforming lock-free algorithms that throw away descriptors. In Proceedings of the 31st International Symposium on Distributed Computing, DISC 2017, 2017.Google ScholarGoogle Scholar
  5. H. Attiya, R. Guerraoui, and E. Ruppert. Partial snapshot objects. In Proceedings of the Twentieth Annual Symposium on Parallelism in Algorithms and Architectures, SPAA '08, pages 336--343, New York, NY, USA, 2008. ACM. ISBN 978-1-59593-973-9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. H. Avni, N. Shavit, and A. Suissa. Leaplist: Lessons learned in designing tm-supported range queries. In Proceedings of the 2013 ACM Symposium on Principles of Distributed Computing, PODC '13, pages 299--308, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-2065-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Basin, E. Bortnikov, A. Braginsky, G. Golan-Gueta, E. Hillel, I. Keidar, and M. Sulamy. Kiwi: A key-value map for scalable real-time analytics. In Proceedings of the 22Nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '17, pages 357--369, New York, NY, USA, 2017. ACM. ISBN 978-1-4503-4493-7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. A practical concurrent binary search tree. In Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '10, pages 257--268, New York, NY, USA, 2010. ACM. ISBN 978-1-60558877-3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Brown. Reclaiming memory for lock-free data structures: There has to be a better way. In Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing, PODC '15, pages 261--270, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Brown. Techniques for Constructing Efficient Data Structures. PhD thesis, University of Toronto, 2017.Google ScholarGoogle Scholar
  11. T. Brown, F. Ellen, and E. Ruppert. A general technique for non-blocking trees. In Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '14, pages 329--342, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-26568. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. I. Calciu, D. Dice, Y. Lev, V. Luchangco, V. J. Marathe, and N. Shavit. Numa-aware reader-writer locks. In Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '13, pages 157--166, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-1922-5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. B. Chatterjee. Lock-free linearizable 1-dimensional range queries. In Proceedings of the 18th International Conference on Distributed Computing and Networking, ICDCN '17, pages 9:1--9:10, New York, NY, USA, 2017. ACM. ISBN 978-1-4503-4839-3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. L. Dalessandro, M. F. Spear, and M. L. Scott. Norec: Streamlining stm by abolishing ownership records. In Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '10, pages 67--78, New York, NY, USA, 2010. ACM. ISBN 978-1-60558877-3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. David, R. Guerraoui, and V. Trigonakis. Asynchronized concurrency: The secret to scaling concurrent search data structures. In Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '15, pages 631--644, New York, NY, USA, 2015. ACM. ISBN 978-1-4503-28357. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Dice, O. Shalev, and N. Shavit. Transactional locking ii. In Proceedings of the 20th International Conference on Distributed Computing, DISC'06, pages 194--208, Berlin, Heidelberg, 2006. Springer-Verlag. ISBN 3-540-44624-9, 978-3-540-44624-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F. Ellen, P. Fatourou, E. Ruppert, and F. van Breugel. Non-blocking binary search trees. In Proceedings of the 29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC '10, pages 131--140, New York, NY, USA, 2010. ACM. ISBN 978-1-60558-8889. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. T. L. Harris, K. Fraser, and I. A. Pratt. A practical multi-word compare-and-swap operation. In Proceedings of the 16th International Conference on Distributed Computing, DISC '02, pages 265--279, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008. ISBN 0123705916, 9780123705914. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. P. Jayanti. An optimal multi-writer snapshot algorithm. In Proceedings of the Thirty-seventh Annual ACM Symposium on Theory of Computing, STOC '05, pages 723--732, New York, NY, USA, 2005. ACM. ISBN 1-58113-960-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Matveev, N. Shavit, P. Felber, and P. Marlier. Read-log-update: A lightweight synchronization mechanism for concurrent programming. In Proceedings of the 25th Symposium on Operating Systems Principles, SOSP '15, pages 168--183, New York, NY, USA, 2015. ACM. ISBN 9781-4503-3834-9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. E. McKenney and J. D. Slingwine. Read-copy update: Using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems, pages 509--518, 1998.Google ScholarGoogle Scholar
  23. A. Natarajan and N. Mittal. Fast concurrent lock-free binary search trees. In Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '14, pages 317--328, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2656-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. E. Petrank and S. Timnat. Lock-free data-structure iterators. In Proceedings of the 27th International Symposium on Distributed Computing - Volume 8205, DISC 2013, pages 224--238, New York, NY, USA, 2013. Springer-Verlag New York, Inc. ISBN 978-3-642-415265. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Prokopec, N. G. Bronson, P. Bagwell, and M. Odersky. Concurrent tries with efficient non-blocking snapshots. SIGPLAN Not., 47(8):151--160, Feb. 2012. ISSN 0362-1340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. K. Sagonas and K. Winblad. Efficient support for range queries and range updates using contention adapting search trees. In Revised Selected Papers of the 28th International Workshop on Languages and Compilers for Parallel Computing - Volume 9519, LCPC 2015, pages 37--53, New York, NY, USA, 2016. Springer-Verlag New York, Inc. ISBN 978-3-319-29777-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. X. Yu, G. Bezerra, A. Pavlo, S. Devadas, and M. Stonebraker. Staring into the abyss: An evaluation of concurrency control with one thousand cores. Proc. VLDB Endow., 8(3):209--220, Nov. 2014. ISSN 2150--8097. Google ScholarGoogle ScholarDigital LibraryDigital Library

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 53, Issue 1
    PPoPP '18
    January 2018
    426 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/3200691
    Issue’s Table of Contents
    • cover image ACM Conferences
      PPoPP '18: Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
      February 2018
      442 pages
      ISBN:9781450349826
      DOI:10.1145/3178487

    Copyright © 2018 ACM

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 10 February 2018

    Check for updates

    Qualifiers

    • research-article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!