Skip to main content

Recalibrating Fine-Grained Locking in Parallel Bucket Hash Tables

  • Chapter
Book cover Facing the Multicore-Challenge III

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7686))

  • 1265 Accesses

Abstract

Mutual exclusion protects data structures in parallel environments in order to preserve data integrity. A lock being held effectively blocks the execution of all other threads wanting to access the same shared resource until the lock is released. This blocking behavior reduces the level of parallelism causing performance loss. Fine grained locking reduces the contention for the locks resulting in better throughput, however, the granularity, i.e. how many locks to use, is not straightforward. In large bucket hash tables, the best approach is to divide the table into blocks, each containing one or more buckets, and locking these blocks independently. The size of the block, for optimal performance, depends on the time spent within the critical sections, which depends on the table’s internal properties, and the arrival intensity of the queries. A queuing model is presented capturing this behavior, and an adaptive algorithm is presented fine-tuning the granularity of locking (the block size) to adapt to the execution environment.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 49.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barnat, J., Ročkai, P.: Shared Hash Tables in Parallel Model Checking. Electronic Notes in Theoretical Computer Science 198(1), 79–91 (2008)

    Article  Google Scholar 

  2. Brandenburg, B., Calandrino, J.M., Block, A., Leontyev, H., Anderson, J.H.: Real-Time Synchronization on Multiprocessors: To Block or Not to Block, to Suspend or Spin? In: 2008 IEEE Real-Time and Embedded Technology and Applications Symposium, pp. 342–353. IEEE Computer Society Press, St. Louis (2008)

    Chapter  Google Scholar 

  3. Gao, H., Groote, J.F., Hesselink, W.H.: Lock-free dynamic hash tables with open addressing. Distributed Computing 18(1), 21–42 (2005)

    Article  Google Scholar 

  4. Gilbert, D.C.: Modeling spin locks with queuing networks. ACM SIGOPS Operating Systems Review 12(1), 29–42 (1978)

    Article  Google Scholar 

  5. Harrison, P., Patel, N.M.: Performance Modelling of Communication Networks and Computer Architectures. Addison-Wesley (1992)

    Google Scholar 

  6. Herlihy, M., Shavit, N., Tzafrir, M.: Hopscotch Hashing. In: Taubenfeld, G. (ed.) DISC 2008. LNCS, vol. 5218, pp. 350–364. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  7. Juhász, S., Dudás, A.: Adapting hash table design to real-life datasets. In: Proc. of the IADIS European Conference on Informatics 2009, Part of the IADIS Multiconference of Computer Science and Information Systems 2009, Algarve, Portugal, pp. 3–10 (June 2009)

    Google Scholar 

  8. Kim, W., Voss, M.: Multicore Desktop Programming with Intel Threading Building Blocks. IEEE Software 28(1), 23–31 (2011)

    Article  Google Scholar 

  9. Klots, B., Bamford, R.J.: Method and apparatus for dynamic lock granularity escalation and de-escalation in a computer system (1998)

    Google Scholar 

  10. Knuth, D.E.: The art of computer programming, vol 3. Addison-Wesley (November 1973)

    Google Scholar 

  11. Laarman, A., van de Pol, J., Weber, M.: Boosting Multi-Core Reachability Performance with Shared Hash Tables. In: 10th International Conference on Formal Methods in Computer-Aided Design (April 2010)

    Google Scholar 

  12. Larson, P.A., Krishnan, M.R., Reilly, G.V.: Scaleable hash table for shared-memory multiprocessor system (April 2003)

    Google Scholar 

  13. Lea, D.: Hash table util.concurrent.ConcurrentHashMap, revision 1.3, in JSR-166, the proposed Java Concurrency Package (2003)

    Google Scholar 

  14. Li, Q., Moon, B.: Distributed cooperative Apache web server. In: Proceedings of the Tenth International Conference on World Wide Web, WWW 2001, pp. 555–564. ACM Press, New York (2001)

    Chapter  Google Scholar 

  15. Mellor-Crummey, J.M., Scott, M.L.: Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Transactions on Computer Systems 9(1), 21–65 (1991)

    Article  Google Scholar 

  16. Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: ACM Symposium on Parallel Algorithms and Architectures, pp. 73–82 (2002)

    Google Scholar 

  17. Ning, Z., Cox, A.J., Mullikin, J.C.: SSAHA: a fast search method for large DNA databases. Genome Research 11(10), 1725–1729 (2001)

    Article  Google Scholar 

  18. Purcell, C., Harris, T.: Non-blocking Hashtables with Open Addressing. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 108–121. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  19. Stewart, W.J.: Probability, Markov chains, queues, and simulation: the mathematical basis of performance modeling. Princeton University Press (2009)

    Google Scholar 

  20. Treiber, R.K.: Systems Programming: Coping with Parallelism (Research Report RJ 5118). Tech. rep., IBM Almaden Research Center (1986)

    Google Scholar 

  21. Veal, B., Foong, A.: Performance scalability of a multi-core web server. In: Proceedings of the 3rd ACM/IEEE Symposium on Architecture for Networking and Communications Systems, ANCS 2007, p. 57. ACM Press, New York (2007)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Dudás, Á., Juhász, S., Kolumbán, S. (2013). Recalibrating Fine-Grained Locking in Parallel Bucket Hash Tables. In: Keller, R., Kramer, D., Weiss, JP. (eds) Facing the Multicore-Challenge III. Lecture Notes in Computer Science, vol 7686. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35893-7_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35893-7_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35892-0

  • Online ISBN: 978-3-642-35893-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics