You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Jonathan Ellis <jb...@gmail.com> on 2009/06/20 15:54:26 UTC

proposal: rename to
Since we're proposing things that break stuff this weekend... :)

I think we should rename table to namespace in the config file.
Calling it "table" confuses people coming from an rdbms background
(i.e. just about everyone).

-Jonathan

Re: proposal: rename

to Posted by Alexander Staubo <al...@bengler.no>.
On Sat, Jun 20, 2009 at 3:54 PM, Jonathan Ellis<jb...@gmail.com> wrote:
> I think we should rename table to namespace in the config file.
> Calling it "table" confuses people coming from an rdbms background
> (i.e. just about everyone).

Actually I think "table" is perfect. A "namespace" in mainstream
computer science nomenclature just means a set of names that are
logically separate from another set of names, to avoid conflicts.
Namespaces don't contain data, just names.

As I have argued before, the concept of table in Cassandra ought to be
able to express more than just a namespace, but also things like
column families, replication factor, data file locations, key ordering
settings, etc.

If you don't like "table", going up a notch to "database" might be acceptable?

A.

Re: proposal: rename

to Posted by Jonathan Ellis <jb...@gmail.com>.
On Mon, Jun 22, 2009 at 10:59 AM, Chris Goffinet<cg...@chrisgoffinet.com> wrote:
> But the thing is, BigTable uses 'Tables' as well. Calling it namespaces just
> makes it even more confusing.

Well, (a) it's only confusing to people who have actually read the
Bigtable paper, and they can cope. :P  HBase and HyperTable haven't
been religious about Bigtable nomenclature and it hasn't killed them.

Especially since only a small fraction of the Bigtable paper is
actually relevant to Cassandra I don't want to push that too hard as
containing Our Official Vision.

And namespace is really a better name. :P

Another alternative is "schema," but to me that implies a more rigid,
rdbms-like structure.

Namespace just implies "keys in one namespace/table won't conflict
with keys in another" which is exactly right.  (And maybe it's a
slight abuse of the term to add options like key ordering there but
the more important Big Picture connotation is correct.)

-Jonathan

Re: proposal: rename

to Posted by Chris Goffinet <cg...@chrisgoffinet.com>.
But the thing is, BigTable uses 'Tables' as well. Calling it  
namespaces just makes it even more confusing. Seems like calling it  
namespace would confuse uses even more when trying to relate this to  
RDBMS.

I think the bigger mistake is the fact we haven't made a super easy to  
use tutorial utilizing multi-table with examples so users can  
understand how it works.

Maybe I should make a screen cast :-)

On Jun 22, 2009, at 7:43 AM, Jonathan Ellis wrote:

> For those who don't follow -users,
>
> On Mon, Jun 22, 2009 at 9:35 AM, Matt Revelle<mr...@gmail.com>  
> wrote:
>> Cassandra only supports one table per instance (before today?).   
>> However, as
>> Jonathan mentioned previously, what you consider to be tables are
>> represented as column families in Cassandra.
>
> See, this is why I suggested renaming <table> -- _everyone_ who hasn't
> read the Bigtable paper (which is increasingly approaching 100% of new
> users) makes this mistake.
>
> -Jonathan


Re: proposal: rename

to Posted by Eric Evans <ee...@rackspace.com>.
On Fri, 2009-07-03 at 03:55 +0300, Ian Holsman wrote:
> why not just use "stuff_goes_here"

+1

-- 
Eric Evans
eevans@rackspace.com


Re: proposal: rename

to Posted by Ian Holsman <ia...@holsman.net>.
why not just use "stuff_goes_here"

On 02/07/2009, at 10:02 PM, Evan Weaver wrote:

