tiflash VS avx_qsort

Compare tiflash vs avx_qsort and see what are their differences.

tiflash

The analytical engine for TiDB and TiDB Cloud. Try free: https://tidbcloud.com/free-trial (by pingcap)

avx_qsort

Quick sort code using AVX2 instructions (by vkrasnov)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
tiflash avx_qsort
5 2
929 67
1.3% -
9.7 10.0
2 days ago almost 7 years ago
C++ Assembly
Apache License 2.0 -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

tiflash

Posts with mentions or reviews of tiflash. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-04.
  • Significantly faster quicksort using SIMD
    8 projects | news.ycombinator.com | 4 Jun 2022
    This is great, and can definitely help quite a lot database and big data projects. I can immediately imagine this is a perfect match to one open source HTAP system (https://github.com/tigraph/tidb) which uses SIMD in their columnar processing engine TiFlash (https://github.com/pingcap/tiflash).
  • Best language for database kernel development?
    3 projects | news.ycombinator.com | 28 May 2022
    One of the founder of TiDB/TiKV here from [PingCAP](https://pingcap.com)

    I have been thinking about this problem with my peers when I started to build [TiDB](https://github.com/pingcap/tidb) seven years ago. At that time, nearly all of us were familiar with Go language, so we decided to use Go to build the SQL layer of TiDB. Thanks to Go, we could develop TiDB very quickly and released the first MVP in half a year. I remembered clearly the sense when we ran TPC-C successfully, although the TPMC was just 1 at that time, this was a good start for us.

    But Go had some problems, e.g. the GC was not good before, the fair scheduling might cause some latency problem, or data racing may happen sometimes. So when we decided to build a distributed storage (aha, [TiKV](https://githbu.com/tikv/tikv), we wanted use another language to guarantee safety. I really admire our courage - we chose Rust which was just released 1.0 and missed lots of libraries at that time. Now it seems that this is an awesome choice, TiKV has been graduated from CNCF, and been used as building block not only for TiDB, but also for other distributed systems. Thanks Rust.

    When TiDB started being used in many companies, we found that our customer not only ran lots of online transactions in TiDB, but also they wanted to ran some realtime analytic queries directly because the data has been in TiDB already. So we decided to build a HTAP database, to introduce a column storage beside TiKV, this is [TiFlash](https://github.com/pingcap/tiflash). We build TiFlash based on Clickhouse, so of course, we use C++.

    As you can see, to build only one integrated database - TiDB, we at least use three languages, every language has its own reason to be introduced. We can treat the distributed database as a service system, each service can be built with your favorite language and the services are linked by gRPC like TiDB does now. You may doubt that - “hey, guys, you are building a database, performance is very importance”. Yes, this is true, but we also build a complex distributed system, especially on the cloud. Scale-out, elastic, user experience must be important too. This is trade off for an engineer :-)

  • TiFlash: The columnar storage engine of TiDB, is now open sourced
    1 project | news.ycombinator.com | 5 Apr 2022
  • Tiflash, Yet another columnar storage engine based on ClickHouse
    1 project | news.ycombinator.com | 31 Mar 2022
  • TiFlash: Analytical Engine for TiDB
    1 project | news.ycombinator.com | 25 Mar 2022

avx_qsort

Posts with mentions or reviews of avx_qsort. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-17.
  • Sorting with SIMD
    9 projects | news.ycombinator.com | 17 Dec 2022
    The original (AFAICT) work on SIMD quick sort, also mentioned in the google post also implemented pointer sort by loading a pointed key using gather instructions and the method can be used for an array of structs. https://github.com/vkrasnov/avx_qsort/blob/master/qsort_AVX2...
  • Significantly faster quicksort using SIMD
    8 projects | news.ycombinator.com | 4 Jun 2022
    I'm the co-author of one of the papers referenced in the blogpost, (Fast Quicksort Implementation Using AVX Instructions), we did write the AVX512 code back in 2015, just had nowhere to run it, at least publicly. The paper also very explicitly says that the lookup tables can be instead replaced by the AVX512 compress instructions. The code for that paper is available in https://github.com/vkrasnov/avx_qsort

What are some alternatives?

When comparing tiflash and avx_qsort you can also consider the following projects:

vops

highway - Performance-portable, length-agnostic SIMD with runtime dispatch

perf-challenge6

parallel-string-sorting - Collection of Parallel String Sorting Algorithms including Parallel Super Scalar String Sample Sort and Parallel Multiway LCP-Mergesort

zerovm-samples - Sample code and libraries built for ZeroVM