Hi all,

This is (hopefully) just a short write-up of some prototyping Volcane and I 
have done today.

Here's what I did:

* Added a CatalogRequest class to indicate that a compile is needed

* Modified the agent to submit a CatalogRequest into a Stomp queue and block 
waiting for a catalog to appear on a different (per-host) queue

* Created a new 'compiler' daemon (run as 'puppet compiler') to pull 
CatalogRequests off of the queue, compile the catalogs, and store the results 
into a different queue

Thus, we have completely asynchronous compiles - the client currently blocks 
waiting for a catalog, but it doesn't really have to. You could start one 
compiler process or 1000, because they're share-nothing and they have no state 
other than the individual catalog being compiled.

I've pushed the code into a 'feature/master/asynchrony' branch in my repo on 
github.

Downsides of my implementation, from my commit:

    * It's a big conglomeration of hack, just to prove the idea
    
    * It adds some unrelated stuff
    
    * It completely breaks our existing Queue class
    
    * There aren't any tests for any of the new work

Additional downsides:

    * The Queueing subsystem has very clearly become separate from the 
Indirector subsystem, with duplicated and confusing effort

    * I'd hoped to have an option that had the client still speaking http to 
the server and the server doing all of the async bits, so you wouldn't need to 
upgrade your client to get this functionality, but I did not succeed.  I think 
I could do it now, though.

Questions I have from this:

    * Is this useful enough to make sure it's in 2.7 (which should be out in 
December)?

    * Do you have any comments or concerns on the basic idea?

    * Should we attempt to reconcile the model of the queueing and indirector 
systems, or should we just have a sync and async subsystem that are nearly 
entirely separate? *shudder*

More later, as we get further into the testing and such.

-- 
The time to repair the roof is when the sun is shining.
        -- John F. Kennedy
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




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