Making Non-Distributed Databases, Distributed
Ioannis Papapanagiotou, PhD
Shailesh Birari
Dynomite Ecosystem
● Dynomite - Proxy layer
● Dyno - Client
● Dynomite-manager - Ecosystem orchestrator
● Dynomite-explorer - UI
● Needed a data store:
o Scalable & highly available
o High throughput, low latency
o Netflix use case is active-active
● Master-slave storage engines:
o Do not support bi-directional replication
o Cannot withstand a Monkey attack
o Cannot easily perform maintenance
Problems & Observations
What is Dynomite?
A framework that makes non-distributed data stores,
distributed. Can be used with many key-value storage
engines
Features: highly available, automatic failover, node
warmup, tunable consistency, backups/restores
Dynomite @ Netflix
● Running around 2.5 years in PROD
● 70 clusters
● ~1000 nodes used by internal microservices
● Microservices based on Java, Python,
NodeJS
Pluggable Storage Engines
RESP
● Layer on top of a non-
distributed key value data
store
○ Peer-peer, Shared
Nothing
○ Auto-Sharding
○ Multi-datacenter
○ Linear scale
○ Replication
○ Gossiping
RESP
● Each rack contains one
copy of data, partitioned
across multiple nodes in
that rack
● Multiple Racks == Higher
Availability (HA)
Topology
Replication
● A client can connect to any node on
the Dynomite cluster when sending
requests.
o If node owns the data,
▪ data are written in local
data-store and
asynchronously replicated.
o If node does not own the data
▪ node acts as a coordinator
and sends the data in the
same rack & replicates to
other nodes in other racks
and DC.
Dyno Client - Java API
● Connection Pooling
● Load Balancing
● Effective failover
● Pipelining
● Scatter/Gather
● Metrics, e.g. Netflix Insights
Dyno Load Balancing
● Dyno client employs token
aware load balancing.
● Dyno client is aware of the
cluster topology of Dynomite
within the region, can write
to specific node using
consistent hashing.
Dyno Failover
● Dyno will route
requests to
different racks in
failure scenarios.
Dynomite on the Cloud
RESP
Moving across engines
Rack A Rack B
Dynomite-manager: Warm up
1. Dynomite-manager identifies which node has the same token in the
same DC
2. Leverage master/slave replication
3. Checks for peer syncing
a. difference between master and slave offset
4. Once master and slave are in sync, Dynomite is set to allow write only
5. Dynomite is set back to normal state
6. Checks for health of the node - Done!
Dynomite-Explorer (UI)
• Node.js web app with a Polymer-based user-interface
• Support Redis’ rich data types
• Avoid operations that can negatively impact Redis server performance
• Extended for Dynomite awareness
• Allow extension of the server to integrate with the Netflix ecosystem
Dynomite-Explorer
Roadmap
● Data reconciliation & repair v2
● Optimizations of RocksDB configuration
● Optimizing backups through SST
● Others….
More information
• Netflix OSS:
• https://github.com/Netflix/dynomite
• https://github.com/Netflix/dyno
• https://github.com/Netflix/dynomite-
manager
• Chat: https://gitter.im/Netflix/dynomite
Dynomite  - PerconaLive 2017

More Related Content

PDF
Netflix Data Benchmark @ HPTS 2017
PDF
[WSO2Con USA 2018] Deploying Applications in K8S and Docker
PDF
Polyglot persistence @ netflix (CDE Meetup)
PPTX
Graph Databases at Netflix
PPTX
DalmatinerDB and cockroachDB monitoring plataform
PDF
Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
PDF
Openstack platform -Red Hat Pizza and technology event - Israel
PDF
OpenStack MagnetoDB. Atlanta Summit 2014
Netflix Data Benchmark @ HPTS 2017
[WSO2Con USA 2018] Deploying Applications in K8S and Docker
Polyglot persistence @ netflix (CDE Meetup)
Graph Databases at Netflix
DalmatinerDB and cockroachDB monitoring plataform
Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
Openstack platform -Red Hat Pizza and technology event - Israel
OpenStack MagnetoDB. Atlanta Summit 2014

What's hot (20)

