On Sun, Nov 29, 2009 at 6:43 AM, Ohad Levy <[email protected]> wrote:

>
>
> On Sun, Nov 29, 2009 at 6:31 AM, Christian Hofstaedtler <[email protected]>wrote:
>
>>  load sharing
>> and/or
>>  fault tolerance
>>
>> And both of these things are currently very complicated to do as
>> long as the client has only one hostname to talk to.
>>
>> Why not change this?
>>
>>
> +1 - I think its acceptable for each client to connect to one server and
> keep on using that server for its whole "puppet run".
>

I think it's perfectly reasonable, and would make failover a lot simpler.

Do we have all the information internally to tell when an error indicates
that a server is unavailable?

Would we give up and consider it a failure every time we can't find a
puppet:/// file resource? So we'd be changing behavior when someone typos a
puppet URI ? Should the behavior be different if we time out retrieving
rather than not being able to find it at all?

However, does this really help load balancing?

Say one server in a pair is overloaded and timing out on file resources...
do clients simply start their run all over again with the other server? That
seems kind of inefficient.... given that they may have all progressed quite
far into their run.

I'd really like to be able to combine both. Shared state for load balanced
pairs, multiple servers in the client config for failover and restarting the
current run.


>
> a simple solution might be to implement a DNS SRV record (e.g. like LDAP)
> which allows the client to decide to which puppetmaster he would like to
> connect to.
> this in time could be enhanced to get the server load etc (so it could try
> to use another server or to wait for a while).
>

This is essentially what we're doing now. We have simple monitoring in place
so all our clients can check the load of the puppet server their DNS view
points to, and fall back to an alternate server if the load is too high.


>
> I would be happy not to add any additional depedencies (even though
> memcache is acceptable) - a specially a database, e.g. if I have 5 locations
> where i need HA + load sharing, i don't want to end up maintaining 5 set of
> clusters.
>

++

I can't see a way around shared state for efficient load balancing, but
think that being able to provide a list of puppet servers to the clients
would greatly help with failover.


>
> my 2 cents,
> Ohad
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<puppet-dev%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/puppet-dev?hl=en.
>

--

You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.


Reply via email to