Dragonfly Is Production Ready (and we raised $21M)
dragonflydb.io
dragonflydb.io
(Originally posted 3 months ago on https://news.ycombinator.com/item?id=34231033)
†: Redis 6 added threads, but AFAIK this is only for handling connection I/O. Actual database access is still single threaded. The only way I'm aware of to scale Redis is via clustering.
It's misleading because the comparison would be redis cluster vs dragonfly. There's no speed-up if the Redis user isn't fully saturating a single core. The real question is why is it only 25x faster on a 64-vCPU machine? Why isn't it 64x? Does this mean it's 60% slower when the request volume is below the needs of a single-threaded redis?
> Dragonfly's value proposition
Dragonfly has zero value proposition other than a ticking-time-bomb of pricing fuckery when they're forced to yield a return on that $21M investment.
For example it's like me claiming that my new python web framework is X faster than Flask because it comes bundles with uwsgi. Yes, technically mine is faster, but its not a fair comparison.
"For the last 15 years, Redis has been the primary technology for developers looking to provide a real-time experience to their users. Over this period, the amount of data the average application uses has increased dramatically, as has the available hardware to serve that data. Readily available cloud instances today have at least 10X the CPUs and 100X more memory than their equivalent counterparts had 15 years ago. However, the single-threaded design of Redis has not evolved to meet modern data demands nor to take full advantage of modern hardware."
That's not what they are saying is wrong with Redis. Is Redis really 'antique tech'? Arguably, concurrent processing with a scale-up-only approach is a poor fit for "modern hardware".
So yes, you are correct: Redis from github requires knowledge and (your) code to make n instances work together (whether on the same node or not). But to claim that this is the case for "anyone else [but Redis Labs]" is questionable.
From a certain architectural camp, pin-to-core-process-in-parallel approach is optimal for [scaling on] "modern hardware". Salvatore can correct me on this but I don't recall that being a consideration at the early days, but it turned out to be a good choice. Some of the Redis apis however require dataset ensemble participation (anykind of total order semantics over the partitioned set) which is what is "difficult" to do effectively.
So basically any startup that can do that, should theoretically be able to squeeze more performance form their SaaS infrastructure than running Dragonfly type of architecture. Bonus, as pointed out by Redis Labs, being that the lots of parallel k/v processes can bust out of the max-jumbo-box should you ever need that to happen (for 'reliability' for example) ..
It is source available. Generally can't use it to create a competing product... but also means you cannot combine it with any of the popular open source licenses.
Decide for yourself what that means to you.
What are the use cases that max out Redis speed/throughput?
Open question, how does Dragonfly differ from KeyDB?
Dragonfly is built upon shared-nothing architecture where each thread manages its own slice of data, hence no need for classical locks and no contention under high load. It still provides atomicity guarantees but allows multiple transactions to progress independently as long as they do not need exlusive access to the same keys. So basically different approaches to the same promise - scale. Also different trade-offs. Shared-nothing approach has less contention and more flexible transaction framework but inhibits a slightly higher 50%th percentile latency (order of 30usec).
That's unbelievable. In both senses of that phrase.
The most useful measurement I've seen is you pick a latency target, and evaluate how many QPS you can send to the server that meets that latency target. That gives a fairly simple dimension to compare to.
It sounds like this is a function of higher throughput in the benchmark for Dragonfly.
Oh, ok, so def. not about Dragonfly BSD.
https://dragonflydb.io/blog/scaling-performance-redis-vs-dra...
It's actually a slightly different form of an old debate. I'm thinking in particular about the Crockford license (the MIT-like one with "The Software shall be used for Good, not Evil." bit). It was determined to be non-free quite a while back due to such restrictions.
That being said, it hard to be a commercially successful software editor with an OSS model (RethinkDB comes to mind).
I do understand why BSL exists, but it feels to me like an unsatisfactory compromise.
Is it open-source? Well, depending on your definition probably not. Is it a fair license? Yeah I'd think so.
What you might mean is that it isn't free/libre as in FOSS.
But to a lot of us, “open source” has a specific meaning as well.
> Open source doesn’t just mean access to the source code.
Open Source as defined by majority of programmers on Internet, which means either GPL, MIT, or Apache and their derivatives.
Open Source as defined by HN, depending on which timeline you join HN, it could be MIT, BSD only all the way to AGPL only.
Open Source as defined by layman, anything I can see its source is considered as Open. Open Source in its literal sense.
I do not know personally you but I noticed that you posted the link to the announcement. I am guessing you are passionate about the technology and innovation. Dragonfly is much more than the licensing choice we made. I wish HN discussions here were about how fibers work in Dragonfly and how SSD tiering is gonna be implemented and how we provide atomicity for lua scripts while running many of them in parallel etc. Btw, Dragonfly relies on an io-engine called helio (roughly equivalent to tokio) that has been developed by me and open sourced under Apache 2.0.
Because of these two things, I didn't spend a lot of time looking into the technical details and therefore can't really say much on them. By all means it sounds like a very interesting piece of technology- but the license makes it useless to me.
Are you a representative of Y Contaminator/Hacker News? If you are, I will be glad to comply with your request.
[1] Part of the reason why I submitted Dragonfly, interesting technology should get more coverage on HN, and not be ignored simply because of some over zealotry ideological reason.
Sure, but that's not what "open source" means.
I mean I can go around calling C a functional programming language because it functions and I can build functioning programs with it... but that's not what the word means in anyone's discourse besides yours. I mean I support your freedom of speech, but also mine in saying your usage is disingenuous.
It is not open to use as you please.
You too, huh?
On a different note, I wish new projects respect the history of other projects while naming their project. I am sure they would've found a better name for this DB.
1: https://en.wikipedia.org/wiki/Firefox_early_version_history#...
I would not be against giving them a few 100Ks so that they could get one or two full time developers however.
(joke (but also food for thoughts): alternatively, just "safe" invest the 21M. At 3% interest rate, that 630k per year, enough for ~2 to 10 developers depending on the geo. An OSS project can do a lot of things with this kind of budget).