• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Cassandra Prophecy
 

Cassandra Prophecy

on

  • 715 views

introduction to Apache Cassandra distributed database

introduction to Apache Cassandra distributed database

Statistics

Views

Total Views
715
Views on SlideShare
715
Embed Views
0

Actions

Likes
0
Downloads
16
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cassandra Prophecy Cassandra Prophecy Presentation Transcript

    • Cassandra Prophecy Igor Khotin E-mail: khotin@gmx.com
    • Background● 11+ years in the IT industry● 6+ years with Java● Flexible design promoter● Agile-junkie
    • highly scalable, eventually consistent,distributed, structured key-value store
    • Decentralized● P2P● No SPOF● No network bottlenecks
    • Fault Tolerant● High Availability● Replication and redundancy● Node replacement & no downtime● Multiple racks & datacenters
    • Elastic Scalability● Scales up and down● Just add or remove nodes● Linear scalability● Low maintenance cost
    • Tunable consistency● Different consistency levels● Consistency vs. latency
    • Rich Data Model● Goes beyond simple key-value● Values could be indexed● Flexible schema
    • Scale up problem
    • Sharding doesnt solve it
    • Google File System & Google BigTable
    • Amazon Dynamo
    • Cassandraby Avinash Lakshman and Prashant Malik
    • Cassandraused in Inbox Search
    • Open sourced in July 2008
    • March 2009Accepted to Apache Incubator
    • February 2010Top-Level Apache Project
    • late 2010... Cassandra abandonedMessaging moved to HBase
    • October 2011 Release 1.0
    • November 30, 2011 Release 1.0.5 (current stable)
    • Moving forward fast...
    • Brewers CAP Theorem
    • Data Model
    • Column Family
    • Column sorting● ASCII Design decision● UTF8● Bytes● Long● LexicalUUID● TimeUUID● Custom
    • Denormalization
    • Denormalization
    • Design for queries
    • Keyring
    • Keyring
    • Keyring
    • Keyring
    • Keyring
    • Keyring
    • Keyring
    • Keyring
    • Gossip
    • Optimized for writes
    • Optimized for writes ● No reads ● No seeks ● No b-trees ● Fast ● Row - atomic
    • Tunable Consistency
    • Tombstone
    • Low Level Clients● Thrift ● IDL and binary communication protocol ● Multiple languages support ● Really sucks● Avro ● Better than Thrift, but sucks anyway
    • High Level Clients● Feature-rich ● Connection pool ● Load-balancing ● Fail-over● Hector, Pelops... (Java)● Pycassa... (Python)● Fauna (Ruby)● ...
    • CQL● SQL for NoSQL● CREATE KEYSPACE, CREATE COLUMNFAMILY, CREATE INDEX● USE, SELECT, UPDATE, DELETE... SELECT population FROM city WHERE KEY = Paris USING CONSISTENCY QUORUM
    • Understand your problem
    • Understand your problemFind appropriate solution
    • Dont let default solutions to be imposed on you
    • Hard to choose?
    • Leaders will emerge
    • Resources● http://cassandra.apache.org● Dynamo: Amazon’s Highly Available Key-value Store● Cassandra - A Decentralized Structured Storage System● Bigtable: A Distributed Storage System for Structured Data
    • ContactsE-mail: khotin@gmx.comBlog: www.ikhotin.comTwitter: chaostarter
    • Questions?