Review for "Cluster-based Scalable Network Services"

From: Justin Voskuhl (jvoskuhl_at_hotmail.com)
Date: Wed Feb 25 2004 - 17:48:39 PST

  • Next message: Manish Mittal: "Cluster-based Scalable Network Services"

    In this paper the authors describe a framework they've designed that
    supports a wide range of very high scale internet services. Their framework
    supports very low cost PC hardware deployed in a cluster configuration.
    They note that many applications can tolerate weaker-than-ACID semantics
    (which they call BASE semantics, har har) and that for such applications you
    can get great performance benefits from the weaker semantics. For example,
    applications that compute values that don't have to be instantaneously right
    might use a cached value until the exact current value is delivered.
    Applications they note are not suitable for BASE semantics include online
    profile applications and other applications where the user expects her
    preference and profile information to be committed and other parts of the
    application should not continue to use old cached values.

    At Microsoft I work on very large scale consumer internet services and one
    design point I noted they make heavy use of is UDP multicast. In our
    systems we've found that this works fine up to a point, but if the number of
    machines you have grows into the thousands in some cases it creates problems
    because the network can become flooded with these multicast status update
    messages. It's definitely something to use in a measured way with an eye to
    your service growing very large (where large these days is in the tens of
    thousands of servers, the norm for the larger services is thousands of
    servers.)

    The load balancing scheme they describe seems very odd - why you would use
    JavaScript baked into your client scripts instead of a hardware load
    balancer for a set of web front ends would be considered an odd choice for a
    deployment today. It may be that the prices of the load balancers have come
    down so much that it's now considered a no-brainer to choose these system to
    handle the front end load balancing.

    I like their discussion of the "spikiness" of real-world loads. The ability
    to pull additional machines into service is a great idea, but in practice in
    the data center I forsee it being a difficult thing to pull off. There
    generally aren't spare machines laying around idle that can be pulled into
    service to handle a spike. You do need to system to have good behavior when
    loads gets high - reducing the level of service or degrading in a reasonable
    way (500 - Server unavailable is not a good choice.)

    _________________________________________________________________
    Watch high-quality video with fast playback at MSN Video. Free!
    http://click.atdmt.com/AVE/go/onm00200365ave/direct/01/


  • Next message: Manish Mittal: "Cluster-based Scalable Network Services"

    This archive was generated by hypermail 2.1.6 : Wed Feb 25 2004 - 17:48:45 PST