Creating a
Reference Architecture for
High Availability at Nokia
Rick Lane
Consulting Member of Technical Staff
Nokia
Geo-redundant HA
reference architecture
Nokia Common Software Foundation (CSF)
● Central development organization for commonly used components
● Work with PUs within company to determine needs/plans
● Determine which open-source products are used/planned by multiple PUs
● Productize highly used open-source products in central organization to
eliminate silo-based development model to
○ Reduce overall corporate development costs
○ Improve time to market for products
CSF OS/DB Department
● Centralized OS (Linux) and DB development and distribution
● Each DB component will define common reference architecture(s)
● CSF DB component develops the following around the open-source DB for
each reference architecture:
○ Deployment and Life Cycle Management (LCM) of database in Cloud/openstack environment
○ Docker container for deployment and LCM via kubernetes/Helm → PaaS
○ Tools/scripts to support deployment and management of DB as above, including ansible
● Centralized support for OS and DB within corporation
CSF CMDB (MariaDB Component)
● MariaDB was selected as one of the CSF DB components
● CMDB provides DB server with following reference architectures:
○ Standalone
○ Galera Cluster w/ or w/o Arbitrator
○ Replication: Master/Master and Master/Slave
● Galera or Master-Master w/JDBC mostly used for basic HA needs
● Deployment and LCM developed and packaged for:
○ Cloud/openstack ansible automated deployment for all reference architectures
○ Automated kubernetes container deployment via Helm charts
HA clustered DB
Geo-Redundant HA Requirements
● Multi-datacenter deployment (dual data center
initially)
● Must have HA clustering at each datacenter
● 99.999% availability
● 5 second WAN replication lag tolerance
● 6 hours of Transaction Buffering for datacenter
disconnect
● Automatic replication recovery after datacenter
disconnect
● Procedure to recover standby data center from
active datacenter after 6 hours of replication failure
APPLICATION APPLICATION
DC-A DC-B
HA clustered DB
Geo-Redundant Application Assumptions
● Application will write to only one datacenter at a time
● Application is responsible for failing over to alternate datacenter on failure
● Inter-DC replication lag and binlog buffering are a function of application
transaction rate and WAN speed and reliability
● Some data loss acceptable on failure
Architecture Alternatives
● Galera Cluster at each DC with segment_id definition to limit inter-DC traffic
over a single link
○ Achieve HA at each DC with minimal data loss (internal)
○ Would ideally require 3 datacenters with 3 nodes each for quorum requirements
○ Synchronous replication between DCs could cause severe performance impacts for more
write-intensive applications
● Master-Master at each DC
○ Can provide intra-DC HA via JDBC
○ Auto_increment_offset/increment would have to be managed for all nodes at all DCs
○ Still have inter-DC replication path adjustments needed on local DC failover
● Still need node to run service to monitor alternate DC health and alarm
○ MaxScale makes sense here to provide proxy and manage local cluster
○ Nokia added services will monitor alternate DC health via MaxScale
Geo-Redundant Reference Architecture
read write
MASTERSLAVES
readwrite
MASTER SLAVES
APPLICATION APPLICATION
DC-A DC-B
Master/Slave at each
datacenter for HA and
auto-failover
Masters in each
datacenter cross-
replicate to each other
Datacenter HA (automatic failover)
● First started working with replication-manager to support auto-failover
○ Replication-manager runs along-side MaxScale and performs auto-failover
○ MaxScale expected to auto-detect topology changes and update status - not always
○ Replication-manager configuration very complex
● Discovered maxscale-2.2 with auto-failover built in
○ Single point topology manager (no inconsistencies)
○ No additional 3rd party open-source plugins required (fully supported)
○ Worked with MaxScale development team as beta-tester
MaxScale-2.2 Initial Testing
● Very simple configuration
ignore_external_masters = true
auto_failover = true
auto_rejoin = true
● Maxscale provides full datacenter HA
○ Automatic promotion of a Slave as new Master when Master fails
○ Rejoin of previous failed master as Slave when recovers
○ Maxscale manages inter-DC cluster, we would add scripts to fix replication in both directions
when Master failover occurs in either DC
○ Huge simplification over using 3rd party replication managers / deterministic behavior
○ Maxscale now has crash-safe recovery
MaxScale-2.2 Final Testing
● New configuration
ignore_external_masters = false
auto_failover = true
auto_rejoin = true
● Additional behavior
○ Changed to set ignore_external_masters = true
○ New Master automatically replicates from same external Master as failed Master
○ Notification script plugin on topology changes allows us to automatically fix alternate
datacenter Master to replication from new Master on “new_master” notify event
○ Failover very quick (500ms monitor interval) - 2 to 3 seconds?
Master/Slave Database HA with MaxScale
• Automatic Failover: election and promotion of slave by MaxScale
• Continues routing read queries to slave during failover
• Manual failover and switchover interface
readwrite
MASTER SLAVES
MAXSCALE
1
1 Master fails
2 MaxScale elects new master
3 MaxScale promote candidate slave as new master
4 MaxScale instructs rest of the slave of new master
5 MaxScale sets new master to replication from old
Master external server (if existed)
6 MaxScale calls new_master event notify - Nokia
script to fix external master to replication to new
local master
2,34
Containerized Delivery
● Deployment of Master/Slave container cluster
○ Automatic configuration of first container as Master, other two Slave
○ All containers will automatically recover as Slave role
○ Advertise IPs via etcd service advertisement
● Deployment of Maxscale container
○ Gets all config from kubernetes manifest file and server IPs from etcd advertisement
○ Automatically configures maxscale and starts monitor of DB M/S cluster
● Container failure and re-deployed with different IP
○ Developed service to monitor etcd IP advertisements and detect host IP change at MaxScale
○ Run: maxadmin alter server <hostname> address=<ip>
Nokia developed capabilities
● Notify script plugin on “new_master” event to set remote DC master to new
promoted master
● Additional service will be developed to perform the following additional
functions:
○ Monitor MaxScale in alternate datacenter to verify datacenter health and verify local master
replicating to correct external master
○ Monitor replication to generate SNMP traps when replication breaks
○ Monitor replication lag and generate SNMP traps when lag exceeds threshold
○ Possible implementation of replication CHANGE MASTER retry if replication fails due to GTID
not found
○ Since log_slave_updates must be set, configurable “slave flush interval” to flush binlogs in
slaves
Future work
● Still need to see how replication will hold during failure under load
conditions
● MaxScale enhancement to full automate inter-DC master failover (both
directions)
● Support Galera Cluster as HA solution in each DC
● Support MaxScale HA cluster at each DC (via keepalived)
● Support segregated database access on both databases at same time?
Thank you!
Q&A

