Application Development with Apache
       Cassandra as a Service



         By Deependra Ariyadewa
WSO2
•   Founded in 2005 by acknowledged leaders in XML, Web Services Technologies &
    Standards and Open Source. Primary contributors to Apache Web Services projects
    started in 2001


•   Producing entire middleware platform 100% open source under Apache license


•   Business model is to sell comprehensive support & maintenance for our products


•   Technology OEM’d by IBM, Progress, Software AG, Alcatel, EMC,
•   and CA


•   Venture funded by Intel Capital and Quest Software.


•   Global corporation with offices in Palo Alto, USA Portsmouth, UK & Colombo, Sri Lanka


•   150+ employees and growing.
Attendees will learn
•   When to select a NoSQL column store database
•   The advantages of WSO2 Column Store Service – (CSS),
    particularly in a cloud deployment
•   How to create and manage a Cassandra keyspace using
    WSO2 CSS
•   How to develop and deploy an application with the WSO2
    CSS
Introduction to Data Problem
•   Rapid growth of published data.
•   Managing large amounts of data is difficult
    Difficulties include
     o   Capture
     o   Storage
     o   Search
     o   Sharing
     o   Analytics
     o   Visualization
The Well Known Data Solution
•   Relational Database Management Systems -
    RDBMS
    Oracle, DB2, Postgress, MySQL
•   Object-oriented Databases
    VelocityDB, Wakanda, Zope
•   NoSQL Databases
    Cassandra, CouchDB, MongoDB
Limitations in Relational Model
•   Relational model should maintain ACID
    properties.

•   Hard to scale up keeping Consistency and
    Isolation due to Node Failures and distributed
    locking.


•   less scalable SQL.
    o   Distributed JOIN
An alternative to ACID is BASE
•   Basic Availability


•   Soft-state


•   Eventual consistency
CAP Theorem
•   In distributed systems it is only possible to have two
    properties out of the properties Consistency, Availability and
    Partition Tolerance at any given time.
NoSQL Data Solutions

•   Tunable Consistency
•   Fault Tolerant
•   Decentralized
•   Runs on Cheap Commodity Hardware
•   Flexible Data Models
NoSQL Database Types
•      Wide Column Store / Column Families
        o     Cassandra, HBase
•      Document Store
        o     MongoDB, CouchDB
•      Key Value / Tuple Store
        o     Riak, Redis
•      Graph Databases
        o     Neo4J, FlockDB
source:http://nosql-database.org/
When to Select NoSQL Column Store
•   Structured Data


•   Highly Scalable Systems with Primary Key Retrieval


•   Highly scalable systems with WHERE clause Support
Apache Cassandra Features
•    Fault Tolerant
     Data is automatically replicated to multiple node / across multiple data centers for
     fault tolerance.

•    Decentralized
    Every node in the cluster is identical.
•    Rich Data Model
    support key/value systems and column families.
•    Elastic
     Read and write throughput both increase linearly as new machines are added,
     with no downtime or interruption to applications.
WSO2 Data Solutions
•   Data Service Server - DSS


•   Relational Storage Service - RSS


•   Column Store Service - CSS


•   File System as a service ( FSaaS) - HDFS
Cassandra Deployment Diagram
WSO2 Column Store




            •   User requests are authenticated and

            •
                authorized with Carbon User manager.
                Cassandra service listens on port 9160
                for thrift calls.
            •   Port 7000 uses as the default gossip
                channel.
WSO2 Stratos
WSO2 Column Store as a Service (CSS)
How to Install Cassandra feature
•   Install Cassandra feature from p2 repository.
Expand the Cassandra Cluster
•   Decide on a Key partitioner


•
        partitioner: org.apache.cassandra.dht.RandomPartitioner

    Set Seeds


•
        - seeds: "192.168.0.102", "192.168.0.103"

    Set Listen address to an IP


•
        listen_address: 192.168.0.10

    Plug WSO2 authentication / authorization system.
    authenticator: org.wso2.carbon.cassandra.server.CarbonCassandraAuthenticator
    authority: org.wso2.carbon.cassandra.server.CarbonCassandraAuthority
Manage Keyspace / Column Families
Manage Keyspace / Column Families
Manage Keyspace / Column Families
Write Clients with Hector ( Java API )
Write Clients with Hector
Q&A
Selected Customers


 https://ail.google.com/mail/u/0/?ui=2&ik=ad9ae58f41&vi
 ew=att&th=1331a70983344a32&attid=0.1&disp=thd&re
 alattid=f_gtxto6mk0&zw
WSO2 engagement model
• QuickStart -
• Development
  Support
