Goiardi 0.10.0 - Taihun

The bad news is that goiardi 1.0.0 got pushed back again because of various
reasons, but the good news is that in the meantime goiardi 0.10.0 "Taihun"
is here: https://github.com/ctdk/goiardi/releases/tag/v0.10.0. For those
curious, but don’t feel like clicking through to find out, “taihun” was the
Gothic word for “ten”.

The big thing in this release is the postgres backed search, which I
mentioned on this very list several weeks ago. I put it through its paces
in that time and optimized it a bunch, so performance is now a lot better
when running searches against 10,000 nodes. As I wrote in the documenation:

In testing, goiardi with postgres search can handle 10,000 nodes without
any particular problem. Simple queries complete reasonably quickly, but
more complex queries can take longer. In the most recent tests, on a 2014
MacBook Pro with 16GB of RAM and a totally untuned PostgreSQL installation,
executing the search query equivalent to “data_center:Vagrantheim” directly
into the database with 10,000 nodes consistently took about 40-60
milliseconds. The equivalent of “data_center:Vagrantheim AND name:server2*”
took between 3 and 4 seconds, while “data_center:Vagrantheim AND
name:(server2* OR server4*)” took about 7-8 seconds. It is expected that
with proper tuning, and as this feature matures, these numbers will go
down. It’s also worth mentioning that when using knife search, the whole
process takes considerably longer anyway.

Once goiardi has reached the 1.0.0 milestone and gets organizations, a
standalone search may be possible. This may not be as easy as I originally
thought, because now the postgres search makes use of the
node/environment/etc. tables to vastly speed up the searches, but it should
be doable.

For those interested in learning more, the postgres search documentation is
available at
http://goiardi.readthedocs.org/en/latest/features/search.html#postgres-search,
and the v0.10.0 announcement is at
http://goiardi.gl/blog/2015/07/24/goiardi-version-0.10.0---taihun/.

Thanks,

-j