SlideShare a Scribd company logo
Monacella: An Object-Relational Database
Origin Story
• need to import ad network data
• highly parallelized ETL pipeline
• hit Postgres connection limits during beta
• considered sharding, but didn't have ops experience for it
• instead decided to try Cassandra because
• we already had ops experience with it
• low maintenance
• complexity would be in app layer where we were experts
© 2015. All Rights Reserved. 2
Naive Architecture
© 2015. All Rights Reserved. 3
campaign_id:
string
account_id:
string
created_at:
timestamp
data:
string:string
/network/adwords/ad/1234
ads campaigns accounts
secondary
indexes
ad_id:
string
Sensible Architecture
© 2015. All Rights Reserved. 4
filter_name:
string
shard_id:
integer
entity_id:
string
none | active | inactive | ...
ads campaigns accounts
secondary
indexes
stored_filters
...
facet_id:
string
...
Oops! I Made an Object-Relational Database
• at first didn't know what I had, but then slowly realized:
• rows are objects with types/classes
• objects have type-based relationships to other objects
• support for object relationships but not arbitrary joins
• who would want this?
• need horizontal scalability
• don't need all the features of a relational database...
• ...but do need object relationships
© 2015. All Rights Reserved. 5
Monacella and the Future
• build out as a database with Cassandra as the datastore
• simplify data model
• stored filter optimizations
• change datastore to Dynomite over Redis or Postgres
• Doradus
• Spider does the same thing as Monacella but maybe better
• and it has an OLAP layer - something we also built!
• sharded Postgres?
© 2015. All Rights Reserved. 6
Thank you

More Related Content

