Cassandra and Sigmod contest Cloud computing group Haiping Wang 2009-12-19
Cassandra and Sigmod contest Cloud computing group Haiping Wang 2009-12-19
Outline ● Cassandra · Cassandra overview · Data model Architecture Read and write ● Sigmod contest2009 ○ Sigmod contest2010
Outline ⚫Cassandra • Cassandra overview • Data model • Architecture • Read and write ⚫Sigmod contest 2009 ⚫Sigmod contest 2010
Cassandra overview Highly scalable, distributed Eventually consistent Structured key-value store Dynamo+ bigtable P2P Random reads and random writes >Java
Cassandra overview ➢Highly scalable, distributed ➢Eventually consistent ➢Structured key-value store ➢Dynamo + bigtable ➢ P2P ➢Random reads and random writes ➢Java
Data model Columns are added and modified Column Family1 Name: MailList Type d KEY dynamically Value:Va VolUE.<Dd2 TimeStamp: t1 TimeStamp: t2 Times TimeStamp: t4 mnFamily2 Name: WordList4ne: Super Sort:Time Column Families Name: aloha Name: dude are declare SuperColumns are added and modified dynamicall and modified dynamically Column Family3 System Ivne: Super ort: Name Name: hint1 ame: hint Column list <Column List <Column List <Column List
Data Model KEY ColumnFamily1 Name : MailList Type : Simple Sort : Name Name : tid1 Value : TimeStamp : t1 Name : tid2 Value : TimeStamp : t2 Name : tid3 Value : TimeStamp : t3 Name : tid4 Value : TimeStamp : t4 ColumnFamily2 Name : WordList Type : Super Sort : Time Name : aloha ColumnFamily3 Name : System Type : Super Sort : Name Name : hint1 Name : hint2 Name : hint3 Name : hint4 C1 V1 T1 C2 V2 T2 C3 V3 T3 C4 V4 T4 Name : dude C2 V2 T2 C6 V6 T6 Column Families are declared upfront Columns are added and modified dynamically SuperColumns are added and modified dynamically Columns are added and modified dynamically
Cassandra Architecture Cassandra AP Tools B面 Storage layer Partitioner Replicator 量面量面面面a面面BBB面面 Failure Detector Cluster Membershi 面B面面面面m Messaging Layer m面国a面面面面面面
Cassandra Architecture
Cassandra apl Data structures Exceptions Service api Consistencylevel (4) Retrieval methods(5) Range query: returns matching keys(1) Modification methods(3) Others
Cassandra API • Data structures • Exceptions • Service API • ConsistencyLevel(4) • Retrieval methods(5) • Range query: returns matching keys(1) • Modification methods(3) • Others
Cassandra commands List of all clI commands Same as hel connect / Connect to cassandras thrift service describe keyspace Describe keyspace exit Exit cli help Display this help quit Exit cli show config file Display contents of config file show cluster name Display cluster name show keyspace Show list of keyspace show version show server version get . cf>[ . Set a column. cassandra
Cassandra commands
Partitioning and replication(1) · Consistent hashing DHT · Balance Monotonicity rea Load Virtual nodes Coordinator Preference list
Partitioning and replication(1) • Consistent hashing • DHT • Balance • Monotonicity • Spread • Load • Virtual nodes • Coordinator • Preference list
Partitioning and replication(2) 110 h(key 1) A N=3 h(key2) B
1 0 1/2 F E D C B A N=3 h(key2) h(key1) 9 Partitioning and replication(2)
Data versioning Always writeable ulitple versions puto return before all replicas geto many versions Vector clocks Reconciliation during reads by clients
Data Versioning • Always writeable • Mulitple versions – put() return before all replicas – get() many versions • Vector clocks • Reconciliation during reads by clients