PDF
Architectural patterns for high performance microservices in kubernetes
PDF
OpenNebula and StorPool: Building Powerful Clouds
PDF
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
KEY
MongoDB SF Ruby
PDF
Introducing MagnetoDB, a key-value storage sevice for OpenStack
PDF
Cassandra's Odyssey @ Netflix
PDF
OpenStack Networking LBaaS
PPTX
Apache Cassandra Lunch #52: Airflow and Cassandra for Cluster Management
PDF
Ceph Block Devices: A Deep Dive
PDF
OSDC 2013 | Distributed Storage with GlusterFS by Dr. Udo Seidel
PDF
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
PDF
Kubecon 2019_eu-k8s-secrets-csi
PDF
The Kubernetes Effect
PPTX
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...
PDF
Getting started in the cloud for developers
PDF
SJTU Summary report
PDF
Using Ceph in OStack.de - Ceph Day Frankfurt
PDF
State of the_gluster_-_lceu
PPTX
Into the cold - Object Storage in SWITCHengines
PDF
OSBConf 2015 | Scale out backups with bareos and gluster by niels de vos
Architectural patterns for high performance microservices in kubernetes
OpenNebula and StorPool: Building Powerful Clouds
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
MongoDB SF Ruby
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Cassandra's Odyssey @ Netflix
OpenStack Networking LBaaS
Apache Cassandra Lunch #52: Airflow and Cassandra for Cluster Management
Ceph Block Devices: A Deep Dive
OSDC 2013 | Distributed Storage with GlusterFS by Dr. Udo Seidel
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
Kubecon 2019_eu-k8s-secrets-csi
The Kubernetes Effect
RedisConf18 - Redis Cluster Provisioning with Kubernetes Service-Catalog Exte...
Getting started in the cloud for developers
SJTU Summary report
Using Ceph in OStack.de - Ceph Day Frankfurt
State of the_gluster_-_lceu
Into the cold - Object Storage in SWITCHengines
OSBConf 2015 | Scale out backups with bareos and gluster by niels de vos
Ad

Similar to Dynomite - PerconaLive 2017 (20)

PPTX
Dynomite @ Redis Conference 2016
PDF
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...
PPTX
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
PPTX
Dynomite @ RedisConf 2017
PDF
Netflix Open Source Meetup Season 4 Episode 2
PDF
Blackray @ SAPO CodeBits 2009
PDF
Container Attached Storage (CAS) with OpenEBS - SDC 2018
PDF
Building a high-performance, scalable ML & NLP platform with Python, Sheer El...
PDF
Discoblocks.pptx.pdf
PDF
PHP at Density and Scale (Lone Star PHP 2014)
PDF
NetflixOSS Meetup season 3 episode 1
PDF
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...
PPTX
Nick Taylor - A Full Stack Web Framework for Deno
PDF
Node.js Presentation
ODP
Deploying Perl apps on dotCloud
PDF
High-level architecture of a complete MariaDB deployment
PDF
BlackRay - The open Source Data Engine
PDF
Disenchantment: Netflix Titus, Its Feisty Team, and Daemons
PDF
Cloud storage: the right way OSS EU 2018
PDF
How a BEAM runner executes a pipeline. Apache BEAM Summit London 2018
Dynomite @ Redis Conference 2016
Dynomite: A Highly Available, Distributed and Scalable Dynamo Layer--Ioannis ...
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
Dynomite @ RedisConf 2017
Netflix Open Source Meetup Season 4 Episode 2
Blackray @ SAPO CodeBits 2009
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Building a high-performance, scalable ML & NLP platform with Python, Sheer El...
Discoblocks.pptx.pdf
PHP at Density and Scale (Lone Star PHP 2014)
NetflixOSS Meetup season 3 episode 1
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...
Nick Taylor - A Full Stack Web Framework for Deno
Node.js Presentation
Deploying Perl apps on dotCloud
High-level architecture of a complete MariaDB deployment
BlackRay - The open Source Data Engine
Disenchantment: Netflix Titus, Its Feisty Team, and Daemons
Cloud storage: the right way OSS EU 2018
How a BEAM runner executes a pipeline. Apache BEAM Summit London 2018
Ad

Recently uploaded (20)

PPTX
Module 1 Introduction to Web Programming .pptx
DOCX
search engine optimization ppt fir known well about this
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PPTX
MuleSoft-Compete-Deck for midddleware integrations
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
Auditboard EB SOX Playbook 2023 edition.
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PPTX
future_of_ai_comprehensive_20250822032121.pptx
PDF
Advancing precision in air quality forecasting through machine learning integ...
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PPTX
Build Your First AI Agent with UiPath.pptx
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
Statistics on Ai - sourced from AIPRM.pdf
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
Module 1 Introduction to Web Programming .pptx
search engine optimization ppt fir known well about this
giants, standing on the shoulders of - by Daniel Stenberg
Improvisation in detection of pomegranate leaf disease using transfer learni...
MuleSoft-Compete-Deck for midddleware integrations
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
Auditboard EB SOX Playbook 2023 edition.
sustainability-14-14877-v2.pddhzftheheeeee
future_of_ai_comprehensive_20250822032121.pptx
Advancing precision in air quality forecasting through machine learning integ...
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Build Your First AI Agent with UiPath.pptx
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Statistics on Ai - sourced from AIPRM.pdf
4 layer Arch & Reference Arch of IoT.pdf
Co-training pseudo-labeling for text classification with support vector machi...
Taming the Chaos: How to Turn Unstructured Data into Decisions

Dynomite - PerconaLive 2017

  • 1. Making Non-Distributed Databases, Distributed Ioannis Papapanagiotou, PhD Shailesh Birari
  • 2. Dynomite Ecosystem ● Dynomite - Proxy layer ● Dyno - Client ● Dynomite-manager - Ecosystem orchestrator ● Dynomite-explorer - UI
  • 3. ● Needed a data store: o Scalable & highly available o High throughput, low latency o Netflix use case is active-active ● Master-slave storage engines: o Do not support bi-directional replication o Cannot withstand a Monkey attack o Cannot easily perform maintenance Problems & Observations
  • 4. What is Dynomite? A framework that makes non-distributed data stores, distributed. Can be used with many key-value storage engines Features: highly available, automatic failover, node warmup, tunable consistency, backups/restores
  • 5. Dynomite @ Netflix ● Running around 2.5 years in PROD ● 70 clusters ● ~1000 nodes used by internal microservices ● Microservices based on Java, Python, NodeJS
  • 6. Pluggable Storage Engines RESP ● Layer on top of a non- distributed key value data store ○ Peer-peer, Shared Nothing ○ Auto-Sharding ○ Multi-datacenter ○ Linear scale ○ Replication ○ Gossiping RESP
  • 7. ● Each rack contains one copy of data, partitioned across multiple nodes in that rack ● Multiple Racks == Higher Availability (HA) Topology
  • 8. Replication ● A client can connect to any node on the Dynomite cluster when sending requests. o If node owns the data, ▪ data are written in local data-store and asynchronously replicated. o If node does not own the data ▪ node acts as a coordinator and sends the data in the same rack & replicates to other nodes in other racks and DC.
  • 9. Dyno Client - Java API ● Connection Pooling ● Load Balancing ● Effective failover ● Pipelining ● Scatter/Gather ● Metrics, e.g. Netflix Insights
  • 10. Dyno Load Balancing ● Dyno client employs token aware load balancing. ● Dyno client is aware of the cluster topology of Dynomite within the region, can write to specific node using consistent hashing.
  • 11. Dyno Failover ● Dyno will route requests to different racks in failure scenarios.
  • 12. Dynomite on the Cloud RESP
  • 14. Dynomite-manager: Warm up 1. Dynomite-manager identifies which node has the same token in the same DC 2. Leverage master/slave replication 3. Checks for peer syncing a. difference between master and slave offset 4. Once master and slave are in sync, Dynomite is set to allow write only 5. Dynomite is set back to normal state 6. Checks for health of the node - Done!
  • 15. Dynomite-Explorer (UI) • Node.js web app with a Polymer-based user-interface • Support Redis’ rich data types • Avoid operations that can negatively impact Redis server performance • Extended for Dynomite awareness • Allow extension of the server to integrate with the Netflix ecosystem
  • 17. Roadmap ● Data reconciliation & repair v2 ● Optimizations of RocksDB configuration ● Optimizing backups through SST ● Others….
  • 18. More information • Netflix OSS: • https://github.com/Netflix/dynomite • https://github.com/Netflix/dyno • https://github.com/Netflix/dynomite- manager • Chat: https://gitter.im/Netflix/dynomite