More Related Content

PDF
What’s new in Galera 4
PDF
How to migrate from Oracle Database with ease
PDF
M|18 How to use MyRocks with MariaDB Server
PPTX
M|18 Analyzing Data with the MariaDB AX Platform
PPTX
M|18 Deep Dive: InnoDB Transactions and Replication
PPTX
M|18 How Facebook Migrated to MyRocks
PPTX
M|18 Writing Stored Procedures in the Real World
PDF
M|18 Under the Hood: Galera Cluster
What’s new in Galera 4
How to migrate from Oracle Database with ease
M|18 How to use MyRocks with MariaDB Server
M|18 Analyzing Data with the MariaDB AX Platform
M|18 Deep Dive: InnoDB Transactions and Replication
M|18 How Facebook Migrated to MyRocks
M|18 Writing Stored Procedures in the Real World
M|18 Under the Hood: Galera Cluster

What's hot (20)

PDF
What to expect from MariaDB Platform X5, part 2
PPTX
M|18 Battle of the Online Schema Change Methods
PDF
Configuring workload-based storage and topologies
PPTX
M|18 How DBAs at TradingScreen Make Life Easier With Automation
PDF
How THINQ runs both transactions and analytics at scale
PPTX
Inside CynosDB: MariaDB optimized for the cloud at Tencent
PPTX
Migrating from InnoDB and HBase to MyRocks at Facebook
PPTX
Writing powerful stored procedures in PL/SQL
PDF
Auto Europe's ongoing journey with MariaDB and open source
PDF
M|18 Choosing the Right High Availability Strategy for You
PDF
M|18 Migrating from Oracle and Handling PL/SQL Stored Procedures
PDF
Faster, better, stronger: The new InnoDB
PDF
M|18 Understanding the Architecture of MariaDB ColumnStore
PDF
M|18 Running MariaDB TX on Containers
PDF
What to expect from MariaDB Platform X5, part 1
PPTX
How we switched to columnar at SpendHQ
PDF
How QBerg scaled to store data longer, query it faster
PDF
M|18 Deep Dive: InnoDB Transactions and Write Paths
PDF
Global Data Replication with Galera for Ansell Guardian®
PDF
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
What to expect from MariaDB Platform X5, part 2
M|18 Battle of the Online Schema Change Methods
Configuring workload-based storage and topologies
M|18 How DBAs at TradingScreen Make Life Easier With Automation
How THINQ runs both transactions and analytics at scale
Inside CynosDB: MariaDB optimized for the cloud at Tencent
Migrating from InnoDB and HBase to MyRocks at Facebook
Writing powerful stored procedures in PL/SQL
Auto Europe's ongoing journey with MariaDB and open source
M|18 Choosing the Right High Availability Strategy for You
M|18 Migrating from Oracle and Handling PL/SQL Stored Procedures
Faster, better, stronger: The new InnoDB
M|18 Understanding the Architecture of MariaDB ColumnStore
M|18 Running MariaDB TX on Containers
What to expect from MariaDB Platform X5, part 1
How we switched to columnar at SpendHQ
How QBerg scaled to store data longer, query it faster
M|18 Deep Dive: InnoDB Transactions and Write Paths
Global Data Replication with Galera for Ansell Guardian®
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ad