> Commented on the ticket... http://issues.apache.org/jira/browse/CASSANDRA-271
>
> I prefer Collection, borrowed from MongoDB. KeySpace does not really
> express the storage separation of the data; it seems like just a
> synonym for namespace.
>
> On Thu, Jul 2, 2009 at 11:53 AM, Alexander
> Staubo<ma...@gmail.com> wrote:
>> On Mon, Jun 22, 2009 at 8:38 PM, Jonathan Ellis<jb...@gmail.com>  
>> wrote:
>>> On Mon, Jun 22, 2009 at 12:26 PM, Alexander Staubo<alex@purefiction.net 
>>> > wrote:
>>>> On Mon, Jun 22, 2009 at 7:13 PM, Jonathan  
>>>> Ellis<jb...@gmail.com> wrote:
>>>>> Actually, Cassandra doesn't support multidimensional cells a la  
>>>>> Bigtable.
>>>>
>>>> I meant multidimensional in the column sense.
>>>
>>> If you mean "CFs have columns" then that is not different from how
>>> "tables have columns" relationally.
>>
>> In case it helps, LinkedIn's Voldemort uses the term "store" to refer
>> to its "tables".
>>
>> A.
>>
>
>
>
> -- 
> Evan Weaver

--
Ian Holsman
Ian@Holsman.net




Re: proposal: rename

to Posted by Evan Weaver <ew...@gmail.com>.
Commented on the ticket... http://issues.apache.org/jira/browse/CASSANDRA-271

I prefer Collection, borrowed from MongoDB. KeySpace does not really
express the storage separation of the data; it seems like just a
synonym for namespace.

On Thu, Jul 2, 2009 at 11:53 AM, Alexander
Staubo<ma...@gmail.com> wrote:
> On Mon, Jun 22, 2009 at 8:38 PM, Jonathan Ellis<jb...@gmail.com> wrote:
>> On Mon, Jun 22, 2009 at 12:26 PM, Alexander Staubo<al...@purefiction.net> wrote:
>>> On Mon, Jun 22, 2009 at 7:13 PM, Jonathan Ellis<jb...@gmail.com> wrote:
>>>> Actually, Cassandra doesn't support multidimensional cells a la Bigtable.
>>>
>>> I meant multidimensional in the column sense.
>>
>> If you mean "CFs have columns" then that is not different from how
>> "tables have columns" relationally.
>
> In case it helps, LinkedIn's Voldemort uses the term "store" to refer
> to its "tables".
>
> A.
>



-- 
Evan Weaver

Re: proposal: rename

to Posted by Alexander Staubo <ma...@gmail.com>.
On Mon, Jun 22, 2009 at 8:38 PM, Jonathan Ellis<jb...@gmail.com> wrote:
> On Mon, Jun 22, 2009 at 12:26 PM, Alexander Staubo<al...@purefiction.net> wrote:
>> On Mon, Jun 22, 2009 at 7:13 PM, Jonathan Ellis<jb...@gmail.com> wrote:
>>> Actually, Cassandra doesn't support multidimensional cells a la Bigtable.
>>
>> I meant multidimensional in the column sense.
>
> If you mean "CFs have columns" then that is not different from how
> "tables have columns" relationally.

In case it helps, LinkedIn's Voldemort uses the term "store" to refer
to its "tables".

A.

Re: proposal: rename

to Posted by Jonathan Ellis <jb...@gmail.com>.
On Mon, Jun 22, 2009 at 12:26 PM, Alexander Staubo<al...@purefiction.net> wrote:
> On Mon, Jun 22, 2009 at 7:13 PM, Jonathan Ellis<jb...@gmail.com> wrote:
>> Actually, Cassandra doesn't support multidimensional cells a la Bigtable.
>
> I meant multidimensional in the column sense.

If you mean "CFs have columns" then that is not different from how
"tables have columns" relationally.

If you mean "Super CFs have SuperColumns have Columns" then again you
are talking about something different from bigtable.

Bigtable is actually a really bad guide to thinking about Cassandra
modeling.  The only part that really applies is the memtable/sstable
architecture but that is not user-visible.

-Jonathan

Re: proposal: rename

