On Mon, 3 May 2010 22:34:02 -0400 Wes Rogers <skolpat...@gmail.com> wrote: 
WR> 2010/5/3 Ted Zlatanov <t...@lifelogs.com>:
>> On Mon, 3 May 2010 15:07:43 -0400 Wes Rogers <skolpat...@gmail.com> wrote:
>> 
WR> Seems like too much effort to me, IMO when I can just add another
WR> 'cfservd server' behind my LB VIP and call it a day.
>> 
>> You still need a way to propagate policy between multiple cfservd
>> servers.  What happens when one of them is offline, misses a policy
>> update, but comes back as far as the load balancer is concerned?  You
>> either need to bring the out-of-date cfservd up manually or set up a
>> tightly coupled update process with the load balancer to tell it when
>> the host is "ready."
>> 
>> Resolving that inconsistency automatically at the cfservd storage
>> backend is what I mean by a backend with "eventual consistency."

WR> For us, our policy gets refreshed every hour from SVN on all "servers"
WR> (or whenever manually).

You could be distributing outdated policies to your clients for up to an
hour if you miss a SVN update on a server.  There are many situations
(conflicts, for instance) where SVN will abort forever without manual
intervention *and* give you an outdated or corrupted file.  Finally, if
a SVN commit happens between the pull instant for cfservd's A and B,
you'll have cfservd A serving outdated policies whenever your load
balancer points to it.

All of this could be avoided if cfservd used a centralized ACID storage
backend but then you have a single point of failure.  So my original
point was about doing it without ACID, in a distributed way, and with
eventual consistency.

Ted
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to