Similar to M|18 Creating a Reference Architecture for High Availability at Nokia (20)

PDF
Kafka meetup seattle 2019 mirus reliable, high performance replication for ap...
PDF
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
PDF
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
PPTX
Veeam Webinar - Case study: building bi-directional DR
PDF
Pivotal Cloud Foundry 2.6: A First Look
PDF
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
PDF
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messages
PDF
Deploy Eclipse hawBit in Production
PDF
Training Slides: Basics 102: Introduction to Tungsten Clustering
PDF
Scaling Monitoring At Databricks From Prometheus to M3
PDF
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
PDF
Moving from CellsV1 to CellsV2 at CERN
PDF
IBM MQ Disaster Recovery
PDF
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
PPT
Galera webinar migration to galera cluster from my sql async replication
PDF
Enabling Presto to handle massive scale at lightning speed
PDF
How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime
PDF
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
PPTX
Shareplex Presentation
ODP
Developing Microservices using Spring - Beginner's Guide
Kafka meetup seattle 2019 mirus reliable, high performance replication for ap...
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
Veeam Webinar - Case study: building bi-directional DR
Pivotal Cloud Foundry 2.6: A First Look
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messages
Deploy Eclipse hawBit in Production
Training Slides: Basics 102: Introduction to Tungsten Clustering
Scaling Monitoring At Databricks From Prometheus to M3
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Moving from CellsV1 to CellsV2 at CERN
IBM MQ Disaster Recovery
MariaDB Auto-Clustering, Vertical and Horizontal Scaling within Jelastic PaaS
Galera webinar migration to galera cluster from my sql async replication
Enabling Presto to handle massive scale at lightning speed
How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
Shareplex Presentation
Developing Microservices using Spring - Beginner's Guide
Ad

More from MariaDB plc (20)

PDF
MariaDB Berlin Roadshow Slides - 8 April 2025
PDF
MariaDB München Roadshow - 24 September, 2024
PDF
MariaDB Paris Roadshow - 19 September 2024
PDF
MariaDB Amsterdam Roadshow: 19 September, 2024
PDF
MariaDB Paris Workshop 2023 - MaxScale 23.02.x
PDF
MariaDB Paris Workshop 2023 - Newpharma
PDF
MariaDB Paris Workshop 2023 - Cloud
PDF
MariaDB Paris Workshop 2023 - MariaDB Enterprise
PDF
MariaDB Paris Workshop 2023 - Performance Optimization
PDF
MariaDB Paris Workshop 2023 - MaxScale
PDF
MariaDB Paris Workshop 2023 - novadys presentation
PDF
MariaDB Paris Workshop 2023 - DARVA presentation
PDF
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
PDF
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
PDF
Einführung : MariaDB Tech und Business Update Hamburg 2023
PDF
Hochverfügbarkeitslösungen mit MariaDB
PDF
Die Neuheiten in MariaDB Enterprise Server
PDF
Introducing workload analysis
PDF
Under the hood: SkySQL monitoring
PDF
Introducing the R2DBC async Java connector
MariaDB Berlin Roadshow Slides - 8 April 2025
MariaDB München Roadshow - 24 September, 2024
MariaDB Paris Roadshow - 19 September 2024
MariaDB Amsterdam Roadshow: 19 September, 2024
MariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
Einführung : MariaDB Tech und Business Update Hamburg 2023
Hochverfügbarkeitslösungen mit MariaDB
Die Neuheiten in MariaDB Enterprise Server
Introducing workload analysis
Under the hood: SkySQL monitoring
Introducing the R2DBC async Java connector

Recently uploaded (20)

