Earlier quoted context omitted.
Depends on how you define database. Wikipedia starts with... ”A database is an organized collection of data, generally stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal design and modeling techniques." [1] ...which makes Redis sound like a database to me. If I am not technically correct, feel to educate me. Side note: I try to focus on wh…
Your filesystem then is a database. You can even stretch it to include your text editor. Redis is not a database.
How Fast can A Single Instance of Redis be?
51–60 of 79 posts
Re: How Fast can A Single Instance of Redis be?
#52IIUC the benchmark did not use pipelines and the numbers show that. Redis itself can outperform this by a factor of 10 with pipelining, and I'm betting the difference from the module won't be that big given such a setup (which is how you should ideally work anyway). Still, nice to see the modules API being put to interesting use cases.
Re: How Fast can A Single Instance of Redis be?
#53"Redis is known as one of the fastest databases out there." Redis is not a database. Let's begin with that.
I very much beg to differ. Just because a database maps to memory and doesn’t commit to disk per transaction doesn’t make it less of a database. So if not a database, what is it?
Re: How Fast can A Single Instance of Redis be?
#54Well, to be honest if you are IO/network bound and kernel TCP stack is the bottleneck then user space networking like DPDK can help in every application. It depends on application but sometimes additional complexity of introducing DPDK is just not worth it, and just spinning another instance/server is a better choice. Look also at Seastar used in ScyllaDB with and without DPDK numbers. Just remember you need to give…
Re: How Fast can A Single Instance of Redis be?
#55Earlier quoted context omitted.
Depends on how you define database. Wikipedia starts with... ”A database is an organized collection of data, generally stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal design and modeling techniques." [1] ...which makes Redis sound like a database to me. If I am not technically correct, feel to educate me. Side note: I try to focus on wh…
Your filesystem then is a database. You can even stretch it to include your text editor. Redis is not a database.
One thing I think that filesystems can learn from databases is the notion of a compound primary key. It would be neat if app-files were identified by an (app, type, id) tuple. This would bring the advantages of both the posix and the windows filesystem layouts.
For instance if we had(app=firefox, type=/usr/bin, id=main). Then we could easily find all firefox files by querying by app. Or we could easily find all binaries in PATH by querying by type.
ps. I think this would work better than the overly general tag-based filesystem people sometimes propose.
Re: How Fast can A Single Instance of Redis be?
#56Earlier quoted context omitted.
We are back up, had to move to a bigger server haha
I'm always curious what kind of setup people run that can not handle a thousand people connecting into HTTP.
Re: How Fast can A Single Instance of Redis be?
#57How is this different from what Solarflare ( https://twitter.com/Solarflare_Comm/status/11134717313798430... ) is doing with Cloud Onload? From what I understand they don't require any application changes and they work on any networking application.
This is a Redis module, so will only work with Redis. Although I don't see its implementation (?), it appears to connect Redis' Unix Socket interface to a network stack running on DPDK (a user-space low-level network interface).
In SolarFlare world, ef_vi is their library to DPDK -- it is a packet buffer interface. They then have OpenOnload (transparent acceleration that cooperates well with the kernel) and TCPDirect, a proprietary userspace TCP/UDP library that has its own interface. It's even higher performance than OpenOnload because it doesn't have to coordinate with the kernel and you manage the sharing of the network resources.
SolarFlare has a DPDK driver too. OpenOnload doesn't accelerate UNIX sockets.
One thing this module doesn't accelerate is epoll... I think a properly tuned SolarFlare solution would be higher performing -- especially on the same machine with TCP-loopback acceleration. But you don't know until you try it...
edit: added note about epoll
Re: How Fast can A Single Instance of Redis be?
#58Hackernews hug of death already?
Re: How Fast can A Single Instance of Redis be?
#59I'd like to see the client code, see how it manages backpressure. (I'm probably being thick; the benchmark code is probably linked and I'm just not seeing it.) I recently maintained some nodejs & expressjs stuff. Neither the Redis clients (or the original developers of our stuff) have any concept of backpressure (throttling). In our case, HTTP request received would cause a Redis request. For whatever reason, express…
And you have to use nginx plus to get the backpressure support on the ingest side. If my levels of capability and capacity were a little higher I’d be tempted to start writing a reverse proxy in Rust.
Re: How Fast can A Single Instance of Redis be?
#60I'd like to see the client code, see how it manages backpressure. (I'm probably being thick; the benchmark code is probably linked and I'm just not seeing it.) I recently maintained some nodejs & expressjs stuff. Neither the Redis clients (or the original developers of our stuff) have any concept of backpressure (throttling). In our case, HTTP request received would cause a Redis request. For whatever reason, express…
We've been running into the issue where our redis instance(s) randomly dies. I haven't been able to pin point the problem (nodejs+redis). Would love to hear your thoughts on some gotchas to look out for.