REVIEW 2 major objections 5 minor 38 references
Global Hash Tables Strike Back! An Analysis of Parallel GROUP BY Aggregation
T0 review · 2 major / 5 minor · reviewed 2026-08-15 · deepseek-v4-flash
Pith's one-line read Fully concurrent GROUP BY using a single purpose-built hash table can match or beat partitioning-based aggregation in morsel-driven engines when the table is specialized for the lookup-and-insert ticketing workload.
desk verdict A well-executed experimental study showing purpose-built shared hash tables can match partitioned GROUP BY, but the perfect-cardinality-estimation assumption makes the practical claim conditional. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The central object is the Folklore* hash table: a lock-free linear-probing hash table that supports only a single atomic get-or-insert operation, in which a key is looked up and, if absent, assigned an integer ticket via a one-word compare-and-swap on a pre-reserved slot state. A 'fuzzy ticketer' gives each thread a private range of ticket values so the shared counter is only touched when a range is exhausted, and zero-allocation (calloc-style) defers table initialization so allocation leaves the single-threaded critical path. Tickets index a dense vector of partial aggregates, which are updated either atomically or in per-thread vectors; the table also stores a copy of keys in ticket order for final materialization. This combination reduces the concurrent data structure's job to the minimal lookup-and-insert workload that group aggregation actually requires.
What would settle it
Run an end-to-end comparison on the paper's own high-cardinality dataset (10 million unique keys, SUM) at 48 threads while forcing the fully concurrent implementation to start with a hash table sized at one-quarter of the true cardinality, forcing multiple resizes, and measure whether the fully concurrent method still matches partitioned aggregation; a decisive slowdown would show the central claim holds only under the paper's perfect-sizing assumption.
Extended reading notes
Core claim
The paper's central claim is that the long-standing verdict against shared-hash-table aggregation stems from using general-purpose concurrent hash tables, which must support deletes, shrinking, and mixed workloads; a table written only for the lookup-and-insert pattern of group aggregation removes the scalability barrier. Concretely, the authors show that their Folklore* linear-probing table, paired with a fuzzy ticket counter and zero-allocation, achieves a 37.6x speedup on low-cardinality workloads at 48 threads and, end-to-end, a fully concurrent implementation reaches parity or beats the partitioned baseline on synthetic workloads, with a heavy-hitter extreme as the notable exception. They also document the operational tradeoffs: atomic updates win when keys are unique, thread-local updates win under skew, and resizing remains the weak spot.
Load-bearing premise
The claimed advantage assumes the database knows the number of distinct keys ahead of time so the hash table and partial aggregate vectors are allocated at exactly the right size; in the forced-resize test at half capacity, latency rises by up to 5.2x in the unique-keys case, so the practical viability claim depends on accurate cardinality estimates.
Editorial extensions
If this is right
- A database engine can implement parallel GROUP BY with a single shared hash table instead of partitioning, eliminating the second aggregation pass and the associated spilling and memory overhead in many workloads.
- Per-query choice of update method matters: atomic updates win on high-cardinality, unique-key inputs, while thread-local updates win under skew and low cardinality; the paper's measurements quantify when each should be selected.
- Implementers should cap the thread count for thread-local updates to avoid inverse scaling from the materialization merge, and should prefer zero-allocation for large hash tables to keep allocation off the single-threaded path.
- Resizing is the main remaining weakness: with tables sized at half the required capacity, end-to-end latency rises by up to 5.2x for unique keys, so accurate cardinality estimation is a prerequisite for the approach's practical viability.
Reading between the lines
- Viewing ticketing as incremental perfect hashing suggests that offline perfect hash functions, already proposed for OLAP aggregation, could eliminate ticketing contention entirely—an extension the paper names but does not implement.
- A hybrid update strategy, using thread-local aggregation for heavy hitters and atomic updates for the rest, would likely close the heavy-hitter gap that is the paper's clearest exception; such hybrids already exist in the aggregation literature.
- The paper's results were obtained under perfect cardinality estimation; feeding the same implementation with the estimation errors of a real optimizer would be a natural stress test and could change the recommended operating region.
- Because the benchmark uses only morsel-driven execution, the conclusions may not transfer to operator-level or pipeline-parallel engines, where the thread-to-data assignment and synchronization patterns differ.
Signed reviews
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper revisits fully concurrent hash-based GROUP BY aggregation, where a shared global hash table maps each key to a ticket that indexes a vector of partial aggregates, and compares it against the partitioned aggregation approach with local preaggregation used in morsel-driven engines. The authors evaluate several concurrent hash table designs for the ticketing step, compare atomic, locking, and thread-local update methods, and then report end-to-end scaling experiments on AMD, ARM, and Intel platforms across low, high, and unique cardinality datasets with skew variants, along with profiling, resizing, memory, and tuple-size analyses. The main claim is that a simple purpose-built linear-probing hash table with a customized atomic get-or-insert operation makes fully concurrent aggregation competitive with, and often faster than, partitioning-based aggregation, except in the acknowledged heavy-hitter regime where the partitioned baseline retains an advantage.
Significance. If the stated results hold, the paper provides a concrete, implementable alternative to partitioned GROUP BY aggregation, with useful practical guidance: linear probing suffices for the ticketing workload, lockless fast paths are essential, a fuzzy ticket counter avoids atomic-counter contention, and thread-local updates are robust under skew but memory-hungry at high thread counts. The study is extensive and well-designed in several respects: it covers three architectures, uses top-down profiling and performance counters, includes resizing and peak-memory analyses, and makes the source code and artifacts available. The paper is also careful to acknowledge exceptions (e.g., heavy hitters at high thread counts) and to present its conclusions in a balanced way. The main weakness is that the overarching practical-viability claim depends on an assumption of perfect cardinality estimation, and the paper's single robustness test for this assumption shows a large performance penalty in the worst case.
major comments (2)
- [§2.4, §4.5] The central claim that fully concurrent aggregation is a viable alternative to partitioning rests on the assumption, stated in Section 2.4, that all end-to-end experiments except Section 4.5 assume perfect cardinality estimation and therefore perfectly sized hash tables and partial aggregate vectors. Section 4.5, the only robustness test, forces a single resize by allocating the ticketing table at half the required capacity. The resulting latency increase is substantial: a 5.2x slowdown for unique keys with atomic updates and 2.0x for thread-local updates at 48 threads (Figure 13). Because the paper does not report the resized configuration against the partitioned baseline, the unique-key advantage visible in Figure 7 is not known to survive this penalty. Real cardinality estimates after filters, joins, and on skewed data are often off by more than a factor of two, and larger underestimates would trigger multiple resizes, which Section 4.5 does not test. The manuscript labels resizing as future work, but the stated conclusion that fully concurrent aggregation is a viable alternative requires either experimentally demonstrated resize costs or a scoping of the claim to workloads with accurate cardinality estimates. This is a load-bearing condition, not a cosmetic caveat.
- [§3.2, §4.1] The paper's recommendation to choose the update method adaptively based on the number of unique keys (Section 3.2, Table 2) is derived from experiments that assume exact cardinality knowledge: the isolated update benchmarks in Section 3.2 use a perfect hash function (ticket = key), and the end-to-end experiments in Section 4.1 assume perfectly sized structures. The practical guidelines in the 'Recommendations' paragraph of Section 4.1 therefore presume that the optimizer's cardinality estimate is reliable. The paper does not evaluate how estimation error affects the choice between atomic and thread-local updates, nor how the 5.2x resize penalty interacts with the switch between methods. Without such an evaluation, the adaptive-guidance claim is only as strong as the perfect-estimation assumption. I would ask the authors to either test the adaptive policy under noisy cardinality estimates or explicitly restrict the guidelines to settings where cardinality estimates are known to be accurate.
minor comments (5)
- [Algorithm 1] In the pseudocode, the expression 'table.[idx].k.load()' appears to contain a stray dot; it should likely read 'table[idx].k.load()'.
- [§4.5] The sentence 'the fully concurrent workload is does display significant performance degradation' contains a verb duplication; also, the final sentence 'Resizing performance and should be an important dimension' is grammatically incomplete.
- [§3.1] The term 'zero-allocation' is used to describe calloc-style zero-initialized memory that enables copy-on-write; 'zero-initialized allocation' would be less ambiguous and would avoid implying that no allocation occurs.
- [§4] The comparison baseline is an in-house implementation of partitioned aggregation, not a production engine's aggregation path; a note about how this choice affects generalizability would be helpful, since real engines may have additional optimizations or overheads.
- [References] Reference [16] is cited without a full title; listing the actual paper title would improve completeness.
Circularity Check
No circularity: central claims are direct experimental measurements, not derived from fitted inputs or self-citation.
full rationale
The paper's main result—that a purpose-built linear-probing concurrent hash table with a customized get-or-insert function can match or outperform partitioning in morsel-driven aggregation—is supported by direct benchmarks on synthetic workloads (Section 4.1, Figures 7, 11–13). There are no parameters fitted to a subset of data and then renamed as predictions; the Folklore* design is specified by Algorithm 1 and its performance is measured, not derived from an assumed conclusion. No load-bearing claim is justified solely by the authors' prior work; citations such as [20], [23], and [29] supply external baselines and prior hash-table designs, and the authors' own contribution is the customized ticketing/update decomposition and its empirical evaluation. The assumption of perfect cardinality estimation (Section 2.4) limits how far the results generalize, and the forced-resize experiment (Section 4.5) shows up to a 5.2x latency increase for unique keys with atomic updates, but these are empirical caveats and robustness concerns about the strength of the practical claim, not circular reasoning. The paper separates ticketing and update stages, and its theoretical statements (e.g., O(k n) thread-local memory usage) are elementary accounting rather than results that presuppose the conclusion. Accordingly, no circular step can be exhibited with the required specificity, and the honest finding is no significant circularity.
Assumptions & free parameters
free parameters (5)
- Low cardinality =
1000 unique keys
- High cardinality =
10 million unique keys
- Unique cardinality =
100 million unique keys
- Zipf exponent =
0.8
- Heavy-hitter fraction =
50%
assumptions (6)
- domain assumption Morsel-driven execution with columnar vectors and work-stealing is the assumed model.
- domain assumption SUM is representative of aggregation functions.
- domain assumption The in-house Rust partitioned baseline accurately represents production algorithms.
- domain assumption Perfect cardinality estimation is available for sizing.
- domain assumption All data structures fit in memory.
- standard math Hardware provides correct compare-and-swap and atomic operations.
Cite this review
Pith. "Pith review of Global Hash Tables Strike Back! An Analysis of Parallel GROUP BY Aggregation." pith.science (2026). https://pith.science/paper/RUMZ6BTD
@misc{pith2026250504153,
author = {Pith},
title = {Pith review of: Global Hash Tables Strike Back! An Analysis of Parallel GROUP BY Aggregation},
year = {2026},
howpublished = {\url{https://pith.science/paper/RUMZ6BTD}},
note = {Machine review of arXiv:2505.04153}
}
read the original abstract
Efficiently computing group aggregations (i.e., GROUP BY) on modern architectures is critical for analytic database systems. Hash-based approaches in today's engines predominantly use a partitioned approach, in which incoming data is partitioned by key values so that every row for a particular key is sent to the same thread. In this paper, we revisit a simpler strategy: a fully concurrent aggregation technique using a shared hash table. While approaches using general-purpose concurrent hash tables have generally been found to perform worse than partitioning-based approaches, we argue that the key ingredient is customizing the concurrent hash table for the specific task of group aggregation. Through experiments on synthetic workloads (varying key cardinality, skew, and thread count), we demonstrate that in morsel-driven systems, a purpose-built concurrent hash table can match or surpass partitioning-based techniques. We also analyze the operational characteristics of both techniques, including resizing costs and memory pressure. In the process, we derive practical guidelines for database implementers. Overall, our analysis indicates that fully concurrent group aggregation is a viable alternative to partitioning.
Figures
Figures from the paper (9 more)
Reference graph
Works this paper leans on
-
[1]
Maximilian Bandle, Jana Giceva, and Thomas Neumann. 2021. To Partition, or Not to Partition, That is the Join Question in a Real System. InProceedings of the 2021 International Conference on Management of Data. ACM, Virtual Event China, 168–180. https://doi.org/10.1145/3448016.3452831
arXiv 2021
-
[2]
Bender, Alex Conway, Martín Farach-Colton, William Kuszmaul, and Guido Tagliavini
Michael A. Bender, Alex Conway, Martín Farach-Colton, William Kuszmaul, and Guido Tagliavini. 2023. Iceberg Hashing: Optimizing Many Hash-Table Criteria at Once.J. ACM70, 6 (Dec. 2023), 1–51. https://doi.org/10.1145/3625817
doi:10.1145/3625817 2023
-
[3]
Altan Birler, Tobias Schmidt, Philipp Fent, and Thomas Neumann. 2024. Simple, Efficient, and Robust Hash Tables for Join Processing. InProceedings of the 20th International Workshop on Data Management on New Hardware. ACM, Santiago AA Chile, 1–9. https://doi.org/10.1145/3662010.3663442
arXiv 2024
-
[4]
Boncz, Marcin Zukowski, and Niels Nes
Peter A. Boncz, Marcin Zukowski, and Niels Nes. 2005. MonetDB/X100: Hyper- Pipelining Query Execution. www.cidrdb.org, Asilomar, CA, USAW, 225–237. http://cidrdb.org/cidr2005/papers/P19.pdf
work page 2005
-
[5]
John Cieslewicz and Kenneth A. Ross. 2007. Adaptive aggregation on chip multiprocessors. InProceedings of the 33rd International Conference on Very Large Data Bases (VLDB ’07). VLDB Endowment, Vienna, Austria, 339–350
work page 2007
-
[6]
Rob Clucas. [n.d.]. Leapfrog. https://github.com/robclu/leapfrog
-
[7]
Damian Dechev, Peter Pirkelbauer, and Bjarne Stroustrup. 2010. Understanding and Effectively Preventing the ABA Problem in Descriptor-Based Lock-Free Designs. In2010 13th IEEE International Symposium on Object/Component/Service- Oriented Real-Time Distributed Computing. IEEE, Carmona, Spain, 185–192. https: //doi.org/10.1109/isorc.2010.10
-
[8]
Thanh Do, Goetz Graefe, and Jeffrey Naughton. 2022. Efficient Sorting, Duplicate Removal, Grouping, and Aggregation.ACM Transactions on Database Systems 47, 4 (Dec. 2022), 1–35. https://doi.org/10.1145/3568027
Show all 38 references
-
[9]
Dominik Durner, Viktor Leis, and Thomas Neumann. 2019. On the Impact of Memory Allocation on High-Performance Query Processing. InProceedings of the 15th International Workshop on Data Management on New Hardware. ACM, Amsterdam Netherlands, 1–3. https://doi.org/10.1145/3329785.3329918
2019
-
[10]
Philipp Fent and Thomas Neumann. 2021. A practical approach to groupjoin and nested aggregates.Proceedings of the VLDB Endowment14, 11 (July 2021), 2383–2396. https://doi.org/10.14778/3476249.3476288 Publisher: Association for Computing Machinery (ACM)
2021
-
[11]
Gaffney and Jignesh M
Kevin P. Gaffney and Jignesh M. Patel. 2024. Is Perfect Hashing Practical for OLAP Systems? www.cidrdb.org, Chaminade, HI, USA. https://www.cidrdb.org/ cidr2024/papers/p65-gaffney.pdf
2024
-
[12]
Graefe, A
G. Graefe, A. Linville, and L.D. Shapiro. 1994. Sort vs. hash revisited.IEEE Transactions on Knowledge and Data Engineering6, 6 (Dec. 1994), 934–944. https: //doi.org/10.1109/69.334883
1994 doi
-
[13]
Graefe and W.J
G. Graefe and W.J. McKenna. 1993. The Volcano optimizer generator: extensibility and efficient search. InProceedings of IEEE 9th International Conference on Data Engineering. IEEE Comput. Soc. Press, Vienna, Austria, 209–218. https://doi.org/ 10.1109/icde.1993.344061
1993
-
[14]
Pearlmutter, and Phil Maguire
Robert Kelly, Barak A. Pearlmutter, and Phil Maguire. 2020. Lock-Free Hopscotch Hashing. InSymposium on Algorithmic Principles of Computer Systems. Society for Industrial and Applied Mathematics, Philadelphia, PA, 45–59. https://doi. org/10.1137/1.9781611976021.4
2020 doi
-
[15]
Timo Kersten, Viktor Leis, Alfons Kemper, Thomas Neumann, Andrew Pavlo, and Peter Boncz. 2018. Everything you always wanted to know about compiled and vectorized queries but were afraid to ask.Proceedings of the VLDB Endowment11, 13 (Sept. 2018), 2209–2222. https://doi.org/10....
2018
-
[16]
Andreas Kipf, Michael Freitag, Dimitri Vorona, Peter Boncz, Thomas Neumann, and Alfons Kemper. 2019. Estimating filtered group-by queries is hard: Deep learning to the rescue. Los Angeles, CA, USA
2019
-
[17]
Laurens Kuiper, Peter Boncz, and Hannes Mühleisen. 2024. Robust External Hash Aggregation in the Solid State Age. In2024 IEEE 40th International Conference on Data Engineering (ICDE). IEEE, Utrecht, Netherlands, 3753–3766. https: //doi.org/10.1109/icde60146.2024.00288
2024
-
[18]
Andrew Lamb, Matt Fuller, Ramakrishna Varadarajan, Nga Tran, Ben Vandiver, Lyric Doshi, and Chuck Bear. 2012. The vertica analytic database: C-store 7 years later.Proceedings of the VLDB Endowment5, 12 (Aug. 2012), 1790–1801. https://doi.org/10.14778/2367502.2367518
2012
-
[19]
Andrew Lamb, Daniël Heres, and Raphael Taylor-Davies. 2023. Aggregating Millions of Groups Fast in Apache Arrow DataFusion 28.0.0. https://arrow. apache.org/blog/2023/08/05/datafusion_fast_grouping/
2023
-
[20]
Viktor Leis, Peter Boncz, Alfons Kemper, and Thomas Neumann. 2014. Morsel- driven parallelism: a NUMA-aware query evaluation framework for the many- core age. InProceedings of the 2014 ACM SIGMOD International Conference on Management of Data. ACM, Snowbird Utah USA, 743–754. ...
2014
-
[21]
Andersen, Michael Kaminsky, and Michael J
Xiaozhou Li, David G. Andersen, Michael Kaminsky, and Michael J. Freedman
-
[22]
Hua Luan and Lei Chang. 2022. An experimental study of group-by and aggre- gation on CPU-GPU processors.Journal of Engineering and Applied Science69, 1 (Dec. 2022). https://doi.org/10.1186/s44147-022-00108-1 Publisher: Springer Science and Business Media LLC
2022 doi
-
[23]
Tobias Maier, Peter Sanders, and Roman Dementiev. 2018. Concurrent Hash Tables: Fast and General(?)!ACM Transactions on Parallel Computing5, 4 (Dec. 2018), 1–32. https://doi.org/10.1145/3309206 Publisher: Association for Com- puting Machinery (ACM)
2018 doi
-
[24]
Ingo Müller, Peter Sanders, Arnaud Lacurie, Wolfgang Lehner, and Franz Färber
-
[25]
Raghunath Othayoth Nambiar and Meikel Poess. 2006. The making of TPC-DS. InProceedings of the 32nd International Conference on Very Large Data Bases (VLDB ’06). VLDB Endowment, Seoul, Korea, 1049–1058
2006
-
[26]
Bender, Alex Conway, Martin Farach-Colton, William Kuszmaul, Guido Tagliavini, and Rob Johnson
Prashant Pandey, Michael A. Bender, Alex Conway, Martin Farach-Colton, William Kuszmaul, Guido Tagliavini, and Rob Johnson. 2023. IcebergHT: High Performance Hash Tables Through Stability and Low Associativity.Proc. ACM Manag. Data1, 1 (May 2023), 1–26. https://doi.org/10.1145...
2023 doi
-
[27]
Jeff Preshing. 2016. Leapfrog Probing. https://preshing.com/20160314/leapfrog- probing
2016
-
[28]
Mark Raasveldt and Hannes Mühleisen. 2019. DuckDB: an Embeddable Analytical Database. InProceedings of the 2019 International Conference on Management of Data. ACM, Amsterdam Netherlands, 1981–1984. https://doi.org/10.1145/ 3299869.3320212
2019
-
[29]
Lohman, Tim Malkemus, Rene Mueller, Ippokratis Pandis, Berni Schiefer, David Sharpe, Richard Sidle, Adam Storm, and Liping Zhang
Vijayshankar Raman, Gopi Attaluri, Ronald Barber, Naresh Chainani, David Kalmuk, Vincent KulandaiSamy, Jens Leenstra, Sam Lightstone, Shaorong Liu, Guy M. Lohman, Tim Malkemus, Rene Mueller, Ippokratis Pandis, Berni Schiefer, David Sharpe, Richard Sidle, Adam Storm, and Liping...
2013 doi
-
[30]
Bashar Romanous, Skyler Windh, Ildar Absalyamov, Prerna Budhkar, Robert Halstead, Walid Najjar, and Vassilis Tsotras. 2021. Efficient local locking for massively multithreaded in-memory hash-based operators.The VLDB Journal30, 3 (May 2021), 333–359. https://doi.org/10.1007/s00...
2021 doi
- [31]
-
[32]
Gaurav Vaghasiya and Shiva Jahangiri. 2024. A Hybrid Approach to Group-By and Aggregation Query Execution. In2024 IEEE International Conference on Big Data (BigData). IEEE, Washington, DC, USA, 3799–3808. https://doi.org/10. 1109/BigData62323.2024.10825803
2024
-
[33]
Joel Wejdenstål. [n.d.]. DashMap. https://github.com/xacrimon/dashmap
-
[34]
Ahmad Yasin. 2014. A Top-Down method for performance analysis and counters architecture. In2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS). IEEE, CA, USA, 35–44. https://doi.org/10.1109/ ISPASS.2014.6844459
2014
-
[35]
Ross, and Norases Vesdapunt
Yang Ye, Kenneth A. Ross, and Norases Vesdapunt. 2011. Scalable Aggregation on Multicore Processors. InProceedings of the Seventh International Workshop on Data Management on New Hardware. ACM, Athens Greece, 1–9. https: //doi.org/10.1145/1995441.1995442
2011
-
[36]
Franklin, Scott Shenker, and Ion Stoica
Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin, Scott Shenker, and Ion Stoica. 2010. Spark: cluster computing with working sets. InProceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing (HotCloud’10). USENIX Association, Boston, MA, 10. https://doi.o...
2010
-
[2014]
InProceed- ings of the Ninth European Conference on Computer Systems
Algorithmic improvements for fast concurrent Cuckoo hashing. InProceed- ings of the Ninth European Conference on Computer Systems. ACM, Amsterdam The Netherlands, 1–14. https://doi.org/10.1145/2592798.2592820
-
[2015]
InProceedings of the 2015 ACM SIGMOD International Conference on Management of Data
Cache-Efficient Aggregation: Hashing Is Sorting. InProceedings of the 2015 ACM SIGMOD International Conference on Management of Data. ACM, Melbourne Victoria Australia, 1123–1136. https://doi.org/10.1145/2723372.2747644
2015
Reviewed August 15, 2026 · model on record in the stance chip above.
Discussion (0). Continue with ORCID to comment.