Skip to main content
Log in

Enhanced chained and Cuckoo hashing methods for multi-core CPUs

  • Published:
Cluster Computing Aims and scope Submit manuscript

Abstract

A hash table is a fundamental data structure implementing an associative memory that maps a key to its associative value. Besides, the paradigm of micro-architecture design of CPUs is shifting away from faster uniprocessors toward slower chip multiprocessors. In this paper, we propose enhanced chained hashing and Cuckoo hashing methods for modern computers having a lot of CPU cores with exploiting CPU cache line and hardware level lock-free operations. The proposed methods outperform the existing methods in most cases and are very scalable in terms of the number of CPU cores. In addition, their performances do not degrade much even with a high fill factor (e.g., 90 %). Through extensive experiments using Intel 32-core machine, we have shown our proposed methods improve performance compared with the state-of-the-art version of the four exiting major hashing methods of linear, chained, Cuckoo, and Hopscotch.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

References

  1. Ijtihadie, R., Hidayanto, B., Affandi, A., Chisaki, Y., Usagawa, T.: Dynamic content synchronization between learning management systems over limited bandwidth network. HCIS Hum. Cent. Comput. Inf. Sci. 2(1), 1–16 (2012)

    Article  Google Scholar 

  2. Chen, C.-W., Tsai, Y.-R., Shiuh-Jeng, W.: Cost-saving key agreement via secret sharing in two-party communication systems. JoC J. Convergence 3(4), 29–36 (2012)

    Google Scholar 

  3. Tsai, C.-L., Chen, C.-J., Zhuang, D.-J.: Trusted M-banking verification scheme based on a combination of OTP and biometrics. JoC J. Convergence 3(3), 23–30 (2012)

    Google Scholar 

  4. Agarwal, S., Rungta, A., Padmavathy, R., Shankar, M., Rajan, N.: An improved fast and secure hash slgorithm. JIPS J. Inf. Process. Syst. 8(1), 119–132 (2012)

    Google Scholar 

  5. Litwin, W.: Linear hashing: a new tool for file and table addressing. In: Proceedings of the 6th International Conference on Very Large Data, Bases, pp. 212–223 (1980)

  6. Fagin, R., Nievergelt, J., Pippenger, N., Strong, H.R.: Extendible hashing: a fast access method for dynamic files. ACM Trans. Datab. Syst. 4(3), 315–344 (1979). doi:10.1145/320083.320092

    Article  Google Scholar 

  7. Pagh, R., Rodler, F.F.: Cuckoo hashing. J. Algorithms 51(2), 122–144 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  8. Herlihy, M., Shavit, N., Tzafrir, M.: Hopscotch hashing. In: Taubenfeld, G. (ed.) Distributed Computing, LNCS, vol. 5218, pp. 350–364. Springer, Heidelberg (2008)

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

    Article  MATH  Google Scholar 

  10. Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Language Reference (Version 2.4). Computer Science Laboratory, SRI International, Menlo Park, CA (2001)

  11. Dietzfelbinger, M., Schellbach, U.: On risks of using cuckoo hashing with simple universal hash classes. In: Proceedings of the 20th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 795–804 (2009)

  12. Kutzelnigg, R.: An improved version of cuckoo hashing: average case analysis of construction cost and search operations. Math. Comput. Sci. 3(1), 47–60 (2010)

    Article  MATH  MathSciNet  Google Scholar 

  13. Kutzelnigg, R.: A further analysis of cuckoo hashing with a stash and random graphs of excess r. Discret. Math. Theor. Comput. Sci. 12(3), 81–102 (2010)

    MATH  MathSciNet  Google Scholar 

  14. Ferdman, M., Lotfi-Kamran, P., Balet, K., Falsafi, B.: Cuckoo directory: A scalable directory for many-core systems. In: High Performance Computer Architecture (HPCA), 2011 IEEE 17th International Symposium, pp. 169–180 (2011)

  15. Frieze, A., Melsted, P., Mitzenmacher, M.: An analysis of random-walk cuckoo hashing. In: Dinur, I., Jansen, K., Naor, J., Rolim, J. (eds.) Approximation, Randomization, and Combinatorial Optimization. Algorithms and Techniques, LNCS, vol. 5687, pp. 490–503. Springer, Heidelberg (2009)

  16. Porat, E., Shalem, B.: A cuckoo hashing variant with improved memory utilization and insertion time. In: Data Compression Conference (DCC), pp. 347–356 (2012)

  17. Drmota, M., Kutzelnigg, R.: A precise analysis of cuckoo hashing. ACM Trans. Algorithms (TALG) 8(2), 11 (2012)

    MathSciNet  Google Scholar 

  18. Purcell, C., Harris, T.: Non-blocking hashtables with open addressing. In: Distributed Computing, pp. 108–121. Springer, (2005)

  19. Stivala, A., Stuckey, P.J., Garcia de la Banda, M., Hermenegildo, M., Wirth, A.: Lock-free parallel dynamic programming. J. Parallel Distributed Comput. 70(8), 839–848 (2010)

    Article  MATH  Google Scholar 

  20. Shalev, O., Shavit, N.: Split-ordered lists: lock-free extensible hash tables. J. ACM (JACM) 53(3), 379–405 (2006)

    Article  MathSciNet  Google Scholar 

  21. Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann, New York (2012)

  22. DIMACS.: New York City Shortest Paths. 9th DIMACS Implementation Challenge. http://www.dis.uniroma1.it/challenge9 (2010). Accessed 14 June 2010

  23. Chilimbi, T.: Cache-Conscious Data Structures -Design and Implementation. Ph.D. thesis, University of Wisconsin-Madison (1999)

  24. Askitis, N.: Efficient Data Structures for Cache Architectures. Ph.D. thesis, RMIT University (2007)

  25. Fotakis, D., Pagh, R., Sanders, P., Spirakis, P.: Space efficient hash tables with worst case constant access time. In: Proceedings of the 20th Symposium on Theoretical Aspects of Computer Science (STACS), pp. 271–282 (2003)

  26. Pan, J., Manocha, D.: Fast GPU-based Locality Sensitive Hashing for K-Neares Neighbor Computation. In: ACM SIGSPATIAL, GIS, pp. 211–220 (2011)

  27. Valgrind: an open-source memory debugger for x86-GNU/Linux. http://valgrind.kde.org. Accessed 2 April 2013

Download references

Acknowledgments

This research was supported by the IT R&D program of MKE/KEIT(10041145, Self-Organized Software platform(SoSp) for Welfare Devices) and the DGIST R&D Program of the Ministry of Education, Science and Technology of Korea(13-BD-0403).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Min-Soo Kim.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kim, E., Kim, MS. Enhanced chained and Cuckoo hashing methods for multi-core CPUs. Cluster Comput 17, 665–680 (2014). https://doi.org/10.1007/s10586-013-0343-y

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-013-0343-y

Keywords

Navigation