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

What's hot (20)

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

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

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

More from DataStax Academy (20)

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

Recently uploaded (20)

PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 

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