clickhouse
https://github.com/yandex/clickhouse
C++
ClickHouse is a free analytic DBMS for big data.
Triage Issues!
When you volunteer to triage issues, you'll receive an email each day with a link to an open issue that needs help in this project. You'll also receive instructions on how to triage issues.
Triage Docs!
Receive a documented method or class from your favorite GitHub repos in your inbox every day. If you're really pro, receive undocumented methods or classes and supercharge your commit history.
C++ not yet supported66 Subscribers
View all SubscribersAdd a CodeTriage badge to clickhouse
Help out
- Issues
- Parquet: String columns grow one row at a time while decoding dictionary runs and PLAIN pages; sizing them once makes ClickBench q11/q12/q26 13-22% faster
- Parallel parsing starts threads for small text files that fit in one segment; parse the first segment in the reading thread
- Parquet files read with pread: a cold range is read one read-ahead window at a time; advising the whole range first, in 128 KiB pieces, makes cold scans over 100 files 19-23% faster
- Parquet: numeric dictionary columns are decoded with a column resize and two switches per run; sizing the column once makes ClickBench q3, q4 and q30 7-18% faster
- Parquet dictionary filter: INT32/INT64 dictionaries are copied into a new column before hashing; hashing them in place makes ClickBench q20 6% faster
- Parquet ORDER BY ... LIMIT: row groups admitted before the top-K threshold tightens are still decoded; rechecking the threshold when their data is scheduled makes ORDER BY WatchID LIMIT 10 32% faster
- Parquet over S3: each stream requests the footer of an object only when it opens it; prefetching the next footers into the metadata cache makes short ClickBench queries over 100 objects more than 2x faster
- Parquet ORDER BY ... LIMIT over a glob of files: files are read in directory order, so the top-K threshold tightens late; starting with the files whose statistics hold the best values makes ClickBench Q24 18% faster
- Parquet: local files read 1% of their size to fetch the footer (since #115686) and cold reads wait for each footer in turn; a 64 KiB tail plus bounded prefetch of the next footers makes short ClickBench queries up to 24% faster, cold 2-12x
- A failed `CREATE TABLE ... ENGINE = TimeSeries` leaves the inner tables it already created
- Docs
- C++ not yet supported