Browse > Article
http://dx.doi.org/10.7583/JKGS.2020.20.5.89

Concurrent Hash Table Optimized for NUMA System  

Choi, JaeYong (Dept. of Digital Entertainment, Korea Polytechnic University)
Jung, NaiHoon (Dept. of Game & Multimedia Engineering, Korea Polytechnic University)
Abstract
In MMO game servers, NUMA (Non-Uniform Memory Access) architecture is generally used to achieve high performance. Furthermore, such servers normally use hash tables as internal data structure which have constant time complexity for insert, delete, and search operations. In this study, we proposed a concurrent hash table optimized for NUMA system to make MMO game servers improve their performance. We tested our hash table on 4 socket NUMA system, and the hash table shows at most 100% speedup over another high-performance hash table.
Keywords
Parallel Processing; NUMA; Lock-Free; Hash Table;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Amazon, AWS 에서의 멀티 플레이어 게임 서버 성능 최적화, https://aws.amazon.com/ko/blogs/korea/optimizing-multiplayer-game-server-performance-on-aws
2 정내훈, 게임서버프로그래밍 강의노트, 한국산업기술대학교
3 Boyd-Wickizer, Silas, et al., "Corey: An Operating System for Many Cores.", OSDI. Vol. 8., pp. 43-57, 2008.
4 Trahay, Francois, et al., "NumaMMA: NUMA memory analyzer.", Proceedings of the 47th International Conference on Parallel Processing., 2018.
5 Daly, Henry, et al., "NUMASK: high performance scalable skip list for NUMA.", 32nd International Symposium on Distributed Computing (DISC 2018), 2018.
6 Calciu, Irina, Justin Gottschlich, and Maurice Herlihy, "Using elimination and delegation to implement a scalable NUMA-friendly stack.", 5th {USENIX} Workshop on Hot Topics in Parallelism (HotPar 13), 2013.
7 Calciu, Irina, et al., "Black-box concurrent data structures for NUMA architectures.", ACM SIGPLAN Notices 52.4 (2017), pp 207-221, 2017.   DOI
8 Fatourou, Panagiota, Nikolaos D. Kallimanis, and Thomas Ropars, "An Efficient Wait-free Resizable Hash Table.", Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, pp. 111-120, 2018.
9 Shalev, Ori, and Nir Shavit, "Split-ordered lists: Lock-free extensible hash tables.", Journal of the ACM (JACM) 53.3 (2006), pp. 379-405, 2006.   DOI
10 M. Herlihy, N. Shavit, "The Art of Multiprocessor Programming", Revised First Edition, pp. 339, Elsevier, 2012.
11 Intel, Intel Threading Building Blocks, https://software.intel.com/content/www/us/en/develop/tools/threading-building-blocks.html
12 Reinders, James., "Intel threading building blocks: outfitting C++ for multi-core processor parallelism.", O'Reilly Media, Inc., 2007.
13 Fraser, Keir. "Practical lock-freedom". No. UCAM-CL-TR-579. University of Cambridge, Computer Laboratory, 2004.