[chef] goiardi 0.7.0 "Orphans of the Sky" released, implementing Chef RFC 014


Chronological Thread 
  • From: Jeremy Bingham < >
  • To: " " < >
  • Subject: [chef] goiardi 0.7.0 "Orphans of the Sky" released, implementing Chef RFC 014
  • Date: Wed, 23 Jul 2014 09:51:38 -0700

Astute readers of old science fiction will remember that the novella that makes up the first part of Robert A. Heinlein's novel "Orphans of the Sky" is titled "Universe".

Aside from some bug fixes with making file uploading and cookbook metadata checking a little more forgiving, this release adds support for the Berkshelf /universe endpoint. This was originally going to be a small update, but testing with the full complement of cookbooks from the Supermarket revealed that goiardi was running like a dog with 6200+ cookbooks trying to use the same functions designed for fetching one cookbook in in-memory mode. Sensible enough, but it also turned out that while golang's gob encoding is almost always faster than JSON encoding it is NOT the case when encoding complex data structures found in cookbooks, nodes, etc.

Thus, this version of goiardi introduces another breaking change: complex data structures in the database are now stored with JSON instead of gob encoding. You have to export your data, do a sqitch revert and deploy (or drop the database and load the schema dump), and import your data again if you're using one of the SQL backends. While a little painful, it leads to a good result; if you're using Postgres as a datastore, goiardi's able to take advantage of Postgres specific goodies with JSON and load the universe with all the supermarket cookbooks in ~325-350 milliseconds. MySQL can't take advantage of the JSON goodies, so it takes about 1 second to serve up the full supermarket, and in-memory takes about 1.2 seconds. If you have that many cookbooks, I would recommend using Postgres.


-j


  • [chef] goiardi 0.7.0 "Orphans of the Sky" released, implementing Chef RFC 014, Jeremy Bingham, 07/23/2014

Archive powered by MHonArc 2.6.16.

§