to Posted by Alexander Staubo <al...@purefiction.net>.
On Mon, Jun 22, 2009 at 7:13 PM, Jonathan Ellis<jb...@gmail.com> wrote:
> Actually, Cassandra doesn't support multidimensional cells a la Bigtable.

I meant multidimensional in the column sense.

A.

Re: proposal: rename

to Posted by Jonathan Ellis <jb...@gmail.com>.
On Mon, Jun 22, 2009 at 11:58 AM, Alexander Staubo<al...@purefiction.net> wrote:
> If that's your point, you could have made it clearer. You will not
> achieve that goal by calling it a "namespace". I would argue that
> users tend to be more familiar with the idea of a "table"

That's exactly the problem: they *think* they know what "table" means,
but in Cassandra the correct analog is the ColumnFamily (modulo
denormalization and other changes of course).  To a first
approximation it's *never* correct to map a relational table to a
cassandra table.

> and the
> fact that you can use Cassandra naively as a simple table makes it
> easier to get started with the basics: "Oh, I see, I can use like a
> MySQL table or a persistent kind of Memcached store." And then later,
> when the user is ready to put away his/her chilish things: "Oh, I can
> use it in this weird multidimensional way! Cool!"

Actually, Cassandra doesn't support multidimensional cells a la Bigtable.

So the situation is worse than I originally thought: not only are we
confusing people from a relational background, we are causing people
who read Bigtable to assume that Cassandra is more similar to BT than
it really is.

Both of these can be fixed with a terminology change.

-Jonathan

Re: proposal: rename

to Posted by Alexander Staubo <al...@purefiction.net>.
On Mon, Jun 22, 2009 at 6:39 PM, Jonathan Ellis<jb...@gmail.com> wrote:
> But that's my point.  _most_ users have _not_ read the Bigtable paper,
> and it's those people we need to optimize for, not you and other
> Bigtable-readers.

If that's your point, you could have made it clearer. You will not
achieve that goal by calling it a "namespace". I would argue that
users tend to be more familiar with the idea of a "table", and the
fact that you can use Cassandra naively as a simple table makes it
easier to get started with the basics: "Oh, I see, I can use like a
MySQL table or a persistent kind of Memcached store." And then later,
when the user is ready to put away his/her chilish things: "Oh, I can
use it in this weird multidimensional way! Cool!"

>> To explicate on my earlier argument, here are a few other things that
>> I consider to be part of a table/namespace/whatchamacallit:
>
> I find it extremely depressing that you have so much time to argue
> about nomenclature but no time to submit patches for any of those.

Simple: Replying to this discussion takes three-four minutes tops.
Ramping up on 80kloc of code to write a bit of Java (which I worked
for seven years and now try to avoid whenever possible) takes much
more than that. So far the only itch that has provoked an interest in
contributing code has been adding a query language to Cassandra, and
that's a serious project.

A.

Re: proposal: rename

to Posted by Jonathan Ellis <jb...@gmail.com>.
On Mon, Jun 22, 2009 at 11:32 AM, Alexander
Staubo<ma...@gmail.com> wrote:
> On Mon, Jun 22, 2009 at 4:43 PM, Jonathan Ellis<jb...@gmail.com> wrote:
>> On Mon, Jun 22, 2009 at 9:35 AM, Matt Revelle<mr...@gmail.com> wrote:
>>> Cassandra only supports one table per instance (before today?).  However, as
>>> Jonathan mentioned previously, what you consider to be tables are
>>> represented as column families in Cassandra.
>>
>> See, this is why I suggested renaming <table> -- _everyone_ who hasn't
>> read the Bigtable paper (which is increasingly approaching 100% of new
>> users) makes this mistake.
>
> I have read the Bigtable paper, and I'm not making any mistake.

But that's my point.  _most_ users have _not_ read the Bigtable paper,
and it's those people we need to optimize for, not you and other
Bigtable-readers.

> To explicate on my earlier argument, here are a few other things that
> I consider to be part of a table/namespace/whatchamacallit:

I find it extremely depressing that you have so much time to argue
about nomenclature but no time to submit patches for any of those.

-Jonathan

Re: proposal: rename

to Posted by Alexander Staubo <ma...@gmail.com>.
On Mon, Jun 22, 2009 at 4:43 PM, Jonathan Ellis<jb...@gmail.com> wrote:
> On Mon, Jun 22, 2009 at 9:35 AM, Matt Revelle<mr...@gmail.com> wrote:
>> Cassandra only supports one table per instance (before today?).  However, as
>> Jonathan mentioned previously, what you consider to be tables are
>> represented as column families in Cassandra.
>
> See, this is why I suggested renaming <table> -- _everyone_ who hasn't
> read the Bigtable paper (which is increasingly approaching 100% of new
> users) makes this mistake.

I have read the Bigtable paper, and I'm not making any mistake. The
paper consistently refers to its structures as "tables". In fact, it
occasionally uses the term "bigtable" to refer to such tables; quoth
page one: "A Bigtable is a sparse, distributed, persistent
multidimensional sorted map."

> Namespace just implies "keys in one namespace/table won't conflict
> with keys in another" which is exactly right.  (And maybe it's a
> slight abuse of the term to add options like key ordering there but
> the more important Big Picture connotation is correct.)

It's precisely this abuse confirms that the name "namespace" is inappropriate.

To explicate on my earlier argument, here are a few other things that
I consider to be part of a table/namespace/whatchamacallit:

* Column families. Each table have different, differently-named families.
* Replication factor. I should be able to define different replication
factors for different tables.
* Key ordering. Ditto.
* Data locations. In a server environment I might want table A to be
on /dev/sda, but table B on /dev/sdb for performance reasons.
* Storage mechanisms. Maybe one day Cassandra will support pluggable storages.
* Indexing and query semantics. At the moment Cassandra has limited
native indexing for performing SQL-like queries, but future support is
probably not out of the question?

All of these features are aspects of a kind of logical-physical
separation that deserves a better name than "namespace". I like
"table" because it fits; Cassandra is, after all, a sort of abstract
multidimensional hash table. The fact that Cassandra isn't *just* a
"table", but in fact a table of tables (of tables, potentially) does
not alter this fact.

A namespace is a space of names. It's a space where names live.
Nothing other than names live there. The sentence, "then we store the
key in the namespace" makes no sense. The thing we're talking about is
not primarily about names but about storing information. In that sense
you could call it a database, a container, a repository -- or a table,
since that's pretty much what it is. It's a table which incidentally
provides a namespace.

A.

Re: proposal: rename

to Posted by Jonathan Ellis <jb...@gmail.com>.
For those who don't follow -users,

On Mon, Jun 22, 2009 at 9:35 AM, Matt Revelle<mr...@gmail.com> wrote:
> Cassandra only supports one table per instance (before today?).  However, as
> Jonathan mentioned previously, what you consider to be tables are
> represented as column families in Cassandra.

See, this is why I suggested renaming <table> -- _everyone_ who hasn't
read the Bigtable paper (which is increasingly approaching 100% of new
users) makes this mistake.

-Jonathan

Re: proposal: rename

to Posted by Jonathan Ellis <jb...@gmail.com>.
I guess the Nays have it.  So that is what I will do.

-Jonathan

On Sat, Jun 20, 2009 at 6:52 PM, Ian Holsman<ia...@holsman.net> wrote:
> if you don't change it from table, what about putting a huge comment in the
> config file with the FAQ entry in it.
>
> On 21/06/2009, at 9:32 AM, Sandeep Tata wrote:
>
>> I'd like for us to continue with "Table" as well.
>> I agree with Alexander's argument for what "namespaces" mean for most
>> CS domains.
>>
>> Moving up a notch to a "database" is also confusing (Do we also have
>> tables? Are there tablespaces? Different storage engines for each
>> tablespace?)
>>
>> We'll have to think of new names for columns and supercolumns too ---
>> I'd rather we stayed with "Table"
>>
>>
>>
>>
>>
>> On Sat, Jun 20, 2009 at 11:16 AM, Chris Goffinet<cg...@chrisgoffinet.com>
>> wrote:
>>>
>>> I think we should keep it as 'table'. It's understood everywhere. I've
>>> always even heard BigTable call it a Table? I think namespace might just
>>> be
>>> more confusing.
>>>
>>> On Jun 20, 2009, at 6:54 AM, Jonathan Ellis wrote:
>>>
>>>> Since we're proposing things that break stuff this weekend... :)
>>>>
>>>> I think we should rename table to namespace in the config file.
>>>> Calling it "table" confuses people coming from an rdbms background
>>>> (i.e. just about everyone).
>>>>
>>>> -Jonathan
>>>
>>>
>
> --
> Ian Holsman
> Ian@Holsman.net
>
>
>
>

Re: proposal: rename

to Posted by Ian Holsman <ia...@holsman.net>.
if you don't change it from table, what about putting a huge comment  
in the config file with the FAQ entry in it.

On 21/06/2009, at 9:32 AM, Sandeep Tata wrote:

> I'd like for us to continue with "Table" as well.
> I agree with Alexander's argument for what "namespaces" mean for most
> CS domains.
>
> Moving up a notch to a "database" is also confusing (Do we also have
> tables? Are there tablespaces? Different storage engines for each
> tablespace?)
>
> We'll have to think of new names for columns and supercolumns too ---
> I'd rather we stayed with "Table"
>
>
>
>
>
> On Sat, Jun 20, 2009 at 11:16 AM, Chris  
> Goffinet<cg...@chrisgoffinet.com> wrote:
>> I think we should keep it as 'table'. It's understood everywhere.  
>> I've
>> always even heard BigTable call it a Table? I think namespace might  
>> just be
>> more confusing.
>>
>> On Jun 20, 2009, at 6:54 AM, Jonathan Ellis wrote:
>>
>>> Since we're proposing things that break stuff this weekend... :)
>>>
>>> I think we should rename table to namespace in the config file.
>>> Calling it "table" confuses people coming from an rdbms background
>>> (i.e. just about everyone).
>>>
>>> -Jonathan
>>
>>

--
Ian Holsman
Ian@Holsman.net




Re: proposal: rename

to Posted by Sandeep Tata <sa...@gmail.com>.
I'd like for us to continue with "Table" as well.
I agree with Alexander's argument for what "namespaces" mean for most
CS domains.

Moving up a notch to a "database" is also confusing (Do we also have
tables? Are there tablespaces? Different storage engines for each
tablespace?)

We'll have to think of new names for columns and supercolumns too ---
I'd rather we stayed with "Table"





On Sat, Jun 20, 2009 at 11:16 AM, Chris Goffinet<cg...@chrisgoffinet.com> wrote:
> I think we should keep it as 'table'. It's understood everywhere. I've
> always even heard BigTable call it a Table? I think namespace might just be
> more confusing.
>
> On Jun 20, 2009, at 6:54 AM, Jonathan Ellis wrote:
>
>> Since we're proposing things that break stuff this weekend... :)
>>
>> I think we should rename table to namespace in the config file.
>> Calling it "table" confuses people coming from an rdbms background
>> (i.e. just about everyone).
>>
>> -Jonathan
>
>

Re: proposal: rename

to Posted by Chris Goffinet <cg...@chrisgoffinet.com>.
I think we should keep it as 'table'. It's understood everywhere. I've  
always even heard BigTable call it a Table? I think namespace might  
just be more confusing.

On Jun 20, 2009, at 6:54 AM, Jonathan Ellis wrote:

> Since we're proposing things that break stuff this weekend... :)
>
> I think we should rename table to namespace in the config file.
> Calling it "table" confuses people coming from an rdbms background
> (i.e. just about everyone).
>
> -Jonathan