PPTX
Dkdkskakkakakakskskdjddidiiffiiddakaka.pptx
PPTX
UNIT-1 NOTES Data warehousing and data mining.pptx
PPTX
cardiac failure and associated notes.pptx
PPTX
Chapter_5_ network layer control plan v8.2.pptx
PPTX
Sistem Informasi Manejemn-Sistem Manajemen Database
PDF
American Journal of Multidisciplinary Research and Review
PPTX
ISO 9001-2015 quality management system presentation
PDF
MISO Deep-NARX Forecasting for Energy and Electricity Demand/Price Data
PPTX
Evaluasi program Bhs Inggris th 2023-2024 dan prog th 2024-2025-1.pptx
PPTX
Basic Statistical Analysis for experimental data.pptx
PDF
The-Physical-Self.pdf college students1-4
PPTX
REAL of PPT_P1_5019211081 (1).pdf_20250718_084609_0000.pptx
PPTX
logistic__regression_for_beginners_.pptx
PPT
Handout for Lean and Six Sigma application
PPTX
Transport System for Biology students in the 11th grade
PDF
Stochastic Programming problem presentationLuedtke.pdf
PDF
Lesson 1 - intro Cybersecurity and Cybercrime.pptx.pdf
PPT
Technicalities in writing workshops indigenous language
PPTX
DataGovernancePrimer_Hosch_2018_11_04.pptx
PDF
TenneT-Integrated-Annual-Report-2018.pdf
Dkdkskakkakakakskskdjddidiiffiiddakaka.pptx
UNIT-1 NOTES Data warehousing and data mining.pptx
cardiac failure and associated notes.pptx
Chapter_5_ network layer control plan v8.2.pptx
Sistem Informasi Manejemn-Sistem Manajemen Database
American Journal of Multidisciplinary Research and Review
ISO 9001-2015 quality management system presentation
MISO Deep-NARX Forecasting for Energy and Electricity Demand/Price Data
Evaluasi program Bhs Inggris th 2023-2024 dan prog th 2024-2025-1.pptx
Basic Statistical Analysis for experimental data.pptx
The-Physical-Self.pdf college students1-4
REAL of PPT_P1_5019211081 (1).pdf_20250718_084609_0000.pptx
logistic__regression_for_beginners_.pptx
Handout for Lean and Six Sigma application
Transport System for Biology students in the 11th grade
Stochastic Programming problem presentationLuedtke.pdf
Lesson 1 - intro Cybersecurity and Cybercrime.pptx.pdf
Technicalities in writing workshops indigenous language
DataGovernancePrimer_Hosch_2018_11_04.pptx
TenneT-Integrated-Annual-Report-2018.pdf

