From: Salvatore Sanfilippo <anti...@gmail.com>
Date: Fri, 14 May 2010 10:55:59 +0200
Local: Fri, May 14 2010 4:55 am
Subject: Re: Redis DB Hyperbole
On Fri, May 14, 2010 at 9:56 AM, LFReD <terrybrown...@gmail.com> wrote:
hello Terry,
> Hi, > After some exhausting testing, here's some conclusions..
> - The advertised speed of Redis is not even close to real world
the problem with benchmarks is that there is no way to reach good
This is how things works in practice. We have two computers REDIS, and CLIENT:
REDIS <--------------- communication link -----------------> CLIENT
They talk using a communication link.
Let's assume that the communication link is slow, so 1 second is
Then I try to meter the performance of Redis using code like this:
REPEAT 10000 times:
We need both to send the requests and read the responses as Redis uses
In the best of the conditions (link already established, just one
So if we measure the speed of Redis in this conditions it will show a
What happens if I use a faster link with 100 ms latency? Then the
Or actually, a little bit of Redis performances interleaved with a
TESTING WITH MULTIPLE CLIENTS
Since I assumed an infinite bandwidth, the obvious next step to avoid
This is why Redis benchmarks use 50 parallel requests in order to
YES BUT I WANT TO GO FASTER WITH JUST 1 CLIENT!
Since Redis was designed for high performance from the start, it
CLIENT -> request -> SERVER
We send multiple requests without waiting to receive the reply, in
CLIENT -> request -> request -> request -> SERVER
NON BLOCKING I/O
Another alternative is using non blocking I/O. A single client may
> The Apache -> Predis/Rediska -> Redis I/O roundtrip simply chokes, and
There is no single networked DB without this limitation, as I explained above.
> i see no way of speeding it up. > - Pattern searching against keys on a large dataset is dreadful. Don't
If you are referring to "KEYS <pattern>", from the Keys man page:
> even bother. Note that while the time complexity for this operation is O(n) the
Please read the documentation in order to understand what commands are
> As a comparison, I built some similar code using Rebol + Cheyenne (a
Fore sure here you are using threads, non blocking I/O or something
> Rebol web server). > Some stats..
without networking in the middle. Btw with a single client you should get more or less 10k
> And blocks are native to Cheyenne.. there's no port I/O necessary..
As so it is a library. This way you dropped the need for a client ->
> and it runs on Linux or Windows db communication link. But if you already noticed we are in the cloud era, and different computers need to communicate otherwise you are not going to scale. > One thing Redis needs to do is tone down the hyper-bole on
Our benchmarks are fine, as discussed.
> performance, and post some real world benchmarks. Regards,
-- "Once you have something that grows faster than education grows,
-- You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
| ||||||||||||||