Browse > Article
http://dx.doi.org/10.7840/kics.2017.42.3.566

Sorting Cuckoo: Enhancing Lookup Performance of Cuckoo Hashing Using Insertion Sort  

Min, Dae-hong (Inha University Department of Computer Science Engineering)
Jang, Rhong-ho (Inha University Department of Computer Science Engineering)
Nyang, Dae-hun (Inha University Department of Computer Science Engineering)
Lee, Kyung-hee (Suwon University Department of Electrical Engineering)
Abstract
Key-value stores proved its superiority by being applied to various NoSQL databases such as Redis, Memcached. Lookup performance is important because key-value store applications performs more lookup than insert operations in most environments. However, in traditional applications, lookup may be slow because hash tables are constructed out of linked-list. Therefore, cuckoo hashing has been getting attention from the academia for constant lookup time, and bucketized cuckoo hashing (BCH) has been proposed since it can achieve high load factor. In this paper, we introduce Sorting Cuckoo which inserts data using insertion sort in BCH structure. Sorting Cuckoo determines the existence of a key with a relatively small memory access because data are sorted in each buckets. In particular, the higher memory load factor, the better lookup performance than BCH's. Experimental results show that Sorting Cuckoo has smaller memory access than BCH's as many as about 19 million (25%) in 10 million negative lookup operations (key is not in the table), about 4 million times (10%) in 10 million positive lookup operations (where it is) with load factor 95%.
Keywords
Key-value stores; Cuckoo hashing; Insertion sort; Hash tables; Lookup performance;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 Redis, Retrieved Jan., 19, 2017, from https://redis.io/
2 DB-Engines, Retrieved Jan., 19, 2017, from http://db-engines.com/en/ranking/
3 Memcached, Retrieved Jan., 19, 2017, from http://memcached.org/
4 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
5 B. Fan, D. G. Andersen, and M. Kaminsky, "MemC3: Compact and concurrent memcache with dumber caching and smarter hashing," The 10th USENIX Symp. NSDI 13, pp. 371-384, 2013.
6 R. Pagh and F. F. Rodler, "Cuckoo hashing," Eur. Symp. Algorithms, Springer Berlin Heidelberg, pp. 121-133, Aug. 2001.
7 U. Erlingsson, M. Manasse, and F. McSherry, "A cool and practical alternative to traditional hash tables," in Proc. WDAS'06, Jan. 2006.
8 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, Jun. 2016.
9 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.
10 W. Kuszmaul, "Brief announcement: Fast concurrent cuckoo kick-out eviction schemes for high-density tables," in Proc. 28th ACM SPAA '16, pp. 363-365, Jul. 2016.
11 R. Jang, C. Jung, K. Kim, D. Nyang, and K. Lee, "Enhancing RCC(Recyclable counter with confinement) with cuckoo hashing," J. KICS, vol. 41, no. 6, pp. 663-671, Jun. 2016.   DOI
12 X. Li, D. G. Andersen, M. Kaminsky, and M. J. Freedman, "Algorithmic improvements for fast concurrent cuckoo hashing," in Proc. ACM 9th Eur. Conf. Comput. Syst., p. 27, Apr. 2014.
13 B. Jenkins, "A new hash function for hash table lookup," Dr. Dobb's J., 1997.
14 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
15 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.