cassandra read/write paths

38
Cassandra Read / Write John Sumsion from FamilySearch Utah Cassandra Meetup 13 Aug. 2015

Upload: jdsumsion

Post on 16-Apr-2017

339 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Cassandra Read/Write Paths

Cassandra  Read  /  Write  

John  Sumsion  from  FamilySearch  Utah  Cassandra  Meetup  

13  Aug.  2015  

Page 2: Cassandra Read/Write Paths

Agenda  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

•  OLTP  on  500M+  enGGes  •  Course  grain  data  model  -­‐  persons  in  pedigree  

Page 3: Cassandra Read/Write Paths

Agenda  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

Page 4: Cassandra Read/Write Paths

Rows  vs  ParGGons/Cells  

Page 5: Cassandra Read/Write Paths

Rows  vs  ParGGons/Cells  

•  Example  -­‐  User  /  Movie  raGngs  – U1:  M423:  4  stars,  “I  liked  it”,  8/20/2011  – U1:  M205:  1  stars,  “Won’t  go  again”,  7/29/2011  – U2:  M423:  3  stars,  “Movie  was  ok”,  7/1/2013  – U3:  M423:  5  stars,  “My  favorite”,  6/23/2014  

•  The  user  id  (U1)  is  the  parGGon  key  •  The  movie  id  (M423)  is  the  clustering  key  •  All  other  values  are  not  part  of  any  key  

Page 6: Cassandra Read/Write Paths

Agenda  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

Page 7: Cassandra Read/Write Paths

Kinds  of  OperaGons  

Page 8: Cassandra Read/Write Paths

Rows  vs  ParGGons/Cells  

•  Example  -­‐  User  /  Movie  raGngs  – U1  |  M423;  8/20/2011  |  4  stars,  “I  liked  it”  – U1  |  M205;  7/29/2011  |  1  stars,  “Won’t  go  again”  – U2  |  M423;  7/1/2013  |  3  stars,  “Movie  was  ok”  – U3  |  M423;  6/23/2014  |  5  stars,  “My  favorite”  

•  ParGGon  read  (all  values  for  U1)  •  Range  scan  read  (raGng  from  U1  for  M243)  •  Update  cell  (change  raGng  for  U2,  M423)  

Page 9: Cassandra Read/Write Paths

Agenda  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

Page 10: Cassandra Read/Write Paths

Datafile  View  -­‐  RDBMS  

Page 11: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 12: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 13: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 14: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 15: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 16: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 17: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 18: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 19: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  

Page 20: Cassandra Read/Write Paths

Agenda  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  -­‐  Cassandra  Writes  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

Page 21: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

Page 22: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

Page 23: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

Page 24: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

Page 25: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

Page 26: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

Page 27: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

•  Three  supported  compacGon  strategies:  1.  Size-­‐Gered  2.  Fixed-­‐size  (leveled)  3.  Date-­‐Gme  

Page 28: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  Size-­‐Tiered  (STCS)   Fixed-­‐Size  (or  Leveled,  LCS)  

Page 29: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  Size-­‐Tiered  (STCS)   Fixed-­‐Size  (or  Leveled,  LCS)  

Date-­‐Time  

Page 30: Cassandra Read/Write Paths

Datafile  View  -­‐  Cassandra  Writes  

Date-­‐Time  

Fixed-­‐Size  (or  Leveled,  LCS)  Size-­‐Tiered  (STCS)  

Page 31: Cassandra Read/Write Paths

Agenda  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  -­‐  Cassandra  Writes  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

Page 32: Cassandra Read/Write Paths

Machine  View  -­‐  RDBMS  

Many  styles,  someGmes  combined:  •  High  verGcal  scale,  many-­‐core,  R/W  •  Master  serving  R/W,  slaves  serving  R  •  Hot  standby  for  machine  failure  

Each  opGon  is  costly  to  engineer  and  build.  

Page 33: Cassandra Read/Write Paths

Machine  View  -­‐  Cassandra  

Page 34: Cassandra Read/Write Paths

Agenda  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  -­‐  Cassandra  Writes  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

Page 35: Cassandra Read/Write Paths

New  in  Cassandra  3.0.0-­‐alpha1  

CASSANDRA-­‐8099  •  New  file  format  

opGmizaGons  •  Like  run-­‐length  

encoding  for  redundant  data  

•  More  efficient  to  scan  /  read  

Page 36: Cassandra Read/Write Paths

Takeaways  

•  Think  parGGons  /  cells  not  rows  •  Think  scaier  /  gather,  not  direct  read  •  Think  scale  out  &  opGmize,  not  scale  up  

•  Core  Cassandra  read/write  paths  are  gekng  some  serious  aienGon  and  opGmizaGon  

Page 37: Cassandra Read/Write Paths

Data  Model  Ideas  

•  Data  model  ideas  for  consistency?  search  “John  Sumsion  CassandraSummit  2014”  

Page 38: Cassandra Read/Write Paths

Wrap-­‐up  

•  Rows  vs  ParGGons/Cells  •  Kinds  of  OperaGons  •  Datafile  View  -­‐  Cassandra  Writes  •  Machine  View  •  New  in  Cassandra  3.0.0-­‐alpha1  

•  John  Sumsion  •  Email:  [email protected]