Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: learning memcached

by Anonymous Monk
on May 21, 2011 at 02:44 UTC ( #906021=note: print w/ replies, xml ) Need Help??


in reply to learning memcached

What am I doing wrong, or are my expectations wrong?

I think you benchmark is flawed. You say you have 20_000 random entries, but you only make 2723 queries.

Instead of benchmarking for 3 wallclock seconds (the default, -3), try benchmarking multiples of 20_000 iterations.

After that, I would pre-load entries into the cache, and benchmark retrieval only.


Comment on Re: learning memcached
Replies are listed 'Best First'.
Re^2: learning memcached
by punkish (Priest) on May 21, 2011 at 02:51 UTC
    > I think you benchmark is flawed. You say you have 20_000 random 
    > entries, but you only make 2723 queries.
    

    How did you determine that I made only 2723 queries? The benchmark shows that I made 40_000 queries for each code fragment at a rate of 2723 queries per second with the memcache process and 3846 queries per second with the straight-from-db process. Or, am I reading the results wrong?

    Update: Here is another measurement, this time using timethese. The results are the same as before.

    query_dbh: 24 wallclock secs ( 5.28 usr + 5.29 sys = 10.57 CPU) @ 37 +84.30/s (n=40000) query_mem: 70 wallclock secs ( 7.80 usr + 6.08 sys = 13.88 CPU) @ 28 +81.84/s (n=40000)

    Whatever I am doing, it is far faster to open up the SQLite database every time and query it than it is to query the memory cached value. (I am creating a $dbh and $sth every time, and also opening a file and writing to it every time to kinda emulate a CGI process that starts afresh on every hit of the browser.



    when small people start casting long shadows, it is time to go to bed
      Or, am I reading the results wrong?

      You're not reading the results wrong, I obviously missed the count :)

      Another (insert better word here) "flaw" , is your sql query is too simple :) The way I understand memcached, you get benefit if you cache data which is expensive to calculate

        > Another (insert better word here) "flaw" , is your sql query is too simple :) 
        > The way I understand memcached, you get benefit if you cache data which is 
        > expensive to calculate
        
        I don't see why that should matter. Sure, on a more complicated and slow query, retrieving an already calculated result will be faster. However, retrieving even the simplest of results from memory should be faster than opening a file on disk, preparing a db handle, querying, and then returning the result. At worst, it should be about the same, not 30% worse!


        when small people start casting long shadows, it is time to go to bed

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://906021]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (10)
As of 2015-07-07 23:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls