r/databasedevelopment • u/IndicationAntique667 • 2d ago
I Tried to Find How ClickHouse Implements String Hash Tables
Hi everyone,
I'm learning and exploring topics around database systems. This is a continuation from my last post here: https://www.reddit.com/r/Clickhouse/comments/1x0hu4s/i_tried_to_find_how_clickhouse_keeper_takes/
I think in one of the lectures in CMU's Database Systems course, Prof. Andy had mentioned that ClickHouse has different implementations of hash tables for different datatypes. I wanted to see what these are. So I tried to explore how String Hash Tables are implemented in ClickHouse.
I recorded a concept and code walkthrough here: https://youtu.be/wFCXI9P6Trg
A short summary of the points in the video:
- Why String keys can hamper performance of hash tables
- How ClickHouse uses String Adaptive Hash Tables to improve performance
- The code walk through the files: StringHashTable.h
Do give it a watch and consider supporting by liking the video or subscribing :)
This is partly for my own future reference and partly to share with others who might be interested in it. Would love feedback and corrections from people who know this stuff deeply.