Re: some questions


Chronological Thread 
  • From: snacktime <snacktime@gmail.com>
  • To: chef@lists.opscode.com
  • Subject: Re: some questions
  • Date: Fri, 24 Apr 2009 00:06:37 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=ujs1/J4MG8+wzdQuCBKErpHxz2KyW8O1aXpfFBXiTjYE3vzARbjQMJ3tTeUGJbLWT/ SzpHQbAgf+1fKDUuGVOaCmnrRXuK0ESsE8WJHdkkI54HFqtHrLHVQ9lM3lqn6mvCWlee GNGRaYtAOyYoirDD3QIqkLWvfHz9QN1exJ2kk=



On Thu, Apr 23, 2009 at 9:02 PM, Adam Jacob <adam@opscode.com> wrote:
On Thu, Apr 23, 2009 at 6:40 PM, snacktime <snacktime@gmail.com> wrote:
> I was more thinking of all the other parts of chef that could benefit from
> having an sql db, but can't as long as you have couchdb, unless you want to
> run both an sql server and couchdb.  And what if people want to extend chef
> for their own particular needs, or you expand the UI, or any number of other
> things that can and will be added to chef in the future?   Sql won't make
> querying attributes any easier, that's true.

I totally hear what you're saying - it's true that more people are
familiar with using SQL databases for these kinds of applications.
Having built a similar web UI with Rails, Active Record and
acts_as_solr, (iClassify) the difference between using CouchDB and a
SQL database for this sort of application was pretty huge.  It does
take a bit more learning to understand, but not much - in truth, you
are much closer to the point of view you care about most: the objects
you deal with in Ruby.

This is particularly true with tools like CouchRest, which will likely
find it's way into Chef, rather than our own Chef::CouchDB interface
(which gives you a lot of the AR like API).  It's not that CouchDB is
better for every application - but for Chef, where you have a pretty
clean set of objects, that happens to speak JSON as it's own REST API,
CouchDB is pretty great.

In case I wasn't totally clear, I would absolutely accept patches to
enable the use of multiple back end data stores, including a SQL one
(and all that would really be required is that things inflate to the
right objects - it probably wouldn't be a ton of work.) I chose
CouchDB because, in my opinion, it fit the model perfectly, and has
great scaling characteristics.  (Think about read performance, and
what a single varnish instance could accomplish.)

Adam

--
Opscode, Inc.
Adam Jacob, CTO
T: (206) 508-4759 E: adam@opscode.com

Thanks Adam for the thorough reply.   Personally I can live with couchdb, as long as I don't have to go writing custom views for everything that resembles an sql join:)  I wouldn't mind contributing code to enable the use of multiple backends.   I was looking at the couchdb interface last night and it looks pretty straight forward.   But I really didn't want to drag this whole thread off topic, so I'll post in another if I have questions on this.

Chris



In any case I didn't mean to drag this thread off topic:)





Archive powered by MHonArc 2.6.16.

§