in reply to Re^5: PerlMonks Caching
in thread PerlMonks Caching

I've read many articles on memcached, but haven't used it myself. It claims to do failover across multiple memcached servers, but I haven't seen it in action myself, and also what it does when the last server becomes unreachable. I don't know how stable it is, and what the requirements (and administrative overhead) of its users are, and also what its failure modes are.

At PM, we have MySQL behave erratically and grind to a halt from time to time, needing a restart. If memcached also exhibits that ("Just Restart It"), that would introduce yet another slowness problem. And such, I'm wary of enthusiastically following what others claim works for them when I haven't played around with it myself. And I'm looking towards its failure modes because we experience failure modes with MySQL.

Replies are listed 'Best First'.
Re^7: PerlMonks Caching
by BrowserUk (Patriarch) on Apr 21, 2010 at 11:14 UTC
    I'm wary of enthusiastically following what others claim works for them when I haven't played around with it myself.

    FWIW: Others seem to be convinced by it.

      Sure - and I'm also convinced that it's worth looking into. I'm looking to implement it for a small test case (federation of RSS feeds). But as I haven't used it, or the Perl libraries, I'm not sure that memcached is The Silver Bullet.

Re^7: PerlMonks Caching
by tinita (Parson) on Apr 21, 2010 at 11:12 UTC
    And such, I'm wary of enthusiastically following what others claim works for them when I haven't played around with it myself.
    Well, I'm sorry. I'm just trying to help. If you're the boss and have to approve everything that runs on the server by loadtesting it yourself, then I can only recommend it and that's it.
    The problems you have with mysql I don't have on our server. 2 mysql servers running and replicating for months now without needing to restart. (update: and, at work, also several servers with *lots* of inserts are just running and running and running)

      Your help and support is appreciated! I think my replies come across as that I don't want to implement memcached caching. I do want to give it a try.

      But to give it a try, I have to install, secure and set up memcached, and look for a spot where I can use it easily within PM, so it's just not instantaneous.

        my help also included this skeleton script for KinoSearch, for which I never got any comment.
        also i would look into the logs to first look where an optimization is *needed*.
        what i learned about optimization is:
        first look by analysing real world requests where the bottleneck is. (easy example case: maybe people are just calling "saints in our book" too often. easy solution: cache that data and remove the info about seen xy seconds ago - nobody needs that. info in an hourly scale would be enough here).
        second: use munin and other tools to compare performance to see, if a specific optimization really changed something. in my app, I log the request time (the time inside the mod_perl handler) to a logfile, and let munin make a graph out of it. nice to see how that changes over time, and there's nothing better than doing an optimization and see the chart going down. and it helps to estimate future optimizations.
        I don't know the current code in use, and I don't know how I can get to it. I asked for it. I would offer to at least look into it if I can see myself if there are any good places for optimization. But that's where I'm stuck. perlmonks.org is closed to the outside. So I am not able to help as I would like to.