PuppetDB, a component of the Puppet Data Library, is a centralized storage
daemon for auto-generated data. This initial release of PuppetDB targets the
storage of catalogs and facts:
...
As this is the first public release, the version is 0.9.0 (a.k.a. “open beta”).
While we’ve been using PuppetDB internally at Puppet Labs for months without
incident, we encourage you to try it out, hammer it with data, and let us know
if you run into any issues! A 1.0 release will come after a few cycles of bug
squashing.
I noticed it can't use MySQL, where as Puppet Dashboard can only use
MySQL. Does the dashboard plan on moving to something else or am I
going to have to run to separate DB providers in order to use PuppetDB
and Dashboard?
Is Puppet Labs saying they are ending support of MySQL and instead will only support PostgreSQL? That is going to be a big problems for shops that do not support PostgresSQL, or are only allowed to run DB systems on an approved list.
Why wouldn't a DB-agnostic model be used?
Right now, I can say that due to these types of issues, I cannot even evaluate PuppetDB, and will not be able to for the foreseeable future.
Also, does this mean that the existing inventory service and store configs functionality goes away?
--You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To post to this group, send email to puppet...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Mon May 21 15:33:44 2012, Deepak Giridharagopal wrote:
On Mon, May 21, 2012 at 11:02 AM, Marc Zampetti<marc.z...@gmail.com <mailto:marc.zampetti@gmail.com>> wrote:
Is Puppet Labs saying they are ending support of MySQL and instead
will only support PostgreSQL? That is going to be a big problems
for shops that do not support PostgresSQL, or are only allowed to
run DB systems on an approved list.
What is on your approved list? Oracle? SQL Server? DB2? That kind of
information helps us plan things for the future.
MySQL, Sybase, Oracle are all supported platforms, but since only MySQL is the one without a license cost, that is really my only choice. Introducing yet another SQL store into the environment is just not an option from a management and support perspective. We are also supporting new solutions, like MongoDB, so that would be a better choice for us.
I understand the need to not support everything. Having designed a number of systems that require some of the features you say you need, I can say with confidence that most of those issues can be handled without having an RDBMS that has all those advanced features. So I will respectfully disagree that you need features you listed. Yes, you may not be able to use something like ActiveRecord or Hibernate, and have to hand-code your SQL more often, but there are a number of techniques that can be used to at least achieve similar performance characteristics. I think it is a bit dangerous to assume that your user base can easily and quickly switch out their RDBMS systems as easy as this announcement seems to suggest. I'm happy to be wrong if the overall community thinks that is true, but for something that is as core to one's infrastructure as Puppet, making such a big change seems concerning.
Why wouldn't a DB-agnostic model be used?
The short answer is performance. To effectively implement things we've
got on our roadmap, we need things that (current) MySQL doesn't
support: array types are critical for efficiently supporting things
like parameter values, recursive query support is critical for fast
graph traversal operations, things like INTERSECT are handy for query
generation, and we rely on fast joins (MySQL's nested loop joins don't
always cut it). It's much easier for us to support databases with
these features than those that don't. For fairly divergent database
targets, it becomes really hard to get the performance we want while
simultaneously keeping our codebase manageable.
No, I'm already managing several hundred hosts.
Right now, I can say that due to these types of issues, I cannot
even evaluate PuppetDB, and will not be able to for the
foreseeable future.
How many hosts do you have? Would the built-in, embedded database work
for you as an interim solution?
But is there a commitment from Puppet Labs that storeconfigs on top of MySQL will be supported for some time? It doesn't really do me any good to build my infrastructure on store config (primarily for external resources), and then find out 6 - 12 months from now that it is going away simply because the extra work to support MySQL is too hard.
Also, does this mean that the existing inventory service and store
configs functionality goes away?
The existing inventory service API is still supported, and in fact
PuppetDB works as a backing store for that API. So tools and code that
use that API currently will continue to work. Puppet 3.0 still
includes the old ActiveRecord-based storeconfigs backend, which still
works.
--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/y9AAD02ZVYwJ.
1) The data stored in PuppetDB is entirely driven by puppetmasters compiling catalogs for agents. If your entire database exploded and lost all data, everything will be 100% repopulated within around $runinterval minutes.
On Mon, 2012-05-21 at 15:39 -0600, Deepak Giridharagopal wrote:
I think that this is a somewhat dangerous line of thinking. Please correct me if my understanding of storedconfigs are wrong, but if I am managing a resource with resources { 'type': purge => true } (or a purged directory populated file resources) and any subset of those resources are exported resources then, if my "entire database exploded", would I not have Puppet purging resources that haven't repopulated during this repopulation time? They would obviously be replaced, but if those were critical resources (think exported Nagios configs, /etc/hosts entries, or the like) then this could be a really big problem.1) The data stored in PuppetDB is entirely driven by puppetmasters compiling catalogs for agents. If your entire database exploded and lost all data, everything will be 100% repopulated within around $runinterval minutes.
To me storedconfigs are one of the killer features in Puppet. We are using them for a handful of critical things and I plan to only expand their use. I'm glad that Puppet Labs is focusing some attention on them, but this attitude of we can wait out a repopulation has me worried. Again, maybe I'm misunderstanding how purging with exported resources actually works, but my experience has been that if you clear the exported resource from the database so goes the exported record in a purge situation.
In a slightly different vein, does PuppetDB support a cluster or HA configuration? I assume at least active/passive must be okay. Any gotchas to watch for?
On Tue, May 22, 2012 at 12:02 AM, Marc Zampetti <marc.z...@gmail.com> wrote:(cc'd the mysql list as I'm pretty sure the boys over there have some
> Is Puppet Labs saying they are ending support of MySQL and instead will only
> support PostgreSQL? That is going to be a big problems for shops that do not
> support PostgresSQL, or are only allowed to run DB systems on an approved
> list. Why wouldn't a DB-agnostic model be used?
>
> Right now, I can say that due to these types of issues, I cannot even
> evaluate PuppetDB, and will not be able to for the foreseeable future.
interest in this)
As a provider of puppet consulting I can say it will be a harder sell
to clients if we need them to use postgres instead of MySQL in order
to use PuppetDB. It's not impossible of course, but introducing an
additional barrier for puppet will give us additional trouble
convincing our clients :)
You mentioned degraded performance, do you have any numbers on what
kind of performance degradation we are talking about? I wouldn't mind
some degraded performance if that means we can keep smaller clients on
MySQL.
Also, have you looked at MariaDB 5.5? it is a drop-in replacement for
MySQL with much better performance for any query optimiser related
things (which I'm pretty sure the nested joins are also part of).
--
Walter Heck
--
Check out my startup: Puppet training and consulting @ http://www.olindata.com
Follow @olindata on Twitter and/or 'Like' our Facebook page at
http://www.facebook.com/olindata
--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.