So how does it compare to Clickhouse?
We have not benched against clickhouse yet. Sorry. Sounds like this should be an interesting things to do!
Using SIMD to aggregate billions of values per second
51–60 of 74 posts
Re: Using SIMD to aggregate billions of values per second
#52I assume the values must be all be in memory beforehand and not hard storage.
That sum() SQL is all you do as a user. There is no additional magic there. The performance numbers are indeed best when data is in memory. However in reality sum() goes over memory mapped file, lazy loading data as required.
Re: Using SIMD to aggregate billions of values per second
#53Earlier quoted context omitted.
Good summary, thank you. - we will extend SIMD to where clause, keyed aggregations, sampling, ordering, joins etc. It is a matter of time. - do you mind elaborating on how we screwed up date and time? - what makes you think we are never going to compete on performance with kdb+?
- nano are important for keeping ordering. while you may return results in insert order it is nice to have them so any other operations done in them outside the db you can retain (or recreate) that ordering. in financial systems nanos have become a sort of defacto standard for this. for examsple, all our messaging timestamps at places i've worked are always nano for anything written in the last 5-10 years. Also when…
Re: Using SIMD to aggregate billions of values per second
#54Earlier quoted context omitted.
Good summary, thank you. - we will extend SIMD to where clause, keyed aggregations, sampling, ordering, joins etc. It is a matter of time. - do you mind elaborating on how we screwed up date and time? - what makes you think we are never going to compete on performance with kdb+?
The reason why you cannot ever compete with kdb+/q is because the database and language run in one address space. Your benchmark gets around this problem by using the built in sum() function, but kdb+/q can just execute arbitrary code and never suffer a performance penalty. Unless you plan on integrated a high performance programming language into your DB, it simply will not be possible to ever meaningfully compete o…
Re: Using SIMD to aggregate billions of values per second
#55QuestDB co-founder and CTO here - happy to share questdb, a performance-driven open-source time-series database that uses SQL. High performance databases have a reputation of being inaccessible. They are expensive, closed-source, and require complex proprietary languages. We have made our code available under Apache 2.0. Under this new release, QuestDB leverages SIMD instructions, vectorizations and parallel executio…
Amazing work either way. The space of databases can never have too much competition.
Re: Using SIMD to aggregate billions of values per second
#56From the KDB+ 4.0 release notes:
2020.03.26 FIX fixed performance regression for max. e.g. q)x:100000000?100;system"ts:10 max x"
Re: Using SIMD to aggregate billions of values per second
#57Were these benchmarks before or after 2020.03.26? There was a bug that caused max operations to take twice as long. From the KDB+ 4.0 release notes: 2020.03.26 FIX fixed performance regression for max. e.g. q)x:100000000?100;system"ts:10 max x"
Re: Using SIMD to aggregate billions of values per second
#58QuestDB co-founder and CTO here - happy to share questdb, a performance-driven open-source time-series database that uses SQL. High performance databases have a reputation of being inaccessible. They are expensive, closed-source, and require complex proprietary languages. We have made our code available under Apache 2.0. Under this new release, QuestDB leverages SIMD instructions, vectorizations and parallel executio…
Just wanted to point out a small typo in the docs: "LASTEST BY" ( https://www.questdb.io/docs/crudOperations )
Re: Using SIMD to aggregate billions of values per second
#59Earlier quoted context omitted.
We have not benched against clickhouse yet. Sorry. Sounds like this should be an interesting things to do!
The broader question though is how does your offering compare to Clickhouse?
Re: Using SIMD to aggregate billions of values per second
#60QuestDB co-founder and CTO here - happy to share questdb, a performance-driven open-source time-series database that uses SQL. High performance databases have a reputation of being inaccessible. They are expensive, closed-source, and require complex proprietary languages. We have made our code available under Apache 2.0. Under this new release, QuestDB leverages SIMD instructions, vectorizations and parallel executio…
I'm also a little surprised at the speedup using SIMD. If it's RAM constrained, and it clearly is because it scales with the number of memory channels, then I completely fail to understand how instructions - which are bloody fast to execute (SIMD or not) compared to slow RAM access - could benefit you. Both SIMD or not should be waiting on memory AFAICS. Except you clearly do get a big speedup, could anyone enlighten me on this?