• Development
  Services
• Production
  Support
• Turnkey Solutions
  • WSO2 Mobile Services Solution
  • WSO2 FIX Gateway Solution
  • WSO2 SAP Gateway Solution

Application Development with Apache Cassandra as a Service

  • 1.
    Application Development withApache Cassandra as a Service By Deependra Ariyadewa
  • 2.
    WSO2 • Founded in 2005 by acknowledged leaders in XML, Web Services Technologies & Standards and Open Source. Primary contributors to Apache Web Services projects started in 2001 • Producing entire middleware platform 100% open source under Apache license • Business model is to sell comprehensive support & maintenance for our products • Technology OEM’d by IBM, Progress, Software AG, Alcatel, EMC, • and CA • Venture funded by Intel Capital and Quest Software. • Global corporation with offices in Palo Alto, USA Portsmouth, UK & Colombo, Sri Lanka • 150+ employees and growing.
  • 3.
    Attendees will learn • When to select a NoSQL column store database • The advantages of WSO2 Column Store Service – (CSS), particularly in a cloud deployment • How to create and manage a Cassandra keyspace using WSO2 CSS • How to develop and deploy an application with the WSO2 CSS
  • 4.
    Introduction to DataProblem • Rapid growth of published data. • Managing large amounts of data is difficult Difficulties include o Capture o Storage o Search o Sharing o Analytics o Visualization
  • 5.
    The Well KnownData Solution • Relational Database Management Systems - RDBMS Oracle, DB2, Postgress, MySQL • Object-oriented Databases VelocityDB, Wakanda, Zope • NoSQL Databases Cassandra, CouchDB, MongoDB
  • 6.
    Limitations in RelationalModel • Relational model should maintain ACID properties. • Hard to scale up keeping Consistency and Isolation due to Node Failures and distributed locking. • less scalable SQL. o Distributed JOIN
  • 7.
    An alternative toACID is BASE • Basic Availability • Soft-state • Eventual consistency
  • 8.
    CAP Theorem • In distributed systems it is only possible to have two properties out of the properties Consistency, Availability and Partition Tolerance at any given time.
  • 9.
    NoSQL Data Solutions • Tunable Consistency • Fault Tolerant • Decentralized • Runs on Cheap Commodity Hardware • Flexible Data Models
  • 10.
    NoSQL Database Types • Wide Column Store / Column Families o Cassandra, HBase • Document Store o MongoDB, CouchDB • Key Value / Tuple Store o Riak, Redis • Graph Databases o Neo4J, FlockDB source:http://nosql-database.org/
  • 11.
    When to SelectNoSQL Column Store • Structured Data • Highly Scalable Systems with Primary Key Retrieval • Highly scalable systems with WHERE clause Support
  • 12.
    Apache Cassandra Features • Fault Tolerant Data is automatically replicated to multiple node / across multiple data centers for fault tolerance. • Decentralized Every node in the cluster is identical. • Rich Data Model support key/value systems and column families. • Elastic Read and write throughput both increase linearly as new machines are added, with no downtime or interruption to applications.
  • 13.
    WSO2 Data Solutions • Data Service Server - DSS • Relational Storage Service - RSS • Column Store Service - CSS • File System as a service ( FSaaS) - HDFS
  • 14.
  • 15.
    WSO2 Column Store • User requests are authenticated and • authorized with Carbon User manager. Cassandra service listens on port 9160 for thrift calls. • Port 7000 uses as the default gossip channel.
  • 16.
  • 17.
    WSO2 Column Storeas a Service (CSS)
  • 18.
    How to InstallCassandra feature • Install Cassandra feature from p2 repository.
  • 19.
    Expand the CassandraCluster • Decide on a Key partitioner • partitioner: org.apache.cassandra.dht.RandomPartitioner Set Seeds • - seeds: "192.168.0.102", "192.168.0.103" Set Listen address to an IP • listen_address: 192.168.0.10 Plug WSO2 authentication / authorization system. authenticator: org.wso2.carbon.cassandra.server.CarbonCassandraAuthenticator authority: org.wso2.carbon.cassandra.server.CarbonCassandraAuthority
  • 20.
    Manage Keyspace /Column Families
  • 21.
    Manage Keyspace /Column Families
  • 22.
    Manage Keyspace /Column Families
  • 23.
    Write Clients withHector ( Java API )
  • 24.
  • 25.
  • 26.
  • 27.
    WSO2 engagement model •QuickStart - • Development Support • Development Services • Production Support • Turnkey Solutions • WSO2 Mobile Services Solution • WSO2 FIX Gateway Solution • WSO2 SAP Gateway Solution