SlideShare a Scribd company logo
1 of 13
BetterCloud:
Leveraging
Cassandra
David Hardwick
CTO
Amit Khare
NoSQL Architect
BetterCloud
BACKGROUND
Our products and expertise help
customers and partners in all
phases of the transition to the
cloud.
© 2015 BetterCloud, Inc. All Rights Reserved
Venture Backed Startup
Since the company’s founding in 2011, BetterCloud has raised
capital from some of the leading enterprise technology VC firms.
Powering Cloud IT
BetterCloud provides critical insights,
automated management, and intelligent
data security for cloud office platforms. By
leveraging open APIs, BetterCloud securely
connects with your data at its source,
providing maximum control without
requiring any cumbersome setup.
BetterCloud
GLOBAL REACH
BetterCloud serves thousands of
organizations worldwide and has
a broader reach than any other
vendor in the space.
50K
organizations
30M
end users
133
countries
© 2015 BetterCloud, Inc. All Rights Reserved
BetterCloud
WE ARE HIRING
Devs
Java / C#
© 2015 BetterCloud, Inc. All Rights Reserved
Leads
Java / C#
DevOps
Demo
BetterCloud Need for Cassandra
© 2015 BetterCloud, Inc. All Rights Reserved
Why Cassandra?
➔ Started with Google App Engine Datastore
➔ Now ~ 90 TB’s of data and growing 100GB per day
➔ Currently, BetterCloud serves 2 billion ops per day (75% reads)
➔ Costs are mounting, looking for a more economic solution
➔ Need linear scalability with no compromise on performance
➔ Need multi-zone, multi-region distribution
➔ Open-Source Apache Cassandra - recommended by AppScale
Training for the Team on Apache Cassandra
➔ Use of online videos, documentation, weekly training ~1hr per week per developer
Moving from RDBMS Data Modeling concepts to Cassandra Data Model
➔ Developers adding indexes directly on to columns
➔ Adding where clauses on values that are not indexed
➔ Determining the Primary keys for multi-tenant
BetterCloud Ramping Up
© 2015 BetterCloud, Inc. All Rights Reserved
BetterCloud Searching for Effective Data Retrieval
© 2015 BetterCloud, Inc. All Rights Reserved
Indexing table - write the same data to multiple for optimal reads
➔ Denormalized data writes
➔ Back reference by Primary Key
Secondary Indexes
➔ When to use - equality and only one partition
➔ With boolean columns (storing only false) to reduce writes
Ad hoc Querying/Indexing
➔ Need for sorting and filtering on columns, which is a challenge in Cassandra.
➔ Performing proof of concepts on pure open source options
◆ Stratio Cassandra (Lucene)
◆ Stargate TupleJump (Lucene)
◆ In-house custom indexing (Cassandra -> Kafka -> ElasticSearch)
Test Driven Development - Integration Tests on Data Services Layer
➔ Continuously brainstorming on Data Model helped us to improve the Data Model immensely
➔ Your model will change, prepare for change with TDD!
Online Training and Documentation
➔ These materials are excellent, read them all...literally
Consulting with Datastax
➔ Helped us to move further and faster using Cassandra, helps to read all the documentation to setup your
questions, then meet with them. Have your datamodel ready.
Multi-Tenant Lessons
➔ Know your metrics - Track reads and writes by tenant and columnfamily!
◆ Add the tenant id to your partition key
Maturity of C# Driver
➔ prepare() and bind() statement emits an object instead of an interface
BetterCloud Challenges, Learnings, & Facts
© 2015 BetterCloud, Inc. All Rights Reserved
BetterCloud User Table
© 2015 BetterCloud, Inc. All Rights Reserved
CREATE TABLE user (
tenant_id uuid,
cluster_key text,
user_id uuid,
user_type text,
display_name text,
first_name text,
last_name text,
job_title text,
….
PRIMARY KEY(tenant_id,
cluster_key)
) with compaction = {'class' :
'LeveledCompactionStrategy'};
CREATE INDEX user_user_id on user(user_id);
CREATE INDEX user_is_enabled on user(is_enabled);
CREATE INDEX user_is_external on user(is_external);
CREATE INDEX user_is_globlal_administrator_role ON user
(is_global_administrator_role);
CREATE INDEX user_type_and_distribution_group_flag ON
user (type_and_distribution_group_flag);
And that’s all I have to say about that (today).
Questions? Email me:
amit.khare@bettercloud.com | www.linkedin.com/in/adkhare
Appendix
BetterCloud User Table
© 2015 BetterCloud, Inc. All Rights Reserved
CREATE TABLE group (
tenant_id uuid,
cluster_key text,
group_id uuid,
display_name text,
description text,
is_email_enabled boolean,
email_address text,
email_address_nickname text,
is_dirsync_enabled boolean,
last_dirsync_datetime timestamp,
is_security_enabled boolean,
last_updated_datetime timestamp,
is_external boolean,
total_external_email_contact_count int,
total_external_user_count int,
PRIMARY KEY(tenant_id, cluster_key)
) with compaction = {'class' : 'LeveledCompactionStrategy'};
CREATE INDEX group_group_id on group(group_id);
CREATE INDEX group_is_email_enabled on
group(is_email_enabled);
CREATE INDEX group_is_security_enabled on
group(is_security_enabled);
CREATE INDEX group_is_external on group(is_external);

