Browse > Article
http://dx.doi.org/10.3745/KTCCS.2019.8.6.127

Wall Cuckoo: A Method for Reducing Memory Access Using Hash Function Categorization  

Moon, Seong-kwang (인하대학교 컴퓨터공학과)
Min, Dae-hong (인하대학교 컴퓨터공학과)
Jang, Rhong-ho (인하대학교 컴퓨터공학과)
Jung, Chang-hun (인하대학교 컴퓨터공학과)
NYang, Dae-hun (인하대학교 컴퓨터공학과)
Lee, Kyung-hee (수원대학교 전기공학과)
Publication Information
KIPS Transactions on Computer and Communication Systems / v.8, no.6, 2019 , pp. 127-138 More about this Journal
Abstract
The data response speed is a critical issue of cloud services because it directly related to the user experience. As such, the in-memory database is widely adopted in many cloud-based applications for achieving fast data response. However, the current implementation of the in-memory database is mostly based on the linked list-based hash table which cannot guarantee the constant data response time. Thus, cuckoo hashing was introduced as an alternative solution, however, there is a disadvantage that only half of the allocated memory can be used for storing data. Subsequently, bucketized cuckoo hashing (BCH) improved the performance of cuckoo hashing in terms of memory efficiency but still cannot overcome the limitation that the insert overhead. In this paper, we propose a data management solution called Wall Cuckoo which aims to improve not only the insert performance but also lookup performance of BCH. The key idea of Wall Cuckoo is that separates the data among a bucket according to the different hash function be used. By doing so, the searching range among the bucket is narrowed down, thereby the amount of slot accesses required for the data lookup can be reduced. At the same time, the insert performance will be improved because the insert is following up the operation of the lookup. According to analysis, the expected value of slot access required for our Wall Cuckoo is less than that of BCH. We conducted experiments to show that Wall Cuckoo outperforms the BCH and Sorting Cuckoo in terms of the amount of slot access in lookup and insert operations and in different load factor (i.e., 10%-95%).
Keywords
Open Addressing; Hash Table; Cuckoo Hashing; Key-Value Store; In-Memory Cache;
Citations & Related Records
연도 인용수 순위
  • Reference
1 E. Lehman and R. Panigrahy, "3.5-way Cuckoo Hashing for the Price of 2-and-a-bit," in Eur. Symp. Algorithms, pp. 671-681, Springer Berlin Heidelberg, Sept. 2009.
2 DB-Engines, DB-Engines Ranking [Internet], http://db-engines.com/en/ranking/.
3 Amazon Web Services, Definition of Key-value Database [Internet], https://aws.amazon.com/ko/nosql/key-value/.
4 Redis, OBJECT Subcommand [Internet], https://redis.io/commands/object.
5 Memcached [Internet], https://memcached.org/.
6 Memcached GitHub, Memcached/memcached.h [Internet], https://goo.gl/BK7nkQ, Line 462.
7 R. Pagh and F. F. Rodler, "Cuckoo Hashing," Eur. Symp. Algorithms, Springer Berlin Heidelberg, pp.121-133, Aug. 2001.
8 R. Kutzelnigg, "An Improved Version of Cuckoo Hashing: Average Case Analysis of Construction Cost and Search Operations," Math. Comput. Sci., Vol.3, No.1, pp.47-60, 2010.   DOI
9 D. H. Min, R. H. Jang, D. H. Nyang, and K. H. Lee, "Sorting Cuckoo - Enhancing Lookup Performance of Cuckoo Hashing Using Insertion Sort -," The Journal of Korean Institute of Communications and Information Sciences, Vol.42, No.3, pp.566-576, Mar. 2017.   DOI
10 U. Erlingsson, M. Manasse, and F. McSherry, "A Cool and Practical Alternative to Traditional Hash Tables," in Proc. WDAS'06, Jan. 2006.
11 Y. Sun, Y. Hua, S. Jiang, Q. Li, S. Cao, and P. Zuo, "SmartCuckoo: A Fast and Cost-Efficient Hashing Index Scheme for Cloud Storage Systems," USENIX Annual Technical Conference, pp.553-565, Santa Clara, CA, USA, July 2017.
12 Y. Sun, Y. Hua, D. Feng, L. Yang, P. Zuo, S. Cao, and Y. Guo, "A Collision-Mitigation Cuckoo Hashing Scheme for Large-Scale Storage Systems," IEEE Trans. Parallel Distrib. Syst., Vol.28, No.3, pp.619-632, 2017.   DOI
13 E. Porat and B. Shalem, "A Cuckoo Hashing Variant with Improved Memory Utilization and Insertion Time," in IEEE 2012 Data Compression Conf., pp.347-356, Apr. 2012.
14 A. D. Breslow, D. P. Zhang, J. L. Greathouse, N. Jayasena, and D. M. Tullsen, "Horton Tables: Fast Hash Tables for In-memory Data-intensive Computing," USENIX ATC 16, pp.281-294, Jun. 2016.
15 J. Bob, A Hash Function for Hash Table Lookup [Internet], http://www.burtleburtle.net/bob/hash/doobs.html.
16 M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-dimensionally Equidistributed Uniform Pseudo-random Number Generator," ACM TOMACS, Vol.8, No.1, pp.3-30, 1998.   DOI
17 E. H. Kim and M. S. Kim, "Enhanced chained and Cuckoo hashing methods for multi-core CPUs," Cluster Computing, Vol.17, No.3, pp.665-680, 2014.   DOI