ClickHouse® is a real-time analytics DBMS
Go to file
Azat Khuzhin 1107988a82 Improve performance of BLAKE3 by 11% by enabling LTO for Rust
LTO in Rust produces multiple definition of `rust_eh_personality' (and
few others), and to overcome this --allow-multiple-definition has been
added.

Query for benchmark:

    SELECT ignore(BLAKE3(materialize('Lorem ipsum dolor sit amet, consectetur adipiscing elit'))) FROM numbers(1000000000) FORMAT `Null`

  upstream           : Elapsed: 2.494 sec. Processed 31.13 million rows, 249.08 MB (12.48 million rows/s., 99.86 MB/s.)
  upstream + rust lto: Elapsed: 13.56 sec. Processed 191.9 million rows, 1.5400 GB (14.15 million rows/s., 113.22 MB/s.)
  llvm BLAKE3        : Elapsed: 3.053 sec. Processed 43.24 million rows, 345.88 MB (14.16 million rows/s., 113.28 MB/s.)

Note, I thought about simply replacing it with BLAKE3 from LLVM, but:
- this will not solve LTO issues for Rust (and in future more libraries
  could be added)
- it makes integrating_rust_libraries.md useless (and there is even blog
  post)

So instead I've decided to add this quirk (--allow-multiple-definition)
to fix builds.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-05-06 22:28:56 +02:00
.github Check the PRs body directly in lambda, without rerun 2023-05-03 22:38:33 +02:00
base Add CMake option for BOOST_USE_UCONTEXT 2023-05-05 16:29:21 +00:00
benchmark Remove old file 2022-07-12 20:28:02 +02:00
cmake Merge pull request #49224 from ClickHouse/rs/cmake-gnu 2023-04-27 14:44:20 +03:00
contrib Add CMake option for BOOST_USE_UCONTEXT 2023-05-05 16:29:21 +00:00
docker EXPECTED_TO_FAIL -> NOT_FAILED 2023-05-05 17:53:15 +00:00
docs Merge pull request #47977 from ClickHouse/rs/non-experimental-qc 2023-05-06 19:49:23 +03:00
packages Revert "Added tests for ClickHouse apps help and fixed help issues" 2023-04-21 01:54:34 +03:00
programs Update play.html 2023-05-05 21:36:10 +03:00
rust Improve performance of BLAKE3 by 11% by enabling LTO for Rust 2023-05-06 22:28:56 +02:00
src Merge pull request #49527 from ClickHouse/thread-detach-fix 2023-05-06 19:11:55 +02:00
tests Merge pull request #47977 from ClickHouse/rs/non-experimental-qc 2023-05-06 19:49:23 +03:00
utils Static cast std::atomic<size_t> to uint64_t to serialize. 2023-05-03 18:11:17 -07:00
.clang-format remove duplicate indentwith 2023-04-19 00:05:52 +08:00
.clang-tidy Cleanup mess in .clang-tidy 2023-04-04 16:07:02 +00:00
.editorconfig
.exrc Fix vim settings (wrong group for autocmd) 2022-12-03 21:23:24 +01:00
.git-blame-ignore-revs Add files with revision to ignore for git blame 2022-09-13 23:05:56 +02:00
.gitattributes Ignore core.autocrlf for tests references 2022-10-05 09:13:27 +02:00
.gitignore Fix flakiness of expect tests for clickhouse-client by avoiding history overlap 2023-02-20 09:51:08 +01:00
.gitmodules Merge branch 'master' into bcrypt 2023-05-03 16:14:57 +02:00
.pylintrc
.snyk Add exclusions from the Snyk scan 2022-10-31 17:47:02 +01:00
.yamllint
AUTHORS
CHANGELOG.md Release 23.4 is not LTS 2023-04-27 11:22:11 +02:00
CMakeLists.txt Improve performance of BLAKE3 by 11% by enabling LTO for Rust 2023-05-06 22:28:56 +02:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
format_sources
LICENSE Update LICENSE 2023-01-02 00:35:32 +01:00
PreLoad.cmake CMake cleanup: Remove configuration of CMAKE_SHARED_LINKER_FLAGS 2023-03-26 17:59:39 +00:00
README.md Update README.md 2023-04-21 13:45:24 +02:00
SECURITY.md Regenerate SECURITY.md to shorten it 2023-05-03 19:25:28 +02:00

ClickHouse — open source distributed column-oriented DBMS

ClickHouse® is an open-source column-oriented database management system that allows generating analytical data reports in real-time.

How To Install (Linux, macOS, FreeBSD)

curl https://clickhouse.com/ | sh
  • Official website has a quick high-level overview of ClickHouse on the main page.
  • ClickHouse Cloud ClickHouse as a service, built by the creators and maintainers.
  • Tutorial shows how to set up and query a small ClickHouse cluster.
  • Documentation provides more in-depth information.
  • YouTube channel has a lot of content about ClickHouse in video format.
  • Slack and Telegram allow chatting with ClickHouse users in real-time.
  • Blog contains various ClickHouse-related articles, as well as announcements and reports about events.
  • Code Browser (Woboq) with syntax highlight and navigation.
  • Code Browser (github.dev) with syntax highlight, powered by github.dev.
  • Contacts can help to get your questions answered if there are any.

Upcoming Events

  • ClickHouse Spring Meetup in Manhattan - April 26 - It's spring, and it's time to meet again in the city! Talks include: "Building a domain specific query language on top of Clickhouse", "A Galaxy of Information", "Our Journey to ClickHouse Cloud from Redshift", and a ClickHouse update!
  • v23.4 Release Webinar - April 26 - 23.4 is rapidly approaching. Original creator, co-founder, and CTO of ClickHouse Alexey Milovidov will walk us through the highlights of the release.
  • ClickHouse Meetup in Berlin - May 16 - Save the date! ClickHouse is coming back to Berlin. Were excited to announce an upcoming ClickHouse Meetup that you wont want to miss. Join us as we gather together to discuss the latest in the world of ClickHouse and share user stories.

Recent Recordings

  • Recent Meetup Videos: Meetup Playlist Whenever possible recordings of the ClickHouse Community Meetups are edited and presented as individual talks. Current featuring "Modern SQL in 2023", "Fast, Concurrent, and Consistent Asynchronous INSERTS in ClickHouse", and "Full-Text Indices: Design and Experiments"
  • Recording available: v23.3 Release Webinar UNDROP TABLE, server settings introspection, nested dynamic disks, MySQL compatibility, parseDate Time, Lightweight Deletes, Parallel Replicas, integrations updates, and so much more! Watch it now!
  • All release webinar recordings: YouTube playlist