More Related Content

What's hot

DataStax Training – Everything you need to become a Cassandra Rockstar
DataStax Training – Everything you need to become a Cassandra RockstarDataStax Training – Everything you need to become a Cassandra Rockstar
DataStax Training – Everything you need to become a Cassandra RockstarDataStax
 
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...DataStax
 
Azure Cosmos DB Pricing 101 Infographic
Azure Cosmos DB Pricing 101 InfographicAzure Cosmos DB Pricing 101 Infographic
Azure Cosmos DB Pricing 101 InfographicNicholas Vossburg
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual MachinesÖnder Değer
 
Google Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | EdurekaGoogle Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | EdurekaEdureka!
 
Cloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data Hub
Cloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data HubCloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data Hub
Cloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data HubCloudera, Inc.
 
(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...
(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...
(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...Amazon Web Services
 
TU Delft Presentation - Cloud & Serverless
TU Delft Presentation - Cloud & ServerlessTU Delft Presentation - Cloud & Serverless
TU Delft Presentation - Cloud & ServerlessSander Knape
 
Talk on windows azure
Talk on windows azureTalk on windows azure
Talk on windows azureVidya Agarwal
 
AWS for the Data Professional
AWS for the Data ProfessionalAWS for the Data Professional
AWS for the Data ProfessionalLynn Langit
 
Cloud computing options
Cloud computing optionsCloud computing options
Cloud computing optionsbotsplash.com
 
Microsoft Azure Veri Servisleri
Microsoft Azure Veri ServisleriMicrosoft Azure Veri Servisleri
Microsoft Azure Veri ServisleriÖnder Değer
 
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...Windows Developer
 
RavenDB - Indexes Deep Dive
RavenDB - Indexes Deep DiveRavenDB - Indexes Deep Dive
RavenDB - Indexes Deep DiveAlonso Robles
 
Get better database analytics performance at a lower cost with Dell EMC Power...
Get better database analytics performance at a lower cost with Dell EMC Power...Get better database analytics performance at a lower cost with Dell EMC Power...
Get better database analytics performance at a lower cost with Dell EMC Power...Principled Technologies
 
Optimizing Storage for Big Data Workloads
Optimizing Storage for Big Data WorkloadsOptimizing Storage for Big Data Workloads
Optimizing Storage for Big Data WorkloadsAmazon Web Services
 
Cloudian_Cassandra Summit 2012
Cloudian_Cassandra Summit 2012Cloudian_Cassandra Summit 2012
Cloudian_Cassandra Summit 2012CLOUDIAN KK
 

What's hot (20)

DataStax Training – Everything you need to become a Cassandra Rockstar
DataStax Training – Everything you need to become a Cassandra RockstarDataStax Training – Everything you need to become a Cassandra Rockstar
DataStax Training – Everything you need to become a Cassandra Rockstar
 
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
 
Azure Cosmos DB Pricing 101 Infographic
Azure Cosmos DB Pricing 101 InfographicAzure Cosmos DB Pricing 101 Infographic
Azure Cosmos DB Pricing 101 Infographic
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
Google Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | EdurekaGoogle Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | Edureka
 
Cloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data Hub
Cloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data HubCloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data Hub
Cloudera Federal Forum 2014: Cloud Deployment for the Enterprise Data Hub
 
(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...
(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...
(BAC310) Building an Enterprise-Class Backup and Archive Storage Solution Usi...
 
TU Delft Presentation - Cloud & Serverless
TU Delft Presentation - Cloud & ServerlessTU Delft Presentation - Cloud & Serverless
TU Delft Presentation - Cloud & Serverless
 
Talk on windows azure
Talk on windows azureTalk on windows azure
Talk on windows azure
 
AWS for the Data Professional
AWS for the Data ProfessionalAWS for the Data Professional
AWS for the Data Professional
 
Cloud computing options
Cloud computing optionsCloud computing options
Cloud computing options
 
Microsoft Azure Veri Servisleri
Microsoft Azure Veri ServisleriMicrosoft Azure Veri Servisleri
Microsoft Azure Veri Servisleri
 
CQRS is not Event Sourcing
CQRS is not Event SourcingCQRS is not Event Sourcing
CQRS is not Event Sourcing
 
Cloud - Fundamentals
Cloud - FundamentalsCloud - Fundamentals
Cloud - Fundamentals
 
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
 
RavenDB - Indexes Deep Dive
RavenDB - Indexes Deep DiveRavenDB - Indexes Deep Dive
RavenDB - Indexes Deep Dive
 
Get better database analytics performance at a lower cost with Dell EMC Power...
Get better database analytics performance at a lower cost with Dell EMC Power...Get better database analytics performance at a lower cost with Dell EMC Power...
Get better database analytics performance at a lower cost with Dell EMC Power...
 
Apache Ignite
Apache IgniteApache Ignite
Apache Ignite
 
Optimizing Storage for Big Data Workloads
Optimizing Storage for Big Data WorkloadsOptimizing Storage for Big Data Workloads
Optimizing Storage for Big Data Workloads
 
Cloudian_Cassandra Summit 2012
Cloudian_Cassandra Summit 2012Cloudian_Cassandra Summit 2012
Cloudian_Cassandra Summit 2012
 

Similar to Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra

Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...Vlad Mihnea
 
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...ssuser01a66e
 
Cloud-Native Machine Learning: Emerging Trends and the Road Ahead
Cloud-Native Machine Learning: Emerging Trends and the Road AheadCloud-Native Machine Learning: Emerging Trends and the Road Ahead
Cloud-Native Machine Learning: Emerging Trends and the Road AheadDataWorks Summit
 
Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...
Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...
Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...IDERA Software
 
Azure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreAzure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreDataStax Academy
 
PartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionPartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionTimothy Spann
 
Optimize your cloud strategy for machine learning and analytics
Optimize your cloud strategy for machine learning and analyticsOptimize your cloud strategy for machine learning and analytics
Optimize your cloud strategy for machine learning and analyticsCloudera, Inc.
 
Challenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS MeetupChallenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS MeetupAndrei Savu
 
Edge to AI: Analytics from Edge to Cloud with Efficient Movement of Machine ...
Edge to AI:  Analytics from Edge to Cloud with Efficient Movement of Machine ...Edge to AI:  Analytics from Edge to Cloud with Efficient Movement of Machine ...
Edge to AI: Analytics from Edge to Cloud with Efficient Movement of Machine ...Timothy Spann
 
Higher Quality Development, Faster Release Cycles
Higher Quality Development, Faster Release CyclesHigher Quality Development, Faster Release Cycles
Higher Quality Development, Faster Release CyclesRightScale
 
Big Data Adavnced Analytics on Microsoft Azure
Big Data Adavnced Analytics on Microsoft AzureBig Data Adavnced Analytics on Microsoft Azure
Big Data Adavnced Analytics on Microsoft AzureMark Tabladillo
 
NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...
NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...
NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...Timothy McAliley
 
Performance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationPerformance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationRamkumar Nottath
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010Ethos Technologies
 
Big Data on Azure Tutorial
Big Data on Azure TutorialBig Data on Azure Tutorial
Big Data on Azure Tutorialrustd
 
Accelerate Design and Development of Data Projects Using AWS
Accelerate Design and Development of Data Projects Using AWSAccelerate Design and Development of Data Projects Using AWS
Accelerate Design and Development of Data Projects Using AWSDelphix
 
CirrusDB Offerings
CirrusDB OfferingsCirrusDB Offerings
CirrusDB OfferingsAshok Sami
 
DBT ELT approach for Advanced Analytics.pptx
DBT ELT approach for Advanced Analytics.pptxDBT ELT approach for Advanced Analytics.pptx
DBT ELT approach for Advanced Analytics.pptxHong Ong
 
2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with AzureMarco Parenzan
 

Similar to Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra (20)

Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
 
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
MSFT MAIW Data Mod - Session 1 Deck_Why Migrate your databases to Azure_Sept ...
 
Cloud-Native Machine Learning: Emerging Trends and the Road Ahead
Cloud-Native Machine Learning: Emerging Trends and the Road AheadCloud-Native Machine Learning: Emerging Trends and the Road Ahead
Cloud-Native Machine Learning: Emerging Trends and the Road Ahead
 
Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...
Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...
Geek Sync | Linux, Containers, and SQL Server—Get Ready for Big Data Clusters...
 
DevOps lagos meetup
DevOps lagos meetupDevOps lagos meetup
DevOps lagos meetup
 
Azure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreAzure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User Store
 
PartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionPartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC Solution
 
Optimize your cloud strategy for machine learning and analytics
Optimize your cloud strategy for machine learning and analyticsOptimize your cloud strategy for machine learning and analytics
Optimize your cloud strategy for machine learning and analytics
 
Challenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS MeetupChallenges for running Hadoop on AWS - AdvancedAWS Meetup
Challenges for running Hadoop on AWS - AdvancedAWS Meetup
 
Edge to AI: Analytics from Edge to Cloud with Efficient Movement of Machine ...
Edge to AI:  Analytics from Edge to Cloud with Efficient Movement of Machine ...Edge to AI:  Analytics from Edge to Cloud with Efficient Movement of Machine ...
Edge to AI: Analytics from Edge to Cloud with Efficient Movement of Machine ...
 
Higher Quality Development, Faster Release Cycles
Higher Quality Development, Faster Release CyclesHigher Quality Development, Faster Release Cycles
Higher Quality Development, Faster Release Cycles
 
Big Data Adavnced Analytics on Microsoft Azure
Big Data Adavnced Analytics on Microsoft AzureBig Data Adavnced Analytics on Microsoft Azure
Big Data Adavnced Analytics on Microsoft Azure
 
NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...
NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...
NOVA SQL MeetUp Webinar Slides - June 5, 2020 Chris Seferlis - Azure SQL Mana...
 
Performance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationPerformance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migration
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
 
Big Data on Azure Tutorial
Big Data on Azure TutorialBig Data on Azure Tutorial
Big Data on Azure Tutorial
 
Accelerate Design and Development of Data Projects Using AWS
Accelerate Design and Development of Data Projects Using AWSAccelerate Design and Development of Data Projects Using AWS
Accelerate Design and Development of Data Projects Using AWS
 
CirrusDB Offerings
CirrusDB OfferingsCirrusDB Offerings
CirrusDB Offerings
 
DBT ELT approach for Advanced Analytics.pptx
DBT ELT approach for Advanced Analytics.pptxDBT ELT approach for Advanced Analytics.pptx
DBT ELT approach for Advanced Analytics.pptx
 
2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure
 

More from DataStax Academy

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftDataStax Academy
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseDataStax Academy
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraDataStax Academy
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsDataStax Academy
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingDataStax Academy
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackDataStax Academy
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache CassandraDataStax Academy
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready CassandraDataStax Academy
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonDataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1DataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2DataStax Academy
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First ClusterDataStax Academy
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with DseDataStax Academy
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraDataStax Academy
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseDataStax Academy
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraDataStax Academy
 

More from DataStax Academy (20)

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph Database
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
 
Coursera Cassandra Driver
Coursera Cassandra DriverCoursera Cassandra Driver
Coursera Cassandra Driver
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready Cassandra
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Bad Habits Die Hard
Bad Habits Die Hard Bad Habits Die Hard
Bad Habits Die Hard
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
 
Advanced Cassandra
Advanced CassandraAdvanced Cassandra
Advanced Cassandra
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra

  • 2. BetterCloud BACKGROUND Our products and expertise help customers and partners in all phases of the transition to the cloud. © 2015 BetterCloud, Inc. All Rights Reserved Venture Backed Startup Since the company’s founding in 2011, BetterCloud has raised capital from some of the leading enterprise technology VC firms. Powering Cloud IT BetterCloud provides critical insights, automated management, and intelligent data security for cloud office platforms. By leveraging open APIs, BetterCloud securely connects with your data at its source, providing maximum control without requiring any cumbersome setup.
  • 3. BetterCloud GLOBAL REACH BetterCloud serves thousands of organizations worldwide and has a broader reach than any other vendor in the space. 50K organizations 30M end users 133 countries © 2015 BetterCloud, Inc. All Rights Reserved
  • 4. BetterCloud WE ARE HIRING Devs Java / C# © 2015 BetterCloud, Inc. All Rights Reserved Leads Java / C# DevOps
  • 6. BetterCloud Need for Cassandra © 2015 BetterCloud, Inc. All Rights Reserved Why Cassandra? ➔ Started with Google App Engine Datastore ➔ Now ~ 90 TB’s of data and growing 100GB per day ➔ Currently, BetterCloud serves 2 billion ops per day (75% reads) ➔ Costs are mounting, looking for a more economic solution ➔ Need linear scalability with no compromise on performance ➔ Need multi-zone, multi-region distribution ➔ Open-Source Apache Cassandra - recommended by AppScale
  • 7. Training for the Team on Apache Cassandra ➔ Use of online videos, documentation, weekly training ~1hr per week per developer Moving from RDBMS Data Modeling concepts to Cassandra Data Model ➔ Developers adding indexes directly on to columns ➔ Adding where clauses on values that are not indexed ➔ Determining the Primary keys for multi-tenant BetterCloud Ramping Up © 2015 BetterCloud, Inc. All Rights Reserved
  • 8. BetterCloud Searching for Effective Data Retrieval © 2015 BetterCloud, Inc. All Rights Reserved Indexing table - write the same data to multiple for optimal reads ➔ Denormalized data writes ➔ Back reference by Primary Key Secondary Indexes ➔ When to use - equality and only one partition ➔ With boolean columns (storing only false) to reduce writes Ad hoc Querying/Indexing ➔ Need for sorting and filtering on columns, which is a challenge in Cassandra. ➔ Performing proof of concepts on pure open source options ◆ Stratio Cassandra (Lucene) ◆ Stargate TupleJump (Lucene) ◆ In-house custom indexing (Cassandra -> Kafka -> ElasticSearch)
  • 9. Test Driven Development - Integration Tests on Data Services Layer ➔ Continuously brainstorming on Data Model helped us to improve the Data Model immensely ➔ Your model will change, prepare for change with TDD! Online Training and Documentation ➔ These materials are excellent, read them all...literally Consulting with Datastax ➔ Helped us to move further and faster using Cassandra, helps to read all the documentation to setup your questions, then meet with them. Have your datamodel ready. Multi-Tenant Lessons ➔ Know your metrics - Track reads and writes by tenant and columnfamily! ◆ Add the tenant id to your partition key Maturity of C# Driver ➔ prepare() and bind() statement emits an object instead of an interface BetterCloud Challenges, Learnings, & Facts © 2015 BetterCloud, Inc. All Rights Reserved
  • 10. BetterCloud User Table © 2015 BetterCloud, Inc. All Rights Reserved CREATE TABLE user ( tenant_id uuid, cluster_key text, user_id uuid, user_type text, display_name text, first_name text, last_name text, job_title text, …. PRIMARY KEY(tenant_id, cluster_key) ) with compaction = {'class' : 'LeveledCompactionStrategy'}; CREATE INDEX user_user_id on user(user_id); CREATE INDEX user_is_enabled on user(is_enabled); CREATE INDEX user_is_external on user(is_external); CREATE INDEX user_is_globlal_administrator_role ON user (is_global_administrator_role); CREATE INDEX user_type_and_distribution_group_flag ON user (type_and_distribution_group_flag);
  • 11. And that’s all I have to say about that (today). Questions? Email me: amit.khare@bettercloud.com | www.linkedin.com/in/adkhare
  • 13. BetterCloud User Table © 2015 BetterCloud, Inc. All Rights Reserved CREATE TABLE group ( tenant_id uuid, cluster_key text, group_id uuid, display_name text, description text, is_email_enabled boolean, email_address text, email_address_nickname text, is_dirsync_enabled boolean, last_dirsync_datetime timestamp, is_security_enabled boolean, last_updated_datetime timestamp, is_external boolean, total_external_email_contact_count int, total_external_user_count int, PRIMARY KEY(tenant_id, cluster_key) ) with compaction = {'class' : 'LeveledCompactionStrategy'}; CREATE INDEX group_group_id on group(group_id); CREATE INDEX group_is_email_enabled on group(is_email_enabled); CREATE INDEX group_is_security_enabled on group(is_security_enabled); CREATE INDEX group_is_external on group(is_external);