Return-Path: Delivered-To: apmail-incubator-cassandra-dev-archive@minotaur.apache.org Received: (qmail 86139 invoked from network); 13 Aug 2009 01:22:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 13 Aug 2009 01:22:01 -0000 Received: (qmail 73266 invoked by uid 500); 13 Aug 2009 01:22:08 -0000 Delivered-To: apmail-incubator-cassandra-dev-archive@incubator.apache.org Received: (qmail 73237 invoked by uid 500); 13 Aug 2009 01:22:08 -0000 Mailing-List: contact cassandra-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cassandra-dev@incubator.apache.org Delivered-To: mailing list cassandra-dev@incubator.apache.org Received: (qmail 73227 invoked by uid 99); 13 Aug 2009 01:22:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Aug 2009 01:22:08 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jbellis@gmail.com designates 209.85.219.212 as permitted sender) Received: from [209.85.219.212] (HELO mail-ew0-f212.google.com) (209.85.219.212) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Aug 2009 01:22:00 +0000 Received: by ewy8 with SMTP id 8so422891ewy.12 for ; Wed, 12 Aug 2009 18:21:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=3lLlCPOxDc7tSyPqR3O3auGsP5ZVsbthjyibc0NnkFQ=; b=rDFZgU08Scb7c03+mobUrnPRjstq8AxLSpTCIWcc1+qW/JVR4c+9WagEamSFqqTZ22 Y73Uk3Yl7ui0Wbq77j6bU7hNx84Dxcp2IpfEpQrlHS9ZB7MAV9gGFcee5RodWMUY+5gs bdSGm4Z8I5bGqbRoFOeLw0rOIZ135rvZgYW94= 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:content-transfer-encoding; b=dA8O4FD/W/bC3nFME+QyvJJEMclU6/EA2kTCzDjuHq3EzSUufcHZd8TP9+b81uYuob EIwSbXf4BT6EPcWNq7DX+43D7Jq8jPW80Ygbw8Ih98/oTOAji7yO19uK/M6vEr/yXzYi dK0+MI9z25Doon5953HNTGvT4eDarKqt9awVU= MIME-Version: 1.0 Received: by 10.216.90.147 with SMTP id e19mr117456wef.96.1250126498813; Wed, 12 Aug 2009 18:21:38 -0700 (PDT) In-Reply-To: References: <1250051937.23994.179.camel@achilles> <8d9c091a0908112209s11703850td69973809de7cc74@mail.gmail.com> <991dde790908112234g5ecafaa5kec3f4387ff11d321@mail.gmail.com> <1250087250.23994.198.camel@achilles> <7c5131fa0908121505m6393cd50l4361cc878d91867f@mail.gmail.com> Date: Wed, 12 Aug 2009 20:21:38 -0500 Message-ID: Subject: Re: Fixing the data model names From: Jonathan Ellis To: cassandra-dev@incubator.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On Wed, Aug 12, 2009 at 7:52 PM, Michael Koziarski w= rote: > However I think it's worth considering this from a strategic > perspective, looking at how we want the project do grow and change, > rather than just as it is right now. =A0The key to successful adoption > is having a successful elevator pitch, =A0you can start using a database > without understanding relational-algebra because 'table' and 'column' > are such simple ways to reason about the tool. =A0As it stands > cassandra's takes a whiteboard and 15 minutes, before people get what > you're talking about. If you want to explain it as "sort of like a relational db" then table -> CF column -> column key -> key row -> row That's the simple case, then all you have is "supercolumns can contain a list of simple columns." That really doesn't seem so hard to me. I have explained this to *managers= *. > Assuming the project gets anything like the adoption it deserves, the > users we have today will be a *tiny minority* of the users we have in > the future. =A0So imposing costs on the current userbase which will give > huge benefits to future users, should be something we're willing to > do. =A0In fact it's something that has been done repeatedly over the > last few weeks. I agree. But as I said before I just don't see this as being an improvemen= t. > Given those changes went in without debate, I'm not sure what the > reluctance is for making changes to the nomenclature for the project. As above. > Speaking as someone who's only been doing this a month, the naming is > *still* confusing, and when I talk with people who wonder what > cassandra is all about I get blank looks when telling them what things > are called. =A0If you step back and want to tell someone how you'd > insert a tweet into someone's timeline using evan's weblog post: > > =A0"You just take the user's key, and use that to insert into the > SuperColumnFamily 'UserAssociations' at SubColumn 'user_timeline', a > ColumnName of a time based uuid representing now, and a value of the > new tweet's key" > > Column is in the name of 3 of the 5 concepts expressed, and in each > cases it's different. When you're inserting something nested 3 levels deep a certain amount of verbosity is unavoidable. With Evan's nomenclature, "You take the user's record ID, and use that to insert into the Record Collection 'user associations' at Attribute Collection 'user_timeline,' an Attribute named with a time based uuid representing now, and with a value of the new tweet's key." I think that is a negative improvement. Yay, now we are talking about Attribute Collections and Attributes instead of SuperColumns and Columns. The same objections ("one object's name contains the other's!) apply, plus the new one of sounding so generic that it could apply to practically any system. -Jonathan