InfluxDB vs. Cassandra for timeseries data
influxdata.com
InfluxDB vs. Cassandra for timeseries data
1–10 of 34 posts
Re: InfluxDB vs. Cassandra for timeseries data
#2Re: InfluxDB vs. Cassandra for timeseries data
#3Re: InfluxDB vs. Cassandra for timeseries data
#4Though 1.0 GA is being released today.
Re: InfluxDB vs. Cassandra for timeseries data
#5I'm far from a cassandra fanboy, but this really is just dishonest marketing. Not sure if that will work if your product is open source and the target audience are developers.
Some thoughts:
- The reason why cassandra uses so much more space to store the same data is that they've set up the cassandra table schema in such a way that cassandra needs to write the series ID string for each sample (while influxdb only needs to write the values). You easily get a 10-100x blowup just from that. There is no superior "compression" technology here but just an apples-to-oranges comparison.
- Then, comparing the queries is even worse, because they are testing a kind of query (aggregation) that cassandra does not support. To still get a benchmark where they're much faster, they just wrote some code that retrieves all the data from cassandra into a process and then executes the query within their own process. If anything, they're benchmarking one query tool they've written against another one of their own tools.
- Also, if I didn't miss anythin, the article doesn't say on what kind of cluster they actually ran this on or even if they ran both tests on the same hardware. There definitely are cassandra clusters handling more than 100k writes/sec in production right now. So I guess they picked a peculiar configuration in which they outperform cassandra in terms of write ops (given a good distribution of keys, cassandra is more or less linearly scalable in this dimension)
- A better target to benchmark against would probably be http://opentsdb.net/ or http://prometheus.io/ - both seem to have somewhat similar semantics to InfluxDB (which cassandra and elasticsearch do not)
DISC: I also work on a distributed database product (https://eventql.io) but it's neither a direct competitor to Cassandra nor InfluxDB nor any of the other products I've mentioned. I hope the comment doesn't come across as too harsh. The article raised some very big (and harsh) claims so I think it's fair to respond in tone.
Re: InfluxDB vs. Cassandra for timeseries data
#6Ultimately this benchmark will be heavily influenced by the code written to "emulate" the InfluxDB parts on top of Cassandra and how much of that code puts Cassandra at a disadvantage. I'd like to hear from some people that have built such solutions on top of Cassandra what they think about the benchmark and see how that benchmark would evolve.
Re: InfluxDB vs. Cassandra for timeseries data
#7It would be interesting to compare memory requirements, I chose Influxdb because it had 10 times lower memory usage. The dataset was small (couple of million datapoints)... but stil
Re: InfluxDB vs. Cassandra for timeseries data
#8It would be interesting to compare memory requirements, I chose Influxdb because it had 10 times lower memory usage. The dataset was small (couple of million datapoints)... but stil
That only works when you have one series with a lot of observations. If you have many series with fewer observations (say 50k per series) influxDB uses absurd amounts of memory. I had to switch back to Cassandra because I constantly ran out of memory.
Re: InfluxDB vs. Cassandra for timeseries data
#9The linked article is an obviously bullshit benchmark that makes influxdb look good and cassandra look bad (by, surprise, the influxdb folks). I'm far from a cassandra fanboy, but this really is just dishonest marketing. Not sure if that will work if your product is open source and the target audience are developers. Some thoughts: - The reason why cassandra uses so much more space to store the same data is that they…
> There is no superior "compression" technology
Isn't it feasible to employ special encoding for time series data? For example, to encode a series of timestamps like 1473333629, 1473333630, 1473333631 you could encode it as 1473333629, +1, +2 (where +1, +2 are encoded in one byte). And there are many cases of such metrics with adjacent values, like averages, counters.
Re: InfluxDB vs. Cassandra for timeseries data
#10The linked article is an obviously bullshit benchmark that makes influxdb look good and cassandra look bad (by, surprise, the influxdb folks). I'm far from a cassandra fanboy, but this really is just dishonest marketing. Not sure if that will work if your product is open source and the target audience are developers. Some thoughts: - The reason why cassandra uses so much more space to store the same data is that they…
Thanks for the analysis of their benchmark, I wanted to view the details by myself but it required creating an account on their page. > There is no superior "compression" technology Isn't it feasible to employ special encoding for time series data? For example, to encode a series of timestamps like 1473333629, 1473333630, 1473333631 you could encode it as 1473333629, +1, +2 (where +1, +2 are encoded in one byte). And…
(On the other hand, columnar storage also has a bunch of tradeoffs/downsides so it's not a superior choice for every db product.)
My point about no "superior compression technology here" was specific to the linked benchmark. I.e. the lack of this potential optimization in cassandra does not appear to be the reason for the space blowup in the benchmark, but rather that they're duplicating the series ID for each sample.