Re: Help me specify/develop a feature! (cluster web sessions management)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Tue, March 13, 2007 7:27 pm, Mark wrote:
>> I have a web session management server that makes PHP clustering easy
>> and
>> fast. I have been getting a number of requests for some level of
>> redundancy.
>>
>> As it is, I can save to an NFS or GFS file system, and be redundant
>> that
>> way.
>
> Talk to Jason at http://hostedlabs.com if you haven't already.

I just did, he's using memcached not MCache. The name space for this class
of project is fairly limited.

>
> He's rolling out a distributed redundant PHP architecture using your
> MCache as an almost turn-key webhosting service.
>
> Not quite sure exactly how he's makeing the MCache bit redundant, but
> he's already doing it.

He's using memcache, which is redundant, but it doesn't do what MCache
does. The memcached program is strictly a cache for things SQL queries.
MCache is more like an object data store.

>
>> Here is an explanation of how it works:
>> http://www.mohawksoft.org/?q=node/36
>
> NB:
> There is a typo in "False Scalability" section:
> "... but regardless of what you do you, every design has a limit."

I took me a few minutes to see the typo even after you posted it. Thanks.

>
>> What would you be looking for? How would you expect redundancy to
>> work?
>
> In the ideal world, the developers are also working as an N-tier
> architecture in their Personnel Org Chart. :-)
>
> One Lead has to understand the whole system and the intricacies of
> your system, as well as its implications and "gotchas" really well.
>
> In an ideal world the Lead can then arrange things so that other
> Developers (non lead) can just program "normally" and have little or
> no impact on their process to roll-out to the scalable architecture.
>
> This is not to say that they can squander resources, but rather that
> if their algorithm "works" correctly and quickly (enough) on their dev
> box with beefy datasets, it should seemlessly work on the scaled
> boxes, assuming the datasets are not dis-proportionately larger
> comparing hardware to hardware pro-rated to dataset size.
>
> Yes, if the algorithm is anything bigger than O(n) this is not really
> "safe" but it's a close rule of thumb, and you can generally figure
> out pretty fast if your algorithm is un-workable.
>
> At least in my experience, if I can get it to "work" on a relatively
> large dataset on my crappy dev box, the real server can deal with it.
>
> So the less intrusive the redundant architecture can be, the better.

I think a lot of people go completely overboard with redundancy. Yea, you
need a load balancer and multiple web servers, but outside some
hypothetical requirement of never any down time, I can't see much value in
trying to create a single "5 nines" system. If you can't deploy two
independent service platforms, you will most likely suffer a failure
somewhere.

I think the big focus should be ensuring data integrity and fast recovery
in the event of a failure.

I mean sure, if you have the capital, go for it, but you can save a lot of
money on your data center if you take a more rational view of downtime.


>
> Documentation of exactly how it all works is crucial -- If it's all
> hand-waving, the Lead will never be able to figure out where the
> "gotchas" are going to be.
>
> I'd also expect true redundancy all across the board, down to spare
> screws for the rack-mounts.  Hey, a screw *could* sheer off at any
> moment... :-)

Like I said, a lot of people go nuts about redundancy.

>
> Multiple data centers on a few different continents.
> US, Europe, Asia, India (which seems to have caught the American
> consumerism big-time lately...) Australia...
> Probably need 2 or 3 just in the US.

That really is the *only* way to prevent down time.

>
> Some folks need WAY more bigger farms than others. Offer a wide
> variety of choices, from a simple failsafe roll-over up to
> sky's-the-limit on every continent.
> [Well, okay, you can probably safely skip Antartica. :-)]

I'm not sure it makes sense to try to target huge web farms. That really
is a different problem.

Think about a SQL database. As long as you can replicate to a hot spare,
most web farms settle for that. A truly distributed SQL database cluster
is a big deal, and most sites won't ever need it.

>
> I'd like a "status board" web panel of every significant piece of gear
> and a health status in one screen of blinking lights. :-)
>
> If I have to be the one to SysAdmin the things, make that a control
> panel as well.
>
> Okay, in reality, "I" would *not* be the one to SysAdmin that stuff,
> as I would still need to hire a guy actually qualified to do that.
>
> Which is why we're working with Jason (above) who's essentially our
> out-source SysAdmin guy taking care of all this hardware and
> redundancy stuff so we can focus on our WEb App from a business
> perspective (mostly) instead of constantly fighting with hardware.
> [I am so *not* a hardware guy...]
>
> And, of course, *when* an MCache box falls over, the user should
> seemlessly be sent to the next-closest box, with their session data
> already waiting for them.

I have plans for a complete "fail-over" solution for MCache, it will
require an update to the PHP extension and a plugin to master/slave two
mcache servers.

I don't think it will make it into 2.0, probably 2.1.
>
> I.e., it's not enough that there will always be a working MCache box
> for new users -- Logged-in users have to have their session data
> replicated to at least one other box.

That is clear.

>
> There also have to be enough "spare" cycles in the sum of all boxes
> that a single failure won't just take them all down in a dominoe
> effect. [shudder]
>
> So it's gotta be more like Raid 5 or whatever it is, with the session
> data striped across different boxes.

no!!!! Redundancy and partitioning seem like a better idea.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux