> I assume that each PuppetDB instance maintains its own message queue, and
> commands sent by the master wait in these queues.

Yes, today this is true.

> In that case, is the following scenario possible:
> - the master sends facts for a node to PuppetDB through the load balancer
> - the load balancer gives the task to PuppetDB1
> - queue processing halts/gets delayed on PuppetDB1 (for some reason)
> - upon the next pupptrun, the agent on the same node sends some changed
> facts to master
> - the master sends it to PupetDB through the load balancer
> - the load balancer gives the task to PuppetDB2
> - PuppetDB2 writes the fact to the DB
> - some time later PuppetDB1 continues to process its queue
> - PuppetDB1 writes the old fact value to the DB

The last step won't happen with 1.0.5 at least, we check this first
and silently drop the 'replace facts' if the timestamp associated with
the stored facts are newer then the message:

https://github.com/puppetlabs/puppetdb/blob/master/src/com/puppetlabs/puppetdb/command.clj#L341

You can see this timestamp of the existing facts in the table
'certname_facts_metadata'.

> If i were to query PuppetDB for this fact for this node now, which value
> would I get?

The latest facts, in this case the facts sent to PuppetDB2.

To answer your original question, its recommended to have multiple
PuppetDB instances in front of a reverse proxy or load-balancer if you
want to provide redundancy. For the database you can review the
documentation available on the Postgresql site, as there are many
solutions with various pros and cons:
http://www.postgresql.org/docs/9.2/static/high-availability.html.

Check out the documentation available from our website as it covers
scaling in a general manner:

http://docs.puppetlabs.com/puppetdb/1.1/scaling_recommendations.html

ken.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to