M|18 Creating a Reference Architecture for High Availability at Nokia

  • 1. Creating a Reference Architecture for High Availability at Nokia Rick Lane Consulting Member of Technical Staff Nokia
  • 3. Nokia Common Software Foundation (CSF) ● Central development organization for commonly used components ● Work with PUs within company to determine needs/plans ● Determine which open-source products are used/planned by multiple PUs ● Productize highly used open-source products in central organization to eliminate silo-based development model to ○ Reduce overall corporate development costs ○ Improve time to market for products
  • 4. CSF OS/DB Department ● Centralized OS (Linux) and DB development and distribution ● Each DB component will define common reference architecture(s) ● CSF DB component develops the following around the open-source DB for each reference architecture: ○ Deployment and Life Cycle Management (LCM) of database in Cloud/openstack environment ○ Docker container for deployment and LCM via kubernetes/Helm → PaaS ○ Tools/scripts to support deployment and management of DB as above, including ansible ● Centralized support for OS and DB within corporation
  • 5. CSF CMDB (MariaDB Component) ● MariaDB was selected as one of the CSF DB components ● CMDB provides DB server with following reference architectures: ○ Standalone ○ Galera Cluster w/ or w/o Arbitrator ○ Replication: Master/Master and Master/Slave ● Galera or Master-Master w/JDBC mostly used for basic HA needs ● Deployment and LCM developed and packaged for: ○ Cloud/openstack ansible automated deployment for all reference architectures ○ Automated kubernetes container deployment via Helm charts
  • 6. HA clustered DB Geo-Redundant HA Requirements ● Multi-datacenter deployment (dual data center initially) ● Must have HA clustering at each datacenter ● 99.999% availability ● 5 second WAN replication lag tolerance ● 6 hours of Transaction Buffering for datacenter disconnect ● Automatic replication recovery after datacenter disconnect ● Procedure to recover standby data center from active datacenter after 6 hours of replication failure APPLICATION APPLICATION DC-A DC-B HA clustered DB
  • 7. Geo-Redundant Application Assumptions ● Application will write to only one datacenter at a time ● Application is responsible for failing over to alternate datacenter on failure ● Inter-DC replication lag and binlog buffering are a function of application transaction rate and WAN speed and reliability ● Some data loss acceptable on failure
  • 8. Architecture Alternatives ● Galera Cluster at each DC with segment_id definition to limit inter-DC traffic over a single link ○ Achieve HA at each DC with minimal data loss (internal) ○ Would ideally require 3 datacenters with 3 nodes each for quorum requirements ○ Synchronous replication between DCs could cause severe performance impacts for more write-intensive applications ● Master-Master at each DC ○ Can provide intra-DC HA via JDBC ○ Auto_increment_offset/increment would have to be managed for all nodes at all DCs ○ Still have inter-DC replication path adjustments needed on local DC failover ● Still need node to run service to monitor alternate DC health and alarm ○ MaxScale makes sense here to provide proxy and manage local cluster ○ Nokia added services will monitor alternate DC health via MaxScale
  • 9. Geo-Redundant Reference Architecture read write MASTERSLAVES readwrite MASTER SLAVES APPLICATION APPLICATION DC-A DC-B Master/Slave at each datacenter for HA and auto-failover Masters in each datacenter cross- replicate to each other
  • 10. Datacenter HA (automatic failover) ● First started working with replication-manager to support auto-failover ○ Replication-manager runs along-side MaxScale and performs auto-failover ○ MaxScale expected to auto-detect topology changes and update status - not always ○ Replication-manager configuration very complex ● Discovered maxscale-2.2 with auto-failover built in ○ Single point topology manager (no inconsistencies) ○ No additional 3rd party open-source plugins required (fully supported) ○ Worked with MaxScale development team as beta-tester
  • 11. MaxScale-2.2 Initial Testing ● Very simple configuration ignore_external_masters = true auto_failover = true auto_rejoin = true ● Maxscale provides full datacenter HA ○ Automatic promotion of a Slave as new Master when Master fails ○ Rejoin of previous failed master as Slave when recovers ○ Maxscale manages inter-DC cluster, we would add scripts to fix replication in both directions when Master failover occurs in either DC ○ Huge simplification over using 3rd party replication managers / deterministic behavior ○ Maxscale now has crash-safe recovery
  • 12. MaxScale-2.2 Final Testing ● New configuration ignore_external_masters = false auto_failover = true auto_rejoin = true ● Additional behavior ○ Changed to set ignore_external_masters = true ○ New Master automatically replicates from same external Master as failed Master ○ Notification script plugin on topology changes allows us to automatically fix alternate datacenter Master to replication from new Master on “new_master” notify event ○ Failover very quick (500ms monitor interval) - 2 to 3 seconds?
  • 13. Master/Slave Database HA with MaxScale • Automatic Failover: election and promotion of slave by MaxScale • Continues routing read queries to slave during failover • Manual failover and switchover interface readwrite MASTER SLAVES MAXSCALE 1 1 Master fails 2 MaxScale elects new master 3 MaxScale promote candidate slave as new master 4 MaxScale instructs rest of the slave of new master 5 MaxScale sets new master to replication from old Master external server (if existed) 6 MaxScale calls new_master event notify - Nokia script to fix external master to replication to new local master 2,34
  • 14. Containerized Delivery ● Deployment of Master/Slave container cluster ○ Automatic configuration of first container as Master, other two Slave ○ All containers will automatically recover as Slave role ○ Advertise IPs via etcd service advertisement ● Deployment of Maxscale container ○ Gets all config from kubernetes manifest file and server IPs from etcd advertisement ○ Automatically configures maxscale and starts monitor of DB M/S cluster ● Container failure and re-deployed with different IP ○ Developed service to monitor etcd IP advertisements and detect host IP change at MaxScale ○ Run: maxadmin alter server <hostname> address=<ip>
  • 15. Nokia developed capabilities ● Notify script plugin on “new_master” event to set remote DC master to new promoted master ● Additional service will be developed to perform the following additional functions: ○ Monitor MaxScale in alternate datacenter to verify datacenter health and verify local master replicating to correct external master ○ Monitor replication to generate SNMP traps when replication breaks ○ Monitor replication lag and generate SNMP traps when lag exceeds threshold ○ Possible implementation of replication CHANGE MASTER retry if replication fails due to GTID not found ○ Since log_slave_updates must be set, configurable “slave flush interval” to flush binlogs in slaves
  • 16. Future work ● Still need to see how replication will hold during failure under load conditions ● MaxScale enhancement to full automate inter-DC master failover (both directions) ● Support Galera Cluster as HA solution in each DC ● Support MaxScale HA cluster at each DC (via keepalived) ● Support segregated database access on both databases at same time?