Hi Steve,

A bit off topic. I can't help but wondering:

Your memcache nodes are nice and beefy boxes (32G RAM, 4 cores of probably at leat 2GHz each -- that's generally a good amount of power for a database), maybe they don't have any spindles at all, though, but, if they did have a few, say up to 4, disks in each;

And you would split (federate) your database into 100 chunks (the remaining 100 would be hot spares of the first 100 and could even be used to serve reads), wouldn't that take care of all your database load needs and pretty much eliminate the need for memcache? Wouldn't 50 such boxes be enough in reality?

I do realize that 200 machines with no hard drives cost both less to buy and maintain. But what about 50? (just throwing random numbers). In the past you've also said that some of your memcache nodes do 30-60k reqs/sec, which would be very high in db speak, but I assume that that's the exception rather than the rule because 6 to 12 million memcache reqs/sec in aggregate sounds a bit out of this world.

Thanks


Steve Grimm wrote:
Our db load averages tend to range from 0.25 to 4.5 or so, depending on which particular hosts you’re looking at. More of them at the lower end of that range than the upper end.

When we need to do more major surgery to our memcached configuration, we do it at the lowest-usage time of day to minimize the impact on the site. Our cache is partitioned into different sections so we can take down part of it at a time (to upgrade to a new memcached build, say) without losing the whole cache.

We consider memcached a critical part of our infrastructure. The benefit of memcached in a typical setup is to reduce the amount of database hardware you need to support an application; if you have enough database horsepower to run unimpaired with most of your memcached servers out of service, then there’s probably no point using memcached at all, since it without a doubt adds extra complexity to your application code. But if you go that route you’ll probably spend many times as much money and burden yourself with a great deal more administrative hassle (DB servers typically being more expensive and more work to keep running smoothly than memcached servers are.)

-Steve


On 5/3/07 2:16 PM, "Cal Heldenbrand" <[EMAIL PROTECTED]> wrote:

    Steve,

    Just curious what are the OS load averages on your database
    servers? Have you expanded facebook to the point where losing most
    of the memcache servers would cause your entire application to
    grind to a halt?

    During my initial thoughts on integrating memcache into our
    product, I could see it eventually becoming a crutch and we
    wouldn't have enough database hardware to support the application
    anymore. I wonder if that's a good thing or a bad thing?

    Thanks!

    --Cal

    On 5/3/07, *Steve Grimm* <[EMAIL PROTECTED]> wrote:

        We rebuild from the database. We have enough memcached servers
        that losing one has a relatively small effect on our cache hit
        rate. Not to say there's no effect -- our DB load spikes up
        for a little while when we lose a memcached server -- but we
        build out our infrastructure such that even at peak load,
        repopulating an empty memcached instance or two doesn't slow
        things down noticeably for the users.

        -Steve



        On 5/3/07 12:23 PM, "Murty Chittivenkata" <[EMAIL PROTECTED]> wrote:

            Steve,

            are you replicating the hash data to hotspares or
            rebuilding in the event of failure from backend database?


            Thanks
            Murty




                    We have a home-built management and monitoring
                    system that keeps track of all our servers, both
                    memcached and other custom backend stuff. Some of
                    our other backend services are written
                    memcached-style with fully interchangeable
                    instances; for such services, the monitoring
                    system knows how to take a hot spare and swap it
                    into place when a live server has a failure. When
                    one of our memcached servers dies, a replacement
                    is always up and running in under a minute.








Reply via email to