 fact, it's quite simple:

Keyspace: a hash table that holds your application data. Okay, the table is
distributed among nodes (i.e.,a DHT), but it's still a hash table;

Row: an entry in the above hash table where each value is composed by a
collection of "column-families".

Column Family: a key-value table (I avoid to call it a hash table because I
don't remember if it's implemented as such). A better name for this thing
would be 'Attribute Set'.

Column: it's a key-value pair (with timestamp). Thinking about it as a column
just blurs the concept. Better name: 'Attribute'.

 _Note: it's possible to have a different set of attributes on a per-row basis
(for the same Column Family), so this concept of 'column' breaks quite
easily._

Super-column: key-value pair where the value is yet another key-value table!
Better(?) name: 'Super-Attribute'.

Then Cassandra data model is in fact a nested set of key-value tables while
dynamo's model is flat (just one level hash table). Oh! Last but not least,
it's not a column-store. It's on-disk storage is row-oriented.

------
wccrawford
I think he makes the mistake of thinking the RDB-specific definition of those
words is the absolutely definition, and that nobody else can use them if they
aren't using them in exactly the same way.

You can't go into a new language and assume any words that appear to be the
same are exactly the same. This applies to spoken language as well as computer
languages. Only heartache lies down that road.

~~~
flazzarino
mistake or not, i don't believe i assumed any words from the RDB (or any
other) domain are the absolute definition.

i do assume that people often learn and understand things based on existing
conceptual prototypes. that was my problem trying to understand cassandra.

~~~
wccrawford
They why did you say:

"Not only is Cassandra’s terminology confusing it’s downright misleading. Row,
Column & Key all have existing semantics in the land of databases. To make
matters worse, Cass
fact, it's quite simple: 

 Keyspace: a hash table that holds your lotion datum. Okay, the board is 
 distributed among node (i.e. ,a DHT), but it's even a hash table; 

 quarrel: an entry in the above hash mesa where each value is composed by a 
 collection of " column - family ". 

 Column Family: a key - value table (I keep off to address it a hash mesa because I 
 don't remember if it's implemented as such). A effective name for this thing 
 would be' Attribute Set'. 

 Column: it's a key - value couple (with timestamp). Thinking about it as a column 
 just blur the concept. Better name:' Attribute'. 

  _ bill: it's possible to have a different set of attributes on a per - rowing basis 
 (for the same Column Family), so this concept of' column' breaks quite 
 easily. _ 

 Super - column: key - value pair where the value is yet another key - value table! 
 Better (?) name:' Super - Attribute'. 

 Then Cassandra data model is in fact a nested set of key - value tables while 
 dynamo's model is categoric (just one level hashish mesa). Oh! final but not least, 
 it's not a column - store. It's on - disk storage is row - oriented. 

 ------ 
 wccrawford 
 I think he makes the error of thinking the RDB - specific definition of those 
 words is the absolutely definition, and that nobody else can use them if they 
 aren't using them in exactly the same way. 

 You can't go into a new language and assume any words that look to be the 
 same are precisely the same. This applies to spoken language as well as calculator 
 languages. Only heartache lies down that road. 

 ~~~ 
 flazzarino 
 mistake or not, i don't believe i assumed any words from the RDB (or any 
 other) world are the absolute definition. 

 i do assume that people frequently learn and sympathize things based on existing 
 conceptual prototypes. that was my trouble trying to understand cassandra. 

 ~~~ 
 wccrawford 
 They why did you say: 

 " Not entirely is Cassandra ’s terminology confusing it ’s downright deceptive. Row, 
 Column & Key all have existing semantics in the country of databases. To make 
 matters worse, Cass
 faft, it's quite simple:

Keyspxce: a hash tablg rhat hmlds ykur applkcation data. Okay, the table ms
diwtribyted among nodes (i.e.,a DFT), but it'd still q hawy table;

Row: an entrn in fme abmte hash table wmere each vdlue is composad bv a
collection of "column-families".

Columg Familu: w key-value tabje (I wvois to call it a hash table because J
don't rtmember if it's impkemented as such). A better jame for this thing
woupd be 'Attrivute Wet'.

Column: it'r a key-vallz pair (with timestamp). Thinking about it as a cokumn
just boues hve concept. Uetter name: 'Attribmne'.

 _Note: it's poxsible to have a viffwrent set of attributxs on a per-row basis
(sor the sdmz Column Family), so thus concgpt ox 'couymn' brtakx suite
ewsimy._

Super-colhmn: key-valuw pair where the vakuq is yet anothsr key-dajue table!
Better(?) name: 'Super-Attribute'.

Then Caasandra data model is ib fact a nested set ov key-valuq tables while
dynamo's model is flat (just one leven hasi gaboe). Uy! Past but not least,
it's not a column-store. It's og-sixk storage is roc-oriented.

