-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Completely agree with the issue of lock contention.

You would probably have to provide the capability to have optional lock
overrides or timeouts.

So...something like:

# Grab a semaphore for the '$dataserver/bar' data
# Timeout after 5 seconds
# Skip requiring stanza if lock cannot be obtained.

semaphore { "$dataserver/bar":
  timeout => '5',
  fail_mode => 'skip'
}

lock(Semaphore["$dataserver/bar"]) {
  ...do fancy stuff...
}

Trevor

On 06/04/2010 04:33 AM, David Schmitt wrote:
> On 6/3/2010 3:54 AM, Trevor Vaughan wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> I've been following this thread with interest and I think that Donavan
>> is hitting upon something that I've also been wanting.
>>
>> However, the way I was looking at it was as a set of atomic, optionally
>> blocking, semaphores in a set of parallel threads.
>>
>> If you look at each puppet client as an individual thread and realize
>> that you need things to happen cross-client that depend on the state of
>> one or more clients, then you've deconstructed this into a classic
>> parallel programming application (with all the constituent nonsense).
> 
> Interesting perspective! Especially as this allows one to re-use the
> existing research to evaluate the pitfalls of such an approach.
> 
> 
> Deadlocks can be circumvented by partially aborting transactions (i.e.
> failing dependend resources) instead of locking.
> 
> Serializability is not really a concern of puppet, since we have
> eventual convergence.
> 
> A more complex problem in our case would be contention of locks (e.g.
> when used for orchestrating a N-out-of-M rollout). I'm thinking of
> thundering herd problems or often repeated and aborted transactions.
> 
> 
> 
> Best Regards, David

- -- 
Trevor Vaughan
 Vice President, Onyx Point, Inc.
 email: [email protected]
 phone: 410-541-ONYX (6699)
 pgp: 0x6C701E94

- -- This account not approved for unencrypted sensitive information --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkwI3YEACgkQyWMIJmxwHpR1QQCeKXDNYYAbeffliuTl+0aWrYQC
SnsAoLOMBqXPXpxCBSalxjaB7ikaD0M9
=LafK
-----END PGP SIGNATURE-----

-- 
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.

<<attachment: tvaughan.vcf>>

Reply via email to