Abstract
Hardware Transaction Memory (HTM) opens a new way to scaling multi-core software. Its main target is to achieve high performance on multi-core systems, and at the same time simplify concurrency control and guarantee correctness. This paper presents the redesign of an existing concurrent hash table using several HTM-based synchronization mechanisms. As compared with a fine-grained lock implementation, HTM-based locking scales well on our testing platform, and its performance is higher when running large-scale workloads. In addition, HTM-based global locking consumes much less memory. In summary, several observations are made in this paper with detailed experimental analysis, which would have important implications for future research of concurrent data structures and HTM.
Similar content being viewed by others
References
Afek, Y., Levy, A., Morrison, A.: Software-improved hardware lock elision. pp. 212–221 (2014)
Arcangeli, A., Cao, M., McKenney, P.E., Sarma, D.: Using read-copy-update techniques for system v ipc in the linux 2.5 kernel. In: USENIX Annual Technical Conference, FREENIX Track, pp. 297–309 (2003)
David, T., Guerraoui, R., Trigonakis, V.: Asynchronized concurrency: The secret to scaling concurrent search data structures. SIGARCH Comput. Archit. News 43(1), 631–644 (2015). https://doi.org/10.1145/2786763.2694359
Goel, H., Gershovitz, M.: Concurrent hopscotch hash map. http://cs.tau.ac.il
Herlihy, M., Shavit, N., Tzafrir, M.: Hopscotch hashing. In: International Symposium on Distributed Computing, pp. 350–364 (2008)
Intel, R.: Intel r 64 and ia-32 architectures. Software developers manual. (2015)
Liu, Y., Zhang, K., Spear, M.: Dynamic-sized nonblocking hash tables. In: Proceedings of the 2014 ACM Symposium on Principles of Distributed Computing, pp. 242–251 (2014)
Metreveli, Z., Zeldovich, N., Kaashoek, M.F.: Cphash: A cache-partitioned hash table. In: ACM Sigplan Symposium on Principles and Practice of Parallel Programming, pp. 319–320 (2012)
Wang, X., Zhang, W., Wang, Z., Wei, Z., Chen, H., Zhao, W.: Eunomia: Scaling concurrent search trees under contention using htm. In: ACM Sigplan Symposium on Principles and Practice of Parallel Programming, pp. 385–399 (2017)
Wang, Z., Mu, S., Cui, Y., Yi, H., Chen, H., Li, J.: Scaling multicore databases via constrained parallel execution. In: International Conference on Management of Data, pp. 1643–1658 (2016)
Wang, Z., Qian, H., Chen, H., Li, J.: Opportunities and pitfalls of multi-core scaling using hardware transaction memory. In: Asia-Pacific Workshop on Systems, p. 3 (2013)
Wang, Z., Qian, H., Li, J., Chen, H.: Using restricted transactional memory to build a scalable in-memory database. In: European Conference on Computer Systems, pp. 1–15 (2014)
Acknowledgements
This research was supported in part by the National Science Foundation of China under Grants 61772183, 61572179 and 61272190.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Chen, Z., He, X., Sun, J. et al. Have Your Cake and Eat it (Too): A Concurrent Hash Table with Hardware Transactions. Int J Parallel Prog 46, 699–709 (2018). https://doi.org/10.1007/s10766-017-0529-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-017-0529-7