1.1B Taxi Rides with 20 Nvidia Tesla P100s and BrytlytDB
tech.marksblogg.com
tech.marksblogg.com
1. It’s a simple GROUP BY on a single table. You’re basically just measuring the scan speed. Real queries are dominated by shuffles and the probe side of joins; these aren’t even present in this benchmark.
2. He runs the query repeatedly and takes the fastest time. This is far too cache-friendly. In this example, the intermediate stages of the query or even the result are probably just sitting in memory on the nodes after the first couple runs.
If you want to measure the performance of a data warehouse, you need to use more complex queries and not run the exact same query repeatedly.
edit: Coincidentally, I am giving a talk about data warehouse benchmarking TONIGHT in NYC. If you’re in NY and interested in this subject, please come! https://www.meetup.com/mysqlnyc/
I also wonder how much of the speed up is due to the GPU parallelization vs the DB size seem to fit within the size of DDR4.
" 0.005 0.011 0.103 0.188 BrytlytDB 2.1 & 5-node IBM Minsky cluster" NVME
"1.034 3.058 5.354 12.748 ClickHouse, Intel Core i5 4670K" SSD
The core i5 system only has 16GB of RAM. I love to see what that number would looks like if it also has 512GB or more of DDR4 with NVME drive.Also one can also try increase to data size from 1.1 B -> 1000B and see how it scale on Minsky cluster.
If I had a large query set to run on each vendor I'd be more likely to hit compatibility issues which could mean fewer benchmarks going out. As it is I spend a lot of time getting hardware and software vendors together for these benchmarks.
If caches were being hit I'd expect a lot more DBs hitting single millisecond times in my benchmarks but as far as I can see, there is a clear delta between the various setups I've tested:
I hear you about compatibility. I think this benchmark would be greatly improved by rewriting the query to include a subquery and a fact-to-fact join using the same table. For example, you could do a subquery where you find the longest and shortest ride for each driver each day, and then join that back to the full table and calculate something. That would do a much better job of exercising the key features of the query planner, while still being simple and compatible.
Even without those though, this is a good read, thanks for it!
I agree there is quite a bit more to a data warehouse performance than table scan speed. There are queries where scan speed is important and in the retail industry, COUNT DISTINCT is one of them.
I agree the queries in this benchmark is simple, that doesn't mean they're not significant.
Here's a demo of Azure Analysis Services looking at similar Taxi data. Demo starts around 11:00 https://azure.microsoft.com/en-us/blog/christian-wade-shows-...
Ninja edit: I missed the data load times. I have a current customer loading a (much larger than my laptop demo) 1.5B row dataset with large dimensionality into a single node SSAS instance. They can process the whole model (dump and reload data) in 1.5 hours.
If I hear that 20 GPUs are necessary, I would expect multiple more orders of magnitude of data.
https://www.nextplatform.com/2016/09/08/refreshed-ibm-power-...
Nice article anyway!