PPTX
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
PDF
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
PDF
Druid + Kafka: transform your data-in-motion to analytics-in-motion | Gian Me...
PPTX
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
PDF
Scaling a backend for a big data and blockchain environment by Rafael Ríos at...
PDF
Javantura v3 - Microservice – no fluff the REAL stuff – Nakul Mishra
PDF
Machine Learning on Streaming Data using Kafka, Beam, and TensorFlow (Mikhail...
PDF
Leveraging Spark to Democratize Data for Omni-Commerce with Shafaq Abdullah
Big Data Day LA 2016/ Hadoop/ Spark/ Kafka track - Building an Event-oriented...
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
Druid + Kafka: transform your data-in-motion to analytics-in-motion | Gian Me...
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
Scaling a backend for a big data and blockchain environment by Rafael Ríos at...
Javantura v3 - Microservice – no fluff the REAL stuff – Nakul Mishra
Machine Learning on Streaming Data using Kafka, Beam, and TensorFlow (Mikhail...
Leveraging Spark to Democratize Data for Omni-Commerce with Shafaq Abdullah

What's hot (20)

PDF
Architect’s Open-Source Guide for a Data Mesh Architecture
PDF
User Focused Security at Netflix: Stethoscope
PDF
Maximize the Business Value of Machine Learning and Data Science with Kafka (...
PDF
Cloudstate - Towards Stateful Serverless
PPTX
Big Data Day LA 2016/ Use Case Driven track - Shaping the Role of Data Scienc...
PDF
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
PDF
Full Stack Reactive In Practice
PDF
dotScale 2017 Keynote: The Rise of Real Time by Neha Narkhede
PDF
INTERFACE, by apidays - Apache Cassandra now speaks developer with Stargate ...
PDF
Introducing the Hub for Data Orchestration
PDF
Redash: Open Source SQL Analytics on Data Lakes
PDF
How To Use Kafka and Druid to Tame Your Router Data (Rachel Pedreschi, Imply ...
PDF
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
PDF
Hybrid Kafka, Taking Real-time Analytics to the Business (Cody Irwin, Google ...
PDF
Streaming Data in the Cloud with Confluent and MongoDB Atlas | Robert Walters...
PDF
Auto-Train a Time-Series Forecast Model With AML + ADB
PDF
Accelerate Data Science Initiatives: Databricks & Privacera
PPTX
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
PPTX
Real time big data stream processing
PDF
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Architect’s Open-Source Guide for a Data Mesh Architecture
User Focused Security at Netflix: Stethoscope
Maximize the Business Value of Machine Learning and Data Science with Kafka (...
Cloudstate - Towards Stateful Serverless
Big Data Day LA 2016/ Use Case Driven track - Shaping the Role of Data Scienc...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
Full Stack Reactive In Practice
dotScale 2017 Keynote: The Rise of Real Time by Neha Narkhede
INTERFACE, by apidays - Apache Cassandra now speaks developer with Stargate ...
Introducing the Hub for Data Orchestration
Redash: Open Source SQL Analytics on Data Lakes
How To Use Kafka and Druid to Tame Your Router Data (Rachel Pedreschi, Imply ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hybrid Kafka, Taking Real-time Analytics to the Business (Cody Irwin, Google ...
Streaming Data in the Cloud with Confluent and MongoDB Atlas | Robert Walters...
Auto-Train a Time-Series Forecast Model With AML + ADB
Accelerate Data Science Initiatives: Databricks & Privacera
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Real time big data stream processing
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Ad

Similar to AdStage: Monacella: An Relational Object Database using Cassandra as the Datastore (20)

PDF
Oracle Week 2016 - Modern Data Architecture
PDF
DataOps barcelona - MySQL 8.0 document store: NoSQL with all the benefits of ...
PDF
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
PDF
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
PPTX
Common MongoDB Use Cases
PDF
pre-FOSDEM MySQL day, February 2018 - MySQL Document Store
PDF
Looking Inside the MySQL 8.0 Document Store
PPTX
How to Survive as a Data Architect in a Polyglot Database World
PPTX
Freeing Yourself from an RDBMS Architecture
PDF
OrientDB: Unlock the Value of Document Data Relationships
PDF
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
PDF
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
PDF
OrientDB - Perché le tue applicazioni meritano un DB Multi-Model
PDF
A NOVEL APPROACH FOR HOTEL MANAGEMENT SYSTEM USING CASSANDRA
PDF
A NOVEL APPROACH FOR HOTEL MANAGEMENT SYSTEM USING CASSANDRA
PPTX
Patterns for Persistence and Streaming in Microservice Architectures
PPT
Document Databases & RavenDB
PDF
Will Postgres Live Forever?
 
PDF
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
PDF
Slides: Relational to NoSQL Migration
Oracle Week 2016 - Modern Data Architecture
DataOps barcelona - MySQL 8.0 document store: NoSQL with all the benefits of ...
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
Common MongoDB Use Cases
pre-FOSDEM MySQL day, February 2018 - MySQL Document Store
Looking Inside the MySQL 8.0 Document Store
How to Survive as a Data Architect in a Polyglot Database World
Freeing Yourself from an RDBMS Architecture
OrientDB: Unlock the Value of Document Data Relationships
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
OrientDB - Perché le tue applicazioni meritano un DB Multi-Model
A NOVEL APPROACH FOR HOTEL MANAGEMENT SYSTEM USING CASSANDRA
A NOVEL APPROACH FOR HOTEL MANAGEMENT SYSTEM USING CASSANDRA
Patterns for Persistence and Streaming in Microservice Architectures
Document Databases & RavenDB
Will Postgres Live Forever?
 
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
Slides: Relational to NoSQL Migration
Ad

More from DataStax Academy (20)

PDF
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
PPTX
Introduction to DataStax Enterprise Graph Database
PPTX
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
PPTX
Cassandra on Docker @ Walmart Labs
PDF
Cassandra 3.0 Data Modeling
PPTX
Cassandra Adoption on Cisco UCS & Open stack
PDF
Data Modeling for Apache Cassandra
PDF
Coursera Cassandra Driver
PDF
Production Ready Cassandra
PDF
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
PPTX
Cassandra @ Sony: The good, the bad, and the ugly part 1
PPTX
Cassandra @ Sony: The good, the bad, and the ugly part 2
PDF
Standing Up Your First Cluster
PDF
Real Time Analytics with Dse
PDF
Introduction to Data Modeling with Apache Cassandra
PDF
Cassandra Core Concepts
PPTX
Enabling Search in your Cassandra Application with DataStax Enterprise
PPTX
Bad Habits Die Hard
PDF
Advanced Data Modeling with Apache Cassandra
PDF
Advanced Cassandra
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Cassandra on Docker @ Walmart Labs
Cassandra 3.0 Data Modeling
Cassandra Adoption on Cisco UCS & Open stack
Data Modeling for Apache Cassandra
Coursera Cassandra Driver
Production Ready Cassandra
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 2
Standing Up Your First Cluster
Real Time Analytics with Dse
Introduction to Data Modeling with Apache Cassandra
Cassandra Core Concepts
Enabling Search in your Cassandra Application with DataStax Enterprise
Bad Habits Die Hard
Advanced Data Modeling with Apache Cassandra
Advanced Cassandra

Recently uploaded (20)

PPTX
Machine Learning_overview_presentation.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Cloud computing and distributed systems.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Machine learning based COVID-19 study performance prediction
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
cuic standard and advanced reporting.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
Machine Learning_overview_presentation.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Spectroscopy.pptx food analysis technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
Cloud computing and distributed systems.
Spectral efficient network and resource selection model in 5G networks
Machine learning based COVID-19 study performance prediction
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The AUB Centre for AI in Media Proposal.docx
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
sap open course for s4hana steps from ECC to s4
cuic standard and advanced reporting.pdf
Network Security Unit 5.pdf for BCA BBA.

AdStage: Monacella: An Relational Object Database using Cassandra as the Datastore

  • 2. Origin Story • need to import ad network data • highly parallelized ETL pipeline • hit Postgres connection limits during beta • considered sharding, but didn't have ops experience for it • instead decided to try Cassandra because • we already had ops experience with it • low maintenance • complexity would be in app layer where we were experts © 2015. All Rights Reserved. 2
  • 3. Naive Architecture © 2015. All Rights Reserved. 3 campaign_id: string account_id: string created_at: timestamp data: string:string /network/adwords/ad/1234 ads campaigns accounts secondary indexes ad_id: string
  • 4. Sensible Architecture © 2015. All Rights Reserved. 4 filter_name: string shard_id: integer entity_id: string none | active | inactive | ... ads campaigns accounts secondary indexes stored_filters ... facet_id: string ...
  • 5. Oops! I Made an Object-Relational Database • at first didn't know what I had, but then slowly realized: • rows are objects with types/classes • objects have type-based relationships to other objects • support for object relationships but not arbitrary joins • who would want this? • need horizontal scalability • don't need all the features of a relational database... • ...but do need object relationships © 2015. All Rights Reserved. 5
  • 6. Monacella and the Future • build out as a database with Cassandra as the datastore • simplify data model • stored filter optimizations • change datastore to Dynomite over Redis or Postgres • Doradus • Spider does the same thing as Monacella but maybe better • and it has an OLAP layer - something we also built! • sharded Postgres? © 2015. All Rights Reserved. 6