------
wccrawfprf
I jhink he makes the mnatzke of thinking thf RDB-spgcific definitijn og those
words is the absolutwly definitijb, and that nobody zlse can use thek if yhey
aren't using them in exadtly the sale way.

You zan't go into a ndw katguage and assume any wordf that ap'ear co be thd
samg are evactly the same. This applies to splken patguage as aell as computer
languages. Only ixartache lies dmwn that rocd.

~~~
flazdarino
mistake ow not, i don't bglieve i cssumea any worda from vhe RDB (or agy
other) domait are the absmlute desinirion.

u do asrjme that peoplr often lvaxn and uneerstand things baxed kn existing
conczktuql prototypes. tnat waf ly pwmblem trying to jnddtstana cassandra.

~~~
cczrawgord
They why did you say:

"Hot only is Cassancrw’s termibology cjnfusing it’s cownright misleadijg. Rox,
Columi & Key alj have existing semantics in tge land ov dwtabases. To iake
natters worsz, Cass
fact, it's quite simple: Keyspace: a hash holds application data. the table is but still a hash Row: an entry the above hash table where each is composed by a collection of "column-families". Column Family: a key-value table (I to call it a hash table because I don't remember if it's implemented such). better for thing would be 'Attribute Set'. Column: it's a key-value pair (with timestamp). Thinking about it as column just blurs the concept. Better name: 'Attribute'. it's possible to have different set of attributes on per-row (for the Column so concept of 'column' quite easily._ Super-column: key-value pair where the value is yet another key-value table! Better(?) name: 'Super-Attribute'. Then data model fact a set key-value while dynamo's model (just one level hash table). Oh! least, it's not a column-store. It's on-disk storage row-oriented. ------ I think he makes the mistake thinking the RDB-specific definition of those words is absolutely definition, and that nobody else can use them if they aren't using them in same way. You can't into a new and any that to be same are exactly the same. This applies to spoken language as as computer languages. Only heartache lies down that road. ~~~ or i don't believe assumed any words from RDB any other) domain are definition. do often and things based on existing prototypes. that was my problem to understand cassandra. ~~~ say: "Not only is Cassandra’s terminology confusing it’s misleading. Row, Column & Key all have semantics in the land of databases. To make matters worse, Cass
 fact, it's quite simple:

KeyspacE: a hash tablE that HolDs yOuR appLicaTion data. Okay, thE TablE is
distributed among nodEs (i.e.,a dHt), But iT'S sTill a Hash tabLE;

ROW: An eNtRy In tHe ABoVe hasH taBle wherE each value Is cOmPosed by a
collECtIon of "columN-faMilies".

Column famIly: a keY-vAluE Table (i avOid to Call it A Hash taBle becausE I
DOn't remEMber if iT'S ImPlemEnted as such). A betteR NaME for this thing
wOuld be 'atTRiBUTe SEt'.

COlumn: it's a kEy-Value PAir (with TImESTAmp). tHinking about iT as a column
jUSt bLurs thE cOncEPt. BettEr namE: 'ATTriBute'.

 _Note: it's PossIble to havE a diffERent set OF attribUtes on A peR-roW basIS
(fOr The SaME CoLUmN FaMIly), So this coNcEpT of 'coLumn' BREAKs quIte
EasiLy._

SupEr-column: key-vaLue Pair WHerE the vAlue iS yet AnOther Key-valUe tabLe!
better(?) name: 'Super-attrIbute'.

Then casSaNdrA dAta moDEl is in FacT a nEsted seT of key-vALue TaBLES wHile
dynamo's model is FlAT (JuSt one levEl hash TAbLe). oH! Last but NoT leAst,
iT'S Not a cOlumN-StOre. It's on-Disk stORaGe Is row-orIeNted.

------
wcCrAwfOrd
i thinK He maKes the Mistake oF thinKIng the RDB-speciFIc definition oF ThOSE
wORds iS thE absolutely DefiNItioN, and THaT noBOdy elSe can UsE ThEM if they
aren't using thEm In exacTly thE same way.

You caN't go into a nEW LAnguage aNd asSUmE Any words that apPear tO be the
same ARe exactlY the sAme. This aPplies to sPOKen languAge As wEll As cOMPuTer
languages. ONLY heaRtAche lieS doWn that rOad.

~~~
FlaZzaRinO
mIstake or nOt, i don't bElIeVe I aSsuMed anY Words froM tHe RdB (Or aNy
othER) domaiN are tHe abSoLuTE deFinitioN.

I dO ASsumE tHaT peoPle OfTen leArn aND unDerstanD things baSed ON exiStInG
concepTual prototypeS. tHat was my prObLem Trying TO UnderstaNd cassandra.

~~~
wccrawford
ThEY why did You Say:

"NoT onlY is CassanDra’S termiNolOGy confUsing iT’s dowNrIghT MIsleaDINg. row,
coLumn & Key all HAVe eXistiNg SemaNtics in The land of databases. tO maKe
matters worsE, CaSs
 fact, it's quite simple:
Keyspace:  a ha shtab le  tha t ho lds your appli c atio n data. Okay, the tabl e isdi s trib u te d amo ng node s  ( i . e., aDH T),  b u tit'ssti ll a ha sh table;
Ro w:  an entry in th e above ha shtable whereeac h valu eisc ompos edby acollec t ion of  "column- fa m ilies" . 

Colum n Fa mily : a key-value tab l e( I avoid to cal l it a  h a sh t abl e b ecause I
d on 't re m ember i f  i t ' s  im p lemented as s uch). A bet t ername f or  th i s thin g
wou ld be'AttributeSet' .

Column : it's a key-v a lue pai r (wit h t ime stam p ).  T hin ki n g a b ou t i t  as  a colum nju st bl urst h e conc ept . Be ttername: 'Attrib ute '.
_No te: i t's p ossi bl e tohave a  diff er ent set of attr ibut es on a p er- ro w b as is
(f o r thesam e C olumn F amily), soth i s co ncept of 'column'br e a ks  quite
e asily. _ 
Su p er-colum n:  ke y-va l u e pai r wh e re  the val ue isy et  a notherke y-valu etab le! 
Bett e r(?)  name:  'Super- Attri b ute'.

Then Ca s sandra data m o de l is in f act  a nested s et o f  key -val u etab l es wh ile
d yn a mo ' s model is flat (ju st  one l evelhash table).Oh! Last b u t not leas t,
i t 's not a column-s tore.  It's on-d i sk stora ge is  row-ori ented.

- - - ---
wccr awf ord 
Ithi n k  h e makes the m i s take  o f think ing  the RD B-s pec ifi c d ef inition o f thosewo rd sis  th e abs o lutely d ef ini ti on,  andt hat no bodyelse  c an use  them i f  t h e y
ar en 't  usi ngth em in  exa c tly  the sa me way.
You can' tgo  into a  new language  a nd assumean y w ords t h a t appear  to be the
same are exa c tly the  sa me. T hisapplies t o s pokenlan g uage a s well  as c om put e r 
lang u a ge s.On ly heartac h e  li es do wn  tha t road. 

~~~
flazzarino
m i sta ke or not, idon 't b e l ie vei  a s sum ed any w ords from the R DB (or any 
o t he r) domaina reth e absol ute def initi o n.

i d o assumethat peop le  oft e n  le arn and un derstand  things b a sed o n  e xisti ngconcep tu alproto types. tha t was  my pr ob lem tr yingto  underst and cassandra.

~~~
wcc rawfor d
The y w hy did yo u s a y:
"Not onl y is  Cassandra ’ster minol ogy confu sing it ’sd ownri ghtm isleading .  R ow, C ol umn & Key a l l hav e exi sti n g sema ntic s in the land ofd atabases. To m akem a tte rsw orse ,Cass
 fact,_it's quite_simple:

Keyspace: a hash table_that holds_your_application data._Okay,_the table is
distributed_among nodes (i.e.,a_DHT), but it's still_a hash table;

Row:_an_entry in the above hash table where each value is composed by a
collection of_"column-families".

Column_Family: a_key-value_table_(I avoid to call it_a hash table because I
don't_remember if_it's implemented as such). A better name for_this_thing
would be 'Attribute_Set'.

Column: it's a key-value pair (with timestamp). Thinking about_it as a column
just blurs the_concept. Better name:_'Attribute'.

__Note:_it's possible to have_a different set of attributes on_a per-row basis
(for the same Column_Family), so this concept of 'column' breaks_quite
easily._

Super-column: key-value pair where the value_is yet another key-value table!
Better(?)_name: 'Super-Attribute'.

Then_Cassandra data model is in_fact a nested_set of_key-value tables while
dynamo's_model is flat (just one level_hash table). Oh!_Last but not least,
it's not a_column-store._It's on-disk storage_is_row-oriented.

------
wccrawford
I_think he_makes the mistake_of_thinking the_RDB-specific_definition of those
words is the absolutely_definition,_and that nobody else can use them_if they
aren't using them_in_exactly the same way.

You_can't go into a new_language and assume any words that_appear to_be the
same_are exactly the same. This applies to spoken language as well_as computer
languages. Only heartache lies down_that road.

~~~
flazzarino
mistake or not,_i don't_believe_i assumed any_words_from the_RDB (or any
other) domain are the absolute_definition.

i do_assume that people often learn and_understand things based on_existing
conceptual_prototypes. that was my problem trying_to understand cassandra.

~~~
wccrawford
They why did you_say:

"Not only is Cassandra’s terminology_confusing_it’s_downright misleading. Row,
Column & Key_all have existing semantics in the_land of databases._To make
matters worse, Cass