A Quick Look At
Bryan Williams
No SQL
History
Created at Facebook in 2007
Open Sourced in 2008
Currently version 0.6.6
Version 0.7 in Beta 3
CAP Theorem
Consistency
Availability
Partition Tolerance
Scaling
Vertical
More RAM
Faster CPU
Faster HD
Horizontal
More Servers
Shared Load
Features
Decentralized (peer to peer)
Elastic
Shared Nothing Architecture
Tuneable Consistency
Always Writeable
Optimized ...
Influences
BigTable
column family data model
High Throughput Writes
Dynamo
Hight availabilty
Scalability
Eventual Consiste...
Data Model
Cluster
Keyspace
Column Families
Super Columns
Columns
Cassandra’s CLI
(Command Line Interface)
Secondary Indexes
Use another column family with reverse
lookup
Specify Metadata on the Column Family
and set the index na...
Writes
Commit Logs
Memtable
SSTable
Hinted Handoff
Bloom Filter
Tombstone
Partitioning
Random Partitioner
Order Preserving Partitioner
Collating Order Preserving Partitioner
Byte Order Partitioner
Snitches
Simple Snitch
Property File Snitch
Column Sorting
AsciiType
BytesType
LexicalUUIDType
LongType
IntegerType
TimeUUIDType
UTF8Type
Custom
Replication Factor
Set per keyspace
Specified in servers config file
Indicates how many nodes you want to
store a value in...
Consistency Level
Set per query
Specified by the client
Indicates how many nodes the client has
decided must respond for a...
Write Consistency
Levels
Zero: No response required
Any: 1st response from any node
One: 1st response (counting Hints)
quo...
Read Consistency
Levels
One: The first response is taken
Quorum: N/2 + 1 replicas are required
to respond
All: All replica...
Gossiper
Protocol used for intra-ring
communication
Runs every second on a timer
Used by hinted-handoff
Anti-Entropy
Replica synchronization mechanism
Ensures data on different nodes are up
to date
merkle trees
Happens after e...
Read Repair
When a read operation found
inconsistent data in different nodes
Timestamp for all replicas are checked
all re...
Replication
Strategies
Simple Strategy
Old Network Topology Strategy
Network Topology Strategy
Java Client
Options
Thrift : http://incubator.apache.org/thrift
Avro : http://avro.apache.org
Hector : https://github.com/...
Cassandra: The Definitive Guide
	
  Author:	
  Eben	
  Hewitt
	
  Publisher:	
  Oreilly
	
  Release:	
  Late	
  November
Thanks For Coming
Bryan Williams
Email : Bwilliams@integrallis.com
Twitter : @BryWilliams
LINKS
http://cassandra.apache.or...
A Quick Look At Cassandra
A Quick Look At Cassandra
A Quick Look At Cassandra
A Quick Look At Cassandra
A Quick Look At Cassandra
Upcoming SlideShare
Loading in …5
×

A Quick Look At Cassandra

1,487 views
1,425 views

Published on

This from a presentation I did at the Phoenix Java User Group on 11/10/2010.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,487
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

A Quick Look At Cassandra

  1. 1. A Quick Look At Bryan Williams
  2. 2. No SQL
  3. 3. History Created at Facebook in 2007 Open Sourced in 2008 Currently version 0.6.6 Version 0.7 in Beta 3
  4. 4. CAP Theorem Consistency Availability Partition Tolerance
  5. 5. Scaling Vertical More RAM Faster CPU Faster HD Horizontal More Servers Shared Load
  6. 6. Features Decentralized (peer to peer) Elastic Shared Nothing Architecture Tuneable Consistency Always Writeable Optimized for excellent throughput on writes
  7. 7. Influences BigTable column family data model High Throughput Writes Dynamo Hight availabilty Scalability Eventual Consistency (Tuneable)
  8. 8. Data Model Cluster Keyspace Column Families Super Columns Columns
  9. 9. Cassandra’s CLI (Command Line Interface)
  10. 10. Secondary Indexes Use another column family with reverse lookup Specify Metadata on the Column Family and set the index name and type Support coming in 0.7
  11. 11. Writes Commit Logs Memtable SSTable Hinted Handoff Bloom Filter Tombstone
  12. 12. Partitioning Random Partitioner Order Preserving Partitioner Collating Order Preserving Partitioner Byte Order Partitioner
  13. 13. Snitches Simple Snitch Property File Snitch
  14. 14. Column Sorting AsciiType BytesType LexicalUUIDType LongType IntegerType TimeUUIDType UTF8Type Custom
  15. 15. Replication Factor Set per keyspace Specified in servers config file Indicates how many nodes you want to store a value in on every write
  16. 16. Consistency Level Set per query Specified by the client Indicates how many nodes the client has decided must respond for a successful read/write Based on replication factor, not on the number of nodes in the system
  17. 17. Write Consistency Levels Zero: No response required Any: 1st response from any node One: 1st response (counting Hints) quorum: n/2 + 1 All: All replicas must respond
  18. 18. Read Consistency Levels One: The first response is taken Quorum: N/2 + 1 replicas are required to respond All: All replicas are required to respond
  19. 19. Gossiper Protocol used for intra-ring communication Runs every second on a timer Used by hinted-handoff
  20. 20. Anti-Entropy Replica synchronization mechanism Ensures data on different nodes are up to date merkle trees Happens after each update
  21. 21. Read Repair When a read operation found inconsistent data in different nodes Timestamp for all replicas are checked all replicas are updated based on most recent value Weak vs Strong consistency entails whether Read Repair happens before or after returning results
  22. 22. Replication Strategies Simple Strategy Old Network Topology Strategy Network Topology Strategy
  23. 23. Java Client Options Thrift : http://incubator.apache.org/thrift Avro : http://avro.apache.org Hector : https://github.com/rantav/hector Pelops : http://code.google.com/p/pelops Kundera : http://code.google.com/p/kundera More : http://wiki.apache.org/cassandra/ClientOptions
  24. 24. Cassandra: The Definitive Guide  Author:  Eben  Hewitt  Publisher:  Oreilly  Release:  Late  November
  25. 25. Thanks For Coming Bryan Williams Email : Bwilliams@integrallis.com Twitter : @BryWilliams LINKS http://cassandra.apache.org http://wiki.apache.org https://github.com/ericflo/twissandra

×