{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,15]],"date-time":"2026-09-15T01:05:55Z","timestamp":1789434355688,"version":"build-2803163510"},"reference-count":24,"publisher":"Association for Computing Machinery (ACM)","issue":"1","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2013,9]]},"abstract":"<jats:p>In this paper we experimentally study the performance of main-memory, parallel, multi-core join algorithms, focusing on sort-merge and (radix-)hash join. The relative performance of these two join approaches have been a topic of discussion for a long time. With the advent of modern multi-core architectures, it has been argued that sort-merge join is now a better choice than radix-hash join. This claim is justified based on the width of SIMD instructions (sort-merge outperforms radix-hash join once SIMD is sufficiently wide), and NUMA awareness (sort-merge is superior to hash join in NUMA architectures). We conduct extensive experiments on the original and optimized versions of these algorithms. The experiments show that, contrary to these claims, radix-hash join is still clearly superior, and sort-merge approaches to performance of radix only when very large amounts of data are involved. The paper also provides the fastest implementations of these algorithms, and covers many aspects of modern hardware architectures relevant not only for joins but for any parallel data processing operator.<\/jats:p>","DOI":"10.14778\/2732219.2732227","type":"journal-article","created":{"date-parts":[[2015,5,12]],"date-time":"2015-05-12T15:37:52Z","timestamp":1431445072000},"page":"85-96","source":"Crossref","is-referenced-by-count":182,"title":["Multi-core, main-memory joins"],"prefix":"10.14778","volume":"7","author":[{"given":"Cagri","family":"Balkesen","sequence":"first","affiliation":[{"name":"ETH Zurich, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Gustavo","family":"Alonso","sequence":"additional","affiliation":[{"name":"ETH Zurich, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jens","family":"Teubner","sequence":"additional","affiliation":[{"name":"TU Dortmund University, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"M. Tamer","family":"\u00d6zsu","sequence":"additional","affiliation":[{"name":"University of Waterloo, Canada"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2013,9]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"http:\/\/software.intel.com\/en-us\/articles\/intel-architecture-code-analyzer. Online, accessed","year":"2013","unstructured":"Intel architecture code analyzer. http:\/\/software.intel.com\/en-us\/articles\/intel-architecture-code-analyzer. Online, accessed February 2013 . Intel architecture code analyzer. http:\/\/software.intel.com\/en-us\/articles\/intel-architecture-code-analyzer. Online, accessed February 2013."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.14778\/2336664.2336678"},{"key":"e_1_2_1_3_1","volume-title":"ETH Zurich","author":"Balkesen C.","year":"2012","unstructured":"C. Balkesen , J. Teubner , G. Alonso , and M. T. \u00d6zsu . Main-memory hash joins on multi-core CPUs: Tuning to the underlying hardware. Technical report , ETH Zurich , Nov. 2012 . C. Balkesen, J. Teubner, G. Alonso, and M. T. \u00d6zsu. Main-memory hash joins on multi-core CPUs: Tuning to the underlying hardware. Technical report, ETH Zurich, Nov. 2012."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2013.6544839"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1989323.1989328"},{"key":"e_1_2_1_6_1","first-page":"323","volume-title":"VLDB","author":"Bratbergsengen K.","year":"1984","unstructured":"K. Bratbergsengen . Hashing methods and relational algebra operations . In VLDB , pages 323 -- 333 , 1984 . K. Bratbergsengen. Hashing methods and relational algebra operations. In VLDB, pages 323--333, 1984."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.14778\/1454159.1454171"},{"key":"e_1_2_1_8_1","first-page":"228","volume-title":"VLDB","author":"DeWitt D. J.","year":"1986","unstructured":"D. J. DeWitt , R. H. Gerber , G. Graefe , M. L. Heytens , K. B. Kumar , and M. Muralikrishna . Gamma - a high performance dataflow database machine . In VLDB , pages 228 -- 237 , 1986 . D. J. DeWitt, R. H. Gerber, G. Graefe, M. L. Heytens, K. B. Kumar, and M. Muralikrishna. Gamma - a high performance dataflow database machine. In VLDB, pages 228--237, 1986."},{"key":"e_1_2_1_9_1","volume-title":"VLDB","author":"Fushimi S.","year":"1986","unstructured":"S. Fushimi An overview of the system software of a parallel relational database machine grace . In VLDB , 1986 . S. Fushimi et al. An overview of the system software of a parallel relational database machine grace. In VLDB, 1986."},{"key":"e_1_2_1_10_1","volume-title":"VLDB","author":"Gedik B.","year":"2007","unstructured":"B. Gedik , R. Bordawekar , and P. S. Yu . Cellsort: High performance sorting on the cell processor . In VLDB , 2007 . B. Gedik, R. Bordawekar, and P. S. Yu. Cellsort: High performance sorting on the cell processor. In VLDB, 2007."},{"key":"e_1_2_1_11_1","first-page":"406","volume-title":"ICDE","author":"Graefe G.","year":"1994","unstructured":"G. Graefe . Sort-merge-join : An idea whose time has(h) passed ? In ICDE , pages 406 -- 417 , 1994 . G. Graefe. Sort-merge-join: An idea whose time has(h) passed? In ICDE, pages 406--417, 1994."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/69.334883"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/1299042.1299047"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2213836.2213965"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.14778\/1687553.1687564"},{"key":"e_1_2_1_16_1","volume-title":"Application of hash to data base machine and its architecture. New Generation Comput., 1(1)","author":"Kitsuregawa M.","year":"1983","unstructured":"M. Kitsuregawa Application of hash to data base machine and its architecture. New Generation Comput., 1(1) , 1983 . M. Kitsuregawa et al. Application of hash to data base machine and its architecture. New Generation Comput., 1(1), 1983."},{"key":"e_1_2_1_17_1","volume-title":"Volume 3: Sorting and Searching","author":"Knuth D. E.","year":"1998","unstructured":"D. E. Knuth . The Art of Computer Programming , Volume 3: Sorting and Searching . Addison-Wesley , 2 nd edition, 1998 . D. E. Knuth. The Art of Computer Programming, Volume 3: Sorting and Searching. Addison-Wesley, 2nd edition, 1998.","edition":"2"},{"key":"e_1_2_1_18_1","volume-title":"CIDR","author":"Li Y.","year":"2013","unstructured":"Y. Li , I. Pandis , R. M\u00fcller , V. Raman , and G. M. Lohman . Numa-aware algorithms: the case of data shuffling . In CIDR , 2013 . Y. Li, I. Pandis, R. M\u00fcller, V. Raman, and G. M. Lohman. Numa-aware algorithms: the case of data shuffling. In CIDR, 2013."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/TKDE.2002.1019210"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/984523.984526"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-011-0232-z"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1807167.1807207"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/67544.66937"},{"key":"e_1_2_1_24_1","volume-title":"VLDB","author":"Shatdal A.","year":"1994","unstructured":"A. Shatdal , C. Kant , and J. F. Naughton . Cache conscious algorithms for relational query processing . In VLDB , 1994 . A. Shatdal, C. Kant, and J. F. Naughton. Cache conscious algorithms for relational query processing. In VLDB, 1994."}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/2732219.2732227","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T09:51:37Z","timestamp":1672221097000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/2732219.2732227"}},"subtitle":["sort\n            <i>vs.<\/i>\n            hash revisited"],"short-title":[],"issued":{"date-parts":[[2013,9]]},"references-count":24,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2013,9]]}},"alternative-id":["10.14778\/2732219.2732227"],"URL":"https:\/\/doi.org\/10.14778\/2732219.2732227","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2013,9]]}}}