Cassandra for craftsmen developers

Created by Felipe Fernández / @felipefzdz

About Me

Felipe Fernández

Some craftsmanship related topics

  • BDD
  • Outside-in development
  • Focus on delivery
  • Minimise waste

About the talk

  • 1. Cassandra rationale
  • 2. Cassandra internals
  • 3. Data modeling

1. Cassandra rationale

Cassandra rationale

RDBMS Approach to modern world challenges

  • Third normal form
  • Favour space over time
Cassandra rationale

ACID Properties

  • Atomicity
  • Consistency
  • Isolation
  • Durability
Cassandra rationale

Relational Data Modeling

  • Denormalisation
  • Referential integrity
  • Strong uniqueness
  • Indexes
  • Joins
  • Aggregations
Cassandra rationale

RDBMS Problems

  • Scale up
  • Sharding
  • Availability
  • Locality
Cassandra rationale

Cassandra to the rescue

  • Distributed peer to peer architecture
  • Scale out
  • Low latency
  • CAP theorem
Cassandra rationale

Right tool for the right job

  • Big data
  • Higher storage costs
  • Change mindset

2. Cassandra internals

Cassandra internals

Distribution internals

  • Data is partitioned around the ring
  • Coordinator node
  • Replication factor
  • Consistency level
Cassandra internals

Distribution internals

  • Column family
  • Keyspace
  • Node
  • Rack
  • Data center
  • Cluster
Cassandra internals

Storage internals: Write path

  • Commit log
  • Memtable
  • SSTable
  • Compaction
  • Tombstones
Cassandra internals

Storage internals: Read path

  • Timestamps
  • Read from Memtable and SSTables
  • Caches

3. Data modeling

Data modeling

Partition

  • Partition key
  • Clustering key
  • Primary key
Data modeling

Anti patterns

  • Secondary indexes
  • Join tables
  • Allow filtering
Data modeling

Conceptual Modeling

  • Entity-relationship diagrams
  • Chen notation
  • Technology agnostic
Data modeling

Logical Modeling

  • Query based approach
  • Chebotko notation
  • Mapping rules and patterns
Data modeling

Physical modeling

  • Fleshing out details
  • Optimizations
Data modeling

Mindset change

  • Data consistency
  • Transactions
  • Concurrent access

Thank you

Any questions?