The document discusses BlaBlaCar's infrastructure which is powered entirely by containers. It describes how MariaDB is used as the transactional database in a highly available MariaDB cluster configuration. Key aspects discussed include service discovery using Nerve and Synapse, database scaling via containers, automated weight-based rollouts of services, and integration with monitoring using Prometheus.
M|18 How DBAs at TradingScreen Make Life Easier With AutomationMariaDB plc
This document discusses how Tradingscreen automates tasks related to managing their MariaDB databases across multiple environments. Some key points:
- Tradingscreen has over 100 database servers across different regions to support their financial services clients.
- They developed tools like DBABot, RosBot, and various scripts to automate backups, replication monitoring, user access removal, and schema deployments across their environments in order to reduce errors and make processes more efficient.
- The tools leverage technologies like Percona Toolkit, XtraBackup, Git, and APIs to perform tasks like backups, replication monitoring, schema changes, and more. This allows a smaller team of DBAs to manage a large, globally distributed database infrastructure
MyRocks deployment at Facebook and Roadmaps
This document discusses Facebook's deployment of MyRocks, a MySQL storage engine that uses RocksDB. It summarizes Facebook's initial goals for MyRocks, the technical challenges of migrating to MyRocks, their production configuration, and monitoring. It also outlines Facebook's plans to help further develop MyRocks in MariaDB and Percona Server with a focus on read performance, mixed engines, better replication, and supporting larger instance sizes.
M|18 How InfoArmor Harvests Data from the Underground EconomyMariaDB plc
This document provides an overview of InfoArmor's threat intelligence and data ingestion capabilities. It begins with a brief history of InfoArmor and its vision for the future. It then discusses how threat data is collected from the dark web and other sources through techniques like forum scraping, human operatives, and threat actor profiling. The document also discusses lessons learned from processing over 1 billion rows of data in databases like Elasticsearch and MariaDB. It cautions against issues like poor schema design, not closing database connections, importing too much data at once, and allowing malicious scripts into databases. The key takeaways are that data should be ingested and processed incrementally and that remote DBAs can help manage infrastructure challenges.
M|18 How Copart Switched to MariaDB and Reduced Costs During GrowthMariaDB plc
Copart is a global vehicle auction company that has been using MariaDB to power its databases and applications. It migrated from its legacy AS400 database to MariaDB due to its scalability, lower costs, and support for advanced features like encryption. Copart has implemented MariaDB in various configurations including Galera clusters, master-slave, and multi-instance setups to power its production and non-production environments. It continues to explore new MariaDB capabilities and configurations to improve performance, reduce costs, and meet its expanding international operations.
How to migrate from Oracle Database with easeMariaDB plc
MariaDB introduced Oracle Database compatibility last May with support for Oracle Database data types, sequences, stored procedures (PL/SQL) and more, making it easier than ever to migrate to MariaDB. In this session, MariaDB's Alexander Bienemann and Wagner Bianchi share best practices and lessons learned from our experiences helping customers migrate from Oracle Database. They explain how MariaDB approaches migrations, what’s needed to complete a successful migration and the tools used to determine the level of effort required.
Writing powerful stored procedures in PL/SQLMariaDB plc
Oracle Database compatibility in MariaDB Server lets developers choose between ANSI SQL and PL/SQL when writing stored procedures. In this session, Senior Solutions Engineer Alton Dinsmore focuses on how to write powerful stored procedures and functions with PL/SQL, whether you are migrating from Oracle Database or not.
Auto Europe's ongoing journey with MariaDB and open sourceMariaDB plc
Tom Girsch, Lead System Architect at Auto Europe, covers the use case that initially brought Auto Europe to MariaDB, as well as additional planned and ongoing projects. He goes on to discuss Auto Europe’s implementation of MariaDB using clustering, traditional replication and MaxScale. Next, he covers some of the problems and pitfalls encountered along the way, as well as some suggestions to further improve the product.
M|18 PolarDB: Extending Shared-storage to MyRocksMariaDB plc
This document discusses extending shared storage to MyRocks in PolarDB by implementing RocksDB write-ahead logging (WAL) replication. It describes converting system tables to RocksDB, replicating the WAL, DDL operations, caches, and index statistics. Challenges with DDL replication during primary/replica crashes are addressed. Multi-version concurrency control (MVCC) is implemented based on RocksDB snapshots to maintain consistency between primary and replicas.
M|18 How DBAs at TradingScreen Make Life Easier With AutomationMariaDB plc
This document discusses how Tradingscreen automates tasks related to managing their MariaDB databases across multiple environments. Some key points:
- Tradingscreen has over 100 database servers across different regions to support their financial services clients.
- They developed tools like DBABot, RosBot, and various scripts to automate backups, replication monitoring, user access removal, and schema deployments across their environments in order to reduce errors and make processes more efficient.
- The tools leverage technologies like Percona Toolkit, XtraBackup, Git, and APIs to perform tasks like backups, replication monitoring, schema changes, and more. This allows a smaller team of DBAs to manage a large, globally distributed database infrastructure
MyRocks deployment at Facebook and Roadmaps
This document discusses Facebook's deployment of MyRocks, a MySQL storage engine that uses RocksDB. It summarizes Facebook's initial goals for MyRocks, the technical challenges of migrating to MyRocks, their production configuration, and monitoring. It also outlines Facebook's plans to help further develop MyRocks in MariaDB and Percona Server with a focus on read performance, mixed engines, better replication, and supporting larger instance sizes.
M|18 How InfoArmor Harvests Data from the Underground EconomyMariaDB plc
This document provides an overview of InfoArmor's threat intelligence and data ingestion capabilities. It begins with a brief history of InfoArmor and its vision for the future. It then discusses how threat data is collected from the dark web and other sources through techniques like forum scraping, human operatives, and threat actor profiling. The document also discusses lessons learned from processing over 1 billion rows of data in databases like Elasticsearch and MariaDB. It cautions against issues like poor schema design, not closing database connections, importing too much data at once, and allowing malicious scripts into databases. The key takeaways are that data should be ingested and processed incrementally and that remote DBAs can help manage infrastructure challenges.
M|18 How Copart Switched to MariaDB and Reduced Costs During GrowthMariaDB plc
Copart is a global vehicle auction company that has been using MariaDB to power its databases and applications. It migrated from its legacy AS400 database to MariaDB due to its scalability, lower costs, and support for advanced features like encryption. Copart has implemented MariaDB in various configurations including Galera clusters, master-slave, and multi-instance setups to power its production and non-production environments. It continues to explore new MariaDB capabilities and configurations to improve performance, reduce costs, and meet its expanding international operations.
How to migrate from Oracle Database with easeMariaDB plc
MariaDB introduced Oracle Database compatibility last May with support for Oracle Database data types, sequences, stored procedures (PL/SQL) and more, making it easier than ever to migrate to MariaDB. In this session, MariaDB's Alexander Bienemann and Wagner Bianchi share best practices and lessons learned from our experiences helping customers migrate from Oracle Database. They explain how MariaDB approaches migrations, what’s needed to complete a successful migration and the tools used to determine the level of effort required.
Writing powerful stored procedures in PL/SQLMariaDB plc
Oracle Database compatibility in MariaDB Server lets developers choose between ANSI SQL and PL/SQL when writing stored procedures. In this session, Senior Solutions Engineer Alton Dinsmore focuses on how to write powerful stored procedures and functions with PL/SQL, whether you are migrating from Oracle Database or not.
Auto Europe's ongoing journey with MariaDB and open sourceMariaDB plc
Tom Girsch, Lead System Architect at Auto Europe, covers the use case that initially brought Auto Europe to MariaDB, as well as additional planned and ongoing projects. He goes on to discuss Auto Europe’s implementation of MariaDB using clustering, traditional replication and MaxScale. Next, he covers some of the problems and pitfalls encountered along the way, as well as some suggestions to further improve the product.
M|18 PolarDB: Extending Shared-storage to MyRocksMariaDB plc
This document discusses extending shared storage to MyRocks in PolarDB by implementing RocksDB write-ahead logging (WAL) replication. It describes converting system tables to RocksDB, replicating the WAL, DDL operations, caches, and index statistics. Challenges with DDL replication during primary/replica crashes are addressed. Multi-version concurrency control (MVCC) is implemented based on RocksDB snapshots to maintain consistency between primary and replicas.
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterMariaDB Corporation
This document provides information about MariaDB Enterprise and MariaDB Enterprise Cluster from Ralf Gebhardt, including:
- An agenda covering MariaDB, MariaDB Enterprise, MariaDB Enterprise Cluster, services, and more info.
- Background on MariaDB, the MariaDB Foundation, MariaDB.com, and SkySQL.
- A timeline of MariaDB releases from 5.1 to the current 10.0 and Galera Cluster 10.
- An overview of key features and optimizations in MariaDB 10 like multi-source replication and improved query optimization.
- Mention of Fusion-IO page compression providing a 30% performance increase with atomic writes.
MariaDB Platform for hybrid transactional/analytical workloadsMariaDB plc
OpenWorks 2019 Session
In order to provide data-driven customers with more historical data and real-time analytics, MariaDB Platform can be configured for hybrid transactional/analytical workloads by leveraging row storage for current data transactions and columnar storage for historical data and analytics. In this session Shane Johnson, Senior Director of Product Marketing at MariaDB, shows how change-data-capture and query routing, both available out of the box, can be used to bring scalable analytics to customer-facing applications without changing their code – and without depending on a separate data warehouse.
Configuring workload-based storage and topologiesMariaDB plc
This document discusses configuring workload-based storage and topologies in MariaDB. It introduces several MariaDB storage engines including InnoDB, MyRocks, Aria, Spider, and ColumnStore. For each engine, it provides an overview of use cases, key configuration parameters, and recommendations on when to use each engine. It also provides an example of using different engines like MyRocks, InnoDB and Spider across multiple microservices databases based on the workload. The document aims to help users choose the right storage engine for their specific workload needs.
Migrating from InnoDB and HBase to MyRocks at FacebookMariaDB plc
Migrating large databases at Facebook from InnoDB to MyRocks and HBase to MyRocks resulted in significant space savings of 2-4x and improved write performance by up to 10x. Various techniques were used for the migrations such as creating new MyRocks instances without downtime, loading data efficiently, testing on shadow instances, and promoting MyRocks instances as masters. Ongoing work involves optimizations like direct I/O, dictionary compression, parallel compaction, and dynamic configuration changes to further improve performance and efficiency.
How THINQ runs both transactions and analytics at scaleMariaDB plc
THINQ provides a cloud-based Communications-Platform-as-a-Service (CPaaS) that routes tens of millions of phone calls per day for customers in enterprise and telecommunications industries. In this session Sasha Vaniachine, Senior Database Administrator at THINQ, explains how he combined MariaDB Server and MariaDB ColumnStore to support both high-performance transaction processing and scalable analytics. In addition, he shares some of THINQ's best practices and lessons learned from supporting an ever-increasing database workload that currently exceeds 10,000 transactions per second.
This document summarizes a company's migration from their old MySQL database to MariaDB Columnstore to address scalability issues. They identified alternative databases, chose MariaDB Columnstore for its performance and support. They saw a 71% reduction in query times after migrating and refactored their ETL processes and application to take advantage of the new database. While deployment had some challenges around storage capacity, they were able to automate cluster creation and define a migration process to successfully move to the new database.
M|18 Writing Stored Procedures in the Real WorldMariaDB plc
This document discusses using MariaDB stored procedures and parallel processing to optimize the "Wordament" word game. It presents solutions to run the game using:
1) A single thread on one node.
2) Multiple threads on one node using MariaDB events.
3) Multiple threads across multiple nodes using MariaDB replication.
It concludes that MariaDB supports parallelism through events and replication, but could benefit from a thread API to more easily develop multithreaded stored procedure solutions.
How QBerg scaled to store data longer, query it fasterMariaDB plc
The continuous increase in terms of services and countries to which QBerg delivers its services requires an ever-increasing load of resources. During the last year QBerg has reached a critical point, storing so much transactional data that standard relational databases were unable to meet the SLAs, or support the features, required by customers. As an example, they had to cap web analytics to running on a maximum of four months of history. The introduction of MariaDB ColumnStore, flanked by existing MariaDB Server databases, not only will allow them to store multiple years’ worth of historical data for analytics – it decreased overall processing time by one order of magnitude right off the bat. The move to a unified platform was incremental, using MariaDB MaxScale as both a router and a replicator. QBerg is now able to replicate full InnoDB schemas to MariaDB ColumnStore and incrementally update big tables without impacting the performance of ongoing transactions.
Global Data Replication with Galera for Ansell Guardian®MariaDB plc
Ansell Guardian® faced challenges with their previous database replication solution as their data and usage grew globally. They evaluated MariaDB/Galera and implemented it to replace their legacy solution. The implementation was smooth using automation scripts. MariaDB/Galera provided increased performance, faster deployment times, and more reliable data synchronization across their 3 data centers compared to their previous solution. It helped resolve a critical data divergence issue and improved the user experience. They plan to further enhance their database infrastructure using MaxScale in the future.
M|18 Creating a Reference Architecture for High Availability at NokiaMariaDB plc
This document proposes a reference architecture for providing high availability across multiple data centers using MariaDB and related open source tools. It summarizes:
- The need for a geo-redundant highly available database architecture at Nokia to support multiple product units.
- An evaluation of alternatives including Galera clusters and master-master replication between data centers.
- A proposed architecture using MaxScale for local master-slave replication within each data center and cross-data center replication between masters for redundancy.
- Testing and development of MaxScale plugins and scripts to support automatic failover and recovery after failures within or between data centers.
- Plans for containerized deployment of the database clusters and MaxScale using Kubernetes with additional
NewSQL overview:
- History of RDBMs
- The reasons why NoSQL concept appeared
- Why NoSQL was not enough, the necessity of NewSQL
- Characteristics of NewSQL
- 7 DBs that belongs to NewSQL
- Overview Table with main properties
Extending MariaDB with user-defined functionsMariaDB plc
The document discusses user-defined functions (UDFs) in MariaDB. It provides background on UDFs, including their history and pros/cons. It then covers how to install, view, and call UDFs. The bulk of the document explains how to define a UDF in C, including the required API calls for initialization, execution, aggregation, and cleanup. It recommends a book for further reading on developing UDFs and other MariaDB plugins. Towards the end, it briefly discusses deploying a live UDF to solve the problem of matching hotel names from different sources.
Scylla Summit 2016: Using ScyllaDB for a Microservice-based Pipeline in GoScyllaDB
How do you handle the continuous transformation and refinement of billions of entities with some sort of reliability and performance? In this talk, Henrik will describe how Scylla enabled him and his team to create a pipelined solution using a series of microservices written in Go communicating with each other using Nats. You’ll hear about the mistakes and learnings they had along the way as they built the services that led to the great performance and stability they are experiencing today.
M|18 Analyzing Data with the MariaDB AX PlatformMariaDB plc
The document summarizes new features in MariaDB AX, an open-source analytics platform. Key updates include: improved high availability and disaster recovery with GlusterFS support and parallel backup/restore; enhanced analytics capabilities like user-defined aggregate and window functions; and streamlined data ingestion with streaming and bulk data adapters for loading data from sources like Kafka and applications in real-time or batch. The platform provides scalable analytics on MariaDB ColumnStore through features like distributed storage, parallel queries, and automatic partitioning.
Deploying MariaDB databases with containers at Nokia NetworksMariaDB plc
Nokia is focused on providing software and products that facilitate rapid development, deployment and scaling of products and services to customers. The Common Software Foundation (CSF) within Nokia develops and supports product reuse by multiple applications within Nokia, including MariaDB. Their focus over the last year has been to develop a containerized MariaDB solution supporting multiple architectures, including both clustering and primary/secondary replication with MariaDB MaxScale. In this talk, Rick Lane discusses this journey of these containerized solutions from development to customer trials, including problems encountered and solutions.
In this talk, we'll walk through RocksDB technology and look into areas where MyRocks is a good fit by comparison to other engines such as InnoDB. We will go over internals, benchmarks, and tuning of MyRocks engine. We also aim to explore the benefits of using MyRocks within the MySQL ecosystem. Attendees will be able to conclude with the latest development of tools and integration within MySQL.
One of the benefits of using MySQL is the fact you can choose a storage engine fitting your requirements. Even though InnoDB is prevalent, it is helpful to know the available choices. Lately, LSM-tree based storage engines and engines using ideas of the technique, are seeing a rise in popularity and use. MyRocks brings LSM-tree benefits and tradeoffs to MySQL. In this talk, we'll walk through RocksDB technology and look into areas where MyRocks is a good fit by comparison to other engines such as InnoDB. We will go over internals, benchmarks, and tuning of MyRocks engine. We also aim to explore the benefits of using MyRocks within the MySQL ecosystem. Attendees will be able to conclude with the latest development of tools and integration within MySQL.
Using a Fast Operational Database to Build Real-time Streaming AggregationsVoltDB
Simplicity, accuracy, speed; these are three things everyone wants from their data architecture. Join this webinar presented by Behzad Pirvali, Performance Architect at MaxCDN and Peter Vescuso, CMO at VoltDB to learn how MaxCDN used VoltDB, the world’s fastest operational DB with fast data pipeline, to reduce the number of managed environments by 2/3 times with 1/10th of CPU cycles required with alternative solutions. All while achieving 100% billing accuracy on 32 TB of daily web server data. The fill recording of this webinar is also available here: http://learn.voltdb.com/WRMaxCDN.html
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterMariaDB Corporation
This document provides information about MariaDB Enterprise and MariaDB Enterprise Cluster from Ralf Gebhardt, including:
- An agenda covering MariaDB, MariaDB Enterprise, MariaDB Enterprise Cluster, services, and more info.
- Background on MariaDB, the MariaDB Foundation, MariaDB.com, and SkySQL.
- A timeline of MariaDB releases from 5.1 to the current 10.0 and Galera Cluster 10.
- An overview of key features and optimizations in MariaDB 10 like multi-source replication and improved query optimization.
- Mention of Fusion-IO page compression providing a 30% performance increase with atomic writes.
MariaDB Platform for hybrid transactional/analytical workloadsMariaDB plc
OpenWorks 2019 Session
In order to provide data-driven customers with more historical data and real-time analytics, MariaDB Platform can be configured for hybrid transactional/analytical workloads by leveraging row storage for current data transactions and columnar storage for historical data and analytics. In this session Shane Johnson, Senior Director of Product Marketing at MariaDB, shows how change-data-capture and query routing, both available out of the box, can be used to bring scalable analytics to customer-facing applications without changing their code – and without depending on a separate data warehouse.
Configuring workload-based storage and topologiesMariaDB plc
This document discusses configuring workload-based storage and topologies in MariaDB. It introduces several MariaDB storage engines including InnoDB, MyRocks, Aria, Spider, and ColumnStore. For each engine, it provides an overview of use cases, key configuration parameters, and recommendations on when to use each engine. It also provides an example of using different engines like MyRocks, InnoDB and Spider across multiple microservices databases based on the workload. The document aims to help users choose the right storage engine for their specific workload needs.
Migrating from InnoDB and HBase to MyRocks at FacebookMariaDB plc
Migrating large databases at Facebook from InnoDB to MyRocks and HBase to MyRocks resulted in significant space savings of 2-4x and improved write performance by up to 10x. Various techniques were used for the migrations such as creating new MyRocks instances without downtime, loading data efficiently, testing on shadow instances, and promoting MyRocks instances as masters. Ongoing work involves optimizations like direct I/O, dictionary compression, parallel compaction, and dynamic configuration changes to further improve performance and efficiency.
How THINQ runs both transactions and analytics at scaleMariaDB plc
THINQ provides a cloud-based Communications-Platform-as-a-Service (CPaaS) that routes tens of millions of phone calls per day for customers in enterprise and telecommunications industries. In this session Sasha Vaniachine, Senior Database Administrator at THINQ, explains how he combined MariaDB Server and MariaDB ColumnStore to support both high-performance transaction processing and scalable analytics. In addition, he shares some of THINQ's best practices and lessons learned from supporting an ever-increasing database workload that currently exceeds 10,000 transactions per second.
This document summarizes a company's migration from their old MySQL database to MariaDB Columnstore to address scalability issues. They identified alternative databases, chose MariaDB Columnstore for its performance and support. They saw a 71% reduction in query times after migrating and refactored their ETL processes and application to take advantage of the new database. While deployment had some challenges around storage capacity, they were able to automate cluster creation and define a migration process to successfully move to the new database.
M|18 Writing Stored Procedures in the Real WorldMariaDB plc
This document discusses using MariaDB stored procedures and parallel processing to optimize the "Wordament" word game. It presents solutions to run the game using:
1) A single thread on one node.
2) Multiple threads on one node using MariaDB events.
3) Multiple threads across multiple nodes using MariaDB replication.
It concludes that MariaDB supports parallelism through events and replication, but could benefit from a thread API to more easily develop multithreaded stored procedure solutions.
How QBerg scaled to store data longer, query it fasterMariaDB plc
The continuous increase in terms of services and countries to which QBerg delivers its services requires an ever-increasing load of resources. During the last year QBerg has reached a critical point, storing so much transactional data that standard relational databases were unable to meet the SLAs, or support the features, required by customers. As an example, they had to cap web analytics to running on a maximum of four months of history. The introduction of MariaDB ColumnStore, flanked by existing MariaDB Server databases, not only will allow them to store multiple years’ worth of historical data for analytics – it decreased overall processing time by one order of magnitude right off the bat. The move to a unified platform was incremental, using MariaDB MaxScale as both a router and a replicator. QBerg is now able to replicate full InnoDB schemas to MariaDB ColumnStore and incrementally update big tables without impacting the performance of ongoing transactions.
Global Data Replication with Galera for Ansell Guardian®MariaDB plc
Ansell Guardian® faced challenges with their previous database replication solution as their data and usage grew globally. They evaluated MariaDB/Galera and implemented it to replace their legacy solution. The implementation was smooth using automation scripts. MariaDB/Galera provided increased performance, faster deployment times, and more reliable data synchronization across their 3 data centers compared to their previous solution. It helped resolve a critical data divergence issue and improved the user experience. They plan to further enhance their database infrastructure using MaxScale in the future.
M|18 Creating a Reference Architecture for High Availability at NokiaMariaDB plc
This document proposes a reference architecture for providing high availability across multiple data centers using MariaDB and related open source tools. It summarizes:
- The need for a geo-redundant highly available database architecture at Nokia to support multiple product units.
- An evaluation of alternatives including Galera clusters and master-master replication between data centers.
- A proposed architecture using MaxScale for local master-slave replication within each data center and cross-data center replication between masters for redundancy.
- Testing and development of MaxScale plugins and scripts to support automatic failover and recovery after failures within or between data centers.
- Plans for containerized deployment of the database clusters and MaxScale using Kubernetes with additional
NewSQL overview:
- History of RDBMs
- The reasons why NoSQL concept appeared
- Why NoSQL was not enough, the necessity of NewSQL
- Characteristics of NewSQL
- 7 DBs that belongs to NewSQL
- Overview Table with main properties
Extending MariaDB with user-defined functionsMariaDB plc
The document discusses user-defined functions (UDFs) in MariaDB. It provides background on UDFs, including their history and pros/cons. It then covers how to install, view, and call UDFs. The bulk of the document explains how to define a UDF in C, including the required API calls for initialization, execution, aggregation, and cleanup. It recommends a book for further reading on developing UDFs and other MariaDB plugins. Towards the end, it briefly discusses deploying a live UDF to solve the problem of matching hotel names from different sources.
Scylla Summit 2016: Using ScyllaDB for a Microservice-based Pipeline in GoScyllaDB
How do you handle the continuous transformation and refinement of billions of entities with some sort of reliability and performance? In this talk, Henrik will describe how Scylla enabled him and his team to create a pipelined solution using a series of microservices written in Go communicating with each other using Nats. You’ll hear about the mistakes and learnings they had along the way as they built the services that led to the great performance and stability they are experiencing today.
M|18 Analyzing Data with the MariaDB AX PlatformMariaDB plc
The document summarizes new features in MariaDB AX, an open-source analytics platform. Key updates include: improved high availability and disaster recovery with GlusterFS support and parallel backup/restore; enhanced analytics capabilities like user-defined aggregate and window functions; and streamlined data ingestion with streaming and bulk data adapters for loading data from sources like Kafka and applications in real-time or batch. The platform provides scalable analytics on MariaDB ColumnStore through features like distributed storage, parallel queries, and automatic partitioning.
Deploying MariaDB databases with containers at Nokia NetworksMariaDB plc
Nokia is focused on providing software and products that facilitate rapid development, deployment and scaling of products and services to customers. The Common Software Foundation (CSF) within Nokia develops and supports product reuse by multiple applications within Nokia, including MariaDB. Their focus over the last year has been to develop a containerized MariaDB solution supporting multiple architectures, including both clustering and primary/secondary replication with MariaDB MaxScale. In this talk, Rick Lane discusses this journey of these containerized solutions from development to customer trials, including problems encountered and solutions.
In this talk, we'll walk through RocksDB technology and look into areas where MyRocks is a good fit by comparison to other engines such as InnoDB. We will go over internals, benchmarks, and tuning of MyRocks engine. We also aim to explore the benefits of using MyRocks within the MySQL ecosystem. Attendees will be able to conclude with the latest development of tools and integration within MySQL.
One of the benefits of using MySQL is the fact you can choose a storage engine fitting your requirements. Even though InnoDB is prevalent, it is helpful to know the available choices. Lately, LSM-tree based storage engines and engines using ideas of the technique, are seeing a rise in popularity and use. MyRocks brings LSM-tree benefits and tradeoffs to MySQL. In this talk, we'll walk through RocksDB technology and look into areas where MyRocks is a good fit by comparison to other engines such as InnoDB. We will go over internals, benchmarks, and tuning of MyRocks engine. We also aim to explore the benefits of using MyRocks within the MySQL ecosystem. Attendees will be able to conclude with the latest development of tools and integration within MySQL.
Using a Fast Operational Database to Build Real-time Streaming AggregationsVoltDB
Simplicity, accuracy, speed; these are three things everyone wants from their data architecture. Join this webinar presented by Behzad Pirvali, Performance Architect at MaxCDN and Peter Vescuso, CMO at VoltDB to learn how MaxCDN used VoltDB, the world’s fastest operational DB with fast data pipeline, to reduce the number of managed environments by 2/3 times with 1/10th of CPU cycles required with alternative solutions. All while achieving 100% billing accuracy on 32 TB of daily web server data. The fill recording of this webinar is also available here: http://learn.voltdb.com/WRMaxCDN.html
For the Docker users out there, Sematext's DevOps Evangelist, Stefan Thies, goes through a number of different Docker monitoring options, points out their pros and cons, and offers solutions for Docker monitoring. Webinar contains actionable content, diagrams and how-to steps.
This document discusses various profiling tools that can be used to analyze MySQL performance, including Oprofile, perf, pt-pmp, and the MySQL Performance Schema. It provides examples of how these tools have been used to identify and resolve specific MySQL performance bugs. While the Performance Schema is useful, it does not always provide sufficient detail and other system-wide profilers like Oprofile and perf are still needed in some cases to pinpoint performance issues.
Presentation by Andrew Nagy at Code4Lib 2007 in Athens, GA.
Villanova University’s Falvey Memorial Library has longed for a beautiful pig; however, we determined in early 2006 that pigs were only good at searching for truffles, so we decided to build our own OPAC.
After developing our own custom Digital Library from a Native XML Database, we quickly appreciated the ease of development with XQuery and XSLT. We then launched full speed ahead into the development of a new OPAC from scratch using XML technologies and MARCXML.
This presentation will describe the process of choosing an NXDB and optimizing it for large data set performance. Developing searches that take about 2 minutes to process and optimizing them down to about 2 seconds. I will also describe the development processes of the OPAC interface including the AJAX features we have implemented. I will share our success stories and our failures.
Talk for PerconaLive 2016 by Brendan Gregg. Video: https://www.youtube.com/watch?v=CbmEDXq7es0 . "Systems performance provides a different perspective for analysis and tuning, and can help you find performance wins for your databases, applications, and the kernel. However, most of us are not performance or kernel engineers, and have limited time to study this topic. This talk summarizes six important areas of Linux systems performance in 50 minutes: observability tools, methodologies, benchmarking, profiling, tracing, and tuning. Included are recipes for Linux performance analysis and tuning (using vmstat, mpstat, iostat, etc), overviews of complex areas including profiling (perf_events), static tracing (tracepoints), and dynamic tracing (kprobes, uprobes), and much advice about what is and isn't important to learn. This talk is aimed at everyone: DBAs, developers, operations, etc, and in any environment running Linux, bare-metal or the cloud."
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Codemotion
Once you start working with Big Data systems, you discover a whole bunch of problems you won’t find in monolithic systems. Monitoring all of the components becomes a big data problem itself. In the talk, we’ll mention all of the aspects that you should take into consideration when monitoring a distributed system using tools like Web Services, Spark, Cassandra, MongoDB, AWS. Not only the tools, what should you monitor about the actual data that flows in the system? We’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Demi Ben-Ari
Once you start working with distributed Big Data systems, you start discovering a whole bunch of problems you won’t find in monolithic systems.
All of a sudden to monitor all of the components becomes a big data problem itself.
In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system once you’re using tools like:
Web Services, Apache Spark, Cassandra, MongoDB, Amazon Web Services.
Not only the tools, what should you monitor about the actual data that flows in the system?
And we’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
Troubleshooting Tips and Tricks for Database 19c - EMEA Tour Oct 2019Sandesh Rao
This session will focus on 19 troubleshooting tips and tricks for DBA's covering tools from the Oracle Autonomous Health Framework (AHF) like Trace file Analyzer (TFA) to collect , organize and analyze log data , Exachk and orachk to perform mass best practices analysis and automation , Cluster Health Advisor to debug node evictions and calibrate the framework , OSWatcher and its analysis engine , oratop for pinpointing performance issues and many others to make one feel like a rockstar DBA
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...arnaudsoullie
This document provides an overview of industrial control systems (ICS) and Programmable Logic Controllers (PLCs). It discusses the components of ICS, including sensors, actuators, HMIs, PLCs, and more. It also covers the MODBUS protocol commonly used in ICS, providing details on its master/slave architecture and function codes. The document concludes by discussing tools used in the workshop, such as Kali Linux, MBTGET, PLCSCAN, and Metasploit modules, to analyze MODBUS communications, perform reconnaissance on PLCs, and attack standard services and protocols.
The document discusses diagnosing and mitigating MySQL performance issues. It describes using various operating system monitoring tools like vmstat, iostat, and top to analyze CPU, memory, disk, and network utilization. It also discusses using MySQL-specific tools like the MySQL command line, mysqladmin, mysqlbinlog, and external tools to diagnose issues like high load, I/O wait, or slow queries by examining metrics like queries, connections, storage engine statistics, and InnoDB logs and data written. The agenda covers identifying system and MySQL-specific bottlenecks by verifying OS metrics and running diagnostics on the database, storage engines, configuration, and queries.
How to measure everything - a million metrics per second with minimal develop...Jos Boumans
Krux is an infrastructure provider for many of the websites you
use online today, like NYTimes.com, WSJ.com, Wikia and NBCU. For
every request on those properties, Krux will get one or more as
well. We grew from zero traffic to several billion requests per
day in the span of 2 years, and we did so exclusively in AWS.
To make the right decisions in such a volatile environment, we
knew that data is everything; without it, you can't possibly make
informed decisions. However, collecting it efficiently, at scale,
at minimal cost and without burdening developers is a tremendous
challenge.
Join me in this session to learn how we overcame this challenge
at Krux; I will share with you the details of how we set up our
global infrastructure, entirely managed by Puppet, to capture over
a million data points every second on virtually every part of the
system, including inside the web server, user apps and Puppet itself,
for under $2000/month using off the shelf Open Source software and
some code we've released as Open Source ourselves. In addition, I’ll
show you how you can take (a subset of) these metrics and send them
to advanced analytics and alerting tools like Circonus or Zabbix.
This content will be applicable for anyone collecting or desiring to
collect vast amounts of metrics in a cloud or datacenter setting and
making sense of them.
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
Once you start working with distributed Big Data systems, you start discovering a whole bunch of problems you won’t find in monolithic systems.
All of a sudden to monitor all of the components becomes a big data problem itself.
In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system once you’re using tools like:
Web Services, Apache Spark, Cassandra, MongoDB, Amazon Web Services.
Not only the tools, what should you monitor about the actual data that flows in the system?
And we’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Codemotion
Once you start working with Big Data systems, you discover a whole bunch of problems you won’t find in monolithic systems. Monitoring all of the components becomes a big data problem itself. In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system using tools like: Web Services,Spark,Cassandra,MongoDB,AWS. Not only the tools, what should you monitor about the actual data that flows in the system? We’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
Why Managed Service Providers Should Embrace Container TechnologySagi Brody
This talk will demonstrate the importance and value for Managed Service Providers (MSPs) and cloud providers of building their business models around the management of containers. It will also explore the various container technologies being used today and why one might be utilized over another. The object is not to give a technical discussion on the subject, but rather to cover the benefits of Linux containers and how their use can be incorporated into strategies for future business planning and development.
Network Automation with Salt and NAPALM: a self-resilient networkCloudflare
This document discusses using Salt and NAPALM for network automation. Salt is used as the automation framework due to its scalability, concurrency, configurability and other features. NAPALM is used to provide vendor-agnostic network drivers and modules. Together, Salt and NAPALM allow for automating tasks like deploying new network sites, monitoring links and devices, maintaining consistent configurations, and improving recovery times from outages or equipment replacements. Examples shown include using Salt to schedule regular configuration checks, deploy probes to monitor transit providers, retrieve probe results, and set up alerts. Contributions to the open source Salt and NAPALM projects are encouraged to advance the goal of self-resilient
SolarWinds Scalability for the EnterpriseSolarWinds
Listen to the SolarWinds product management team as they show you how SolarWinds affordable, powerful, and easy-to-use solutions can scale your monitoring and management capabilities to hundreds of thousands of network devices, servers, or applications.
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Nane Kratzke
Elastic container platforms (like Kubernetes, Docker Swarm, Apache Mesos) fit very well with existing cloud-native application architecture approaches. So it is more than astonishing, that these already existing and open source available elastic platforms are not considered more consequently for multi-cloud approaches. Elastic container platforms provide inherent multi-cloud support that can be easily accessed. We present a solution proposal of a control process which is able to scale (and migrate as a side effect) elastic container platforms across different public and private cloud-service providers. This control loop can be used in an execution phase of self-adaptive auto-scaling MAPE loops (monitoring, analysis, planning, execution). Additionally, we present several lessons learned from our prototype implementation which might be of general interest for researchers and practitioners. For instance, to describe only the intended state of an elastic platform and let a single control process take care to reach this intended state is far less complex than to define plenty of specific and necessary multi-cloud aware workflows to deploy, migrate, terminate, scale up and scale down elastic platforms or applications.
This document provides an overview and agenda for the Splunk App for Stream, including:
- The architecture of the Stream Forwarder for capturing wire data and routing it to Splunk.
- The architecture of the App for Stream for analyzing wire data in Splunk.
- Examples of deployment architectures for ingesting wire data.
- A customer use case where wire data from the network helped provide visibility that log data could not due to access restrictions.
Similar to M|18 Scalability via Expendable Resources: Containers at BlaBlaCar (20)
MariaDB Paris Workshop 2023 - MaxScale 23.02.xMariaDB plc
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help boost feelings of calmness, happiness and focus.
MariaDB Paris Workshop 2023 - NewpharmaMariaDB plc
This document summarizes Newpharma's transition from a standalone database server to an enterprise MariaDB Galera cluster configuration between 2018-2023. It discusses the business needs that drove the change, including increased traffic and access to multiple data sources. Key benefits of the Galera cluster are highlighted like synchronous replication, read/write access from any node, and automatic node joining. Challenges of migrating like converting table types and splitting large transactions are also outlined. The transition has supported Newpharma's growth to over 100 million euro in turnover.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help boost feelings of calmness and well-being.
MariaDB Paris Workshop 2023 - MariaDB EnterpriseMariaDB plc
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
MariaDB Paris Workshop 2023 - Performance OptimizationMariaDB plc
MariaDB is an open-source database that is highly tunable and modular. It allows for various storage engines, plugins, and configurations to optimize performance depending on usage. Key aspects that impact performance include memory allocation, disk access, query optimization, and architecture choices like replication, sharding, or using ColumnStore for analytics. Solutions like MyRocks, Spider, MaxScale can improve performance for transactional or large scale workloads by optimizing resources, adding high availability, and distributing load.
MariaDB Paris Workshop 2023 - MaxScale MariaDB plc
The document outlines requirements and criteria for a database solution involving two buildings 30km apart with a WAN link. The chosen solution was MariaDB with Galera cluster for high availability and synchronous replication across sites, along with Maxscale for read/write splitting and failover. Maxscale instances on each site allow for zero downtime database patching and upgrades per site, while the Galera cluster provides structure-independent synchronous replication between sites.
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server MariaDB plc
MariaDB Enterprise Server 10.6 includes the following key features:
- New JSON functions and data types like UUID and INET4.
- Improved Oracle compatibility with function parameters.
- Enhanced partitioning capabilities like converting partitions.
- Optimistic ALTER TABLE for replicas to reduce downtime.
- Online schema changes without locking tables for improved performance.
- Security enhancements including password policies and privilege changes.
MariaDB SkySQL is a cloud database service that provides autonomous scaling, observability, and cloud backup capabilities. It offers multi-cloud and hybrid operations across AWS, Google Cloud, and on-premises databases. The service includes features like the Remote Observability Service (ROS) for monitoring across environments, and a Cloud Backup Service. It aims to provide a simple yet advanced service for scaling databases from small to extreme sizes with tools for automation, self-service, and unified operations.
The document discusses high availability solutions for MariaDB databases. It begins by defining high availability and concepts like Recovery Time Objective (RTO) and Recovery Point Objective (RPO). It then presents different MariaDB and MaxScale architectures that provide high availability, including single node, primary-replica, Galera cluster, and SkySQL solutions. Key aspects covered are automatic failover, load balancing, data filtering, and service level agreements.
Die Neuheiten in MariaDB Enterprise ServerMariaDB plc
This document summarizes new features in MariaDB Enterprise Server. Key points include:
- MariaDB Enterprise Server is geared toward enterprise customers and focuses on stability, robustness, and predictability.
- It has a longer release cycle than Community Server, with new versions every 2 years and long maintenance cycles. New features from Community Server are backported.
- Recent additions include analytics functions, JSON support, bi-temporal modeling, schema changes, database compatibility features, and security enhancements.
- The upcoming 23.x release will include new JSON functions, data types like UUID and INET4, Oracle compatibility features, partitioning improvements, and Galera enhancements.
SkySQL is the first and only database-as-a-service (DBaaS) to perform workload analysis with advanced deep learning models, identifying and classifying discrete workload patterns so DBAs can better understand database workloads, identify anomalies and predict changes.
In this session, we’ll explain the concepts behind workload analysis and show how it can be used in the real world (and with sample real-world data) to improve database performance and efficiency by identifying key metrics and changes to cyclical patterns.
SkySQL uses best-of-breed software, and when it comes to metrics and monitoring that means Prometheus and Grafana. SkySQL Monitor is built on both, and provides customers with interactive dashboards for both real-time and historic metrics monitoring. In addition, it meets the same high availability and security requirements as other SkySQL components, ensuring metrics are always available and always secure.
In this session, we’ll explain how SkySQL Monitor works, walk through its dashboards and show how to monitor key metrics for performance and replication.
Introducing the R2DBC async Java connectorMariaDB plc
Not too long ago, a reactive variant of the JDBC driver was released, known as Reactive Relational Database Connectivity (R2DBC for short). While R2DBC started as an experiment to enable integration of SQL databases into systems that use reactive programming models, it now specifies a full-fledged service-provider interface that can be used to retrieve data from a target data source.
In this session, we’ll take a look at the new MariaDB R2DBC connector and examine the advantages of fully reactive, non-blocking development with MariaDB. And, of course, we’ll dive in and get a first-hand look at what it’s like to use the new connector with some live coding!
The capabilities and features of MariaDB Platform continue to expand, resulting in larger and more sophisticated production deployments – and the need for better tools. To provide DBAs with comprehensive, consolidating tooling, we created MariaDB Enterprise Tools: an easy-to-use, modular command-line interface for interacting with any part of MariaDB Platform.
In this session, we will provide a preview of the MariaDB Enterprise Client, walk through current and planned modules and discuss future plans for MariaDB Enterprise Tools – including SkySQL modules and the ability to create custom modules.
Faster, better, stronger: The new InnoDBMariaDB plc
For MariaDB Enterprise Server 10.5, the default transactional storage engine, InnoDB, has been significantly rewritten to improve the performance of writes and backups. Next, we removed a number of parameters to reduce unnecessary complexity, not only in terms of configuration but of the code itself. And finally, we improved crash recovery thanks to better consistency checks and we reduced memory consumption and file I/O thanks to an all new log record format.
In this session, we’ll walk through all of the improvements to InnoDB, and dive deep into the implementation to explain how these improvements help everything from configuration and performance to reliability and recovery.
SkySQL implements a groundbreaking, state-of-the-art architecture based on Kubernetes and ServiceNow, and with a strong emphasis on cloud security – using compartmentalization and indirect access to secure and protect customer databases.
In this session, we’ll walk through the architecture of SkySQL and discuss how MariaDB leverages an advanced Kubernetes operator and powerful ServiceNow configuration/workflow management to deploy and manage databases on cloud infrastructure.
What to expect from MariaDB Platform X5, part 1MariaDB plc
MariaDB Platform X5 will be based on MariaDB Enterprise Server 10.5. This release includes Xpand, a fully distributed storage engine for scaling out, as well as many new features and improvements for DBAs and developers alike, including enhancements to temporal tables, additional JSON functions, a new performance schema, non-blocking schema changes with clustering and a Hashicorp Vault plugin for key management.
In this session, we’ll walk through all of the new features and enhancements available in MariaDB Enterprise Server 10.5. In addition, we will highlight those being backported to maintenance releases of MariaDB Enterprise Server 10.2, 10.3 and 10.4.
Enhanced data collection methods can help uncover the true extent of child abuse and neglect. This includes Integrated Data Systems from various sources (e.g., schools, healthcare providers, social services) to identify patterns and potential cases of abuse and neglect.
Build applications with generative AI on Google CloudMárton Kodok
We will explore Vertex AI - Model Garden powered experiences, we are going to learn more about the integration of these generative AI APIs. We are going to see in action what the Gemini family of generative models are for developers to build and deploy AI-driven applications. Vertex AI includes a suite of foundation models, these are referred to as the PaLM and Gemini family of generative ai models, and they come in different versions. We are going to cover how to use via API to: - execute prompts in text and chat - cover multimodal use cases with image prompts. - finetune and distill to improve knowledge domains - run function calls with foundation models to optimize them for specific tasks. At the end of the session, developers will understand how to innovate with generative AI and develop apps using the generative ai industry trends.
We are pleased to share with you the latest VCOSA statistical report on the cotton and yarn industry for the month of May 2024.
Starting from January 2024, the full weekly and monthly reports will only be available for free to VCOSA members. To access the complete weekly report with figures, charts, and detailed analysis of the cotton fiber market in the past week, interested parties are kindly requested to contact VCOSA to subscribe to the newsletter.
Did you know that drowning is a leading cause of unintentional death among young children? According to recent data, children aged 1-4 years are at the highest risk. Let's raise awareness and take steps to prevent these tragic incidents. Supervision, barriers around pools, and learning CPR can make a difference. Stay safe this summer!
4. Today’s
agenda
BlaBlaCar - Facts & Figures
Infrastructure Ecosystem - 100% containers powered carpooling
Backend High Availability Pillars - MariaDB as an example
Database as a Service - Building a frictionless infrastructure
What’s next?
6. 60 million
members
Founded
in 2006
1 million tonnes
less CO2
In the past year
30 million mobile
app downloads
iPhone and Android
5 million
monthly travellers
Currently in
22 countriesFrance, Spain, UK, Italy, Poland, Hungary, Croatia, Serbia, Romania,
Germany, Belgium, India, Mexico, The Netherlands, Luxembourg,
Portugal, Ukraine, Czech Republic, Slovakia, Russia, Brazil and Turkey.
Facts and Figures
9. Infrastructure Ecosystem
bare-metal servers
1 type of
hardware
3 disk profiles
fleet cluster
CoreOS
fleet etcd“Distributed init system”
Hardware
Container Registry
ggn
dgr
Service Codebase
rkt PODs
build
run
store
host
create mysqld
monitoring
nerve
mysql-main1
php
nginx
nerve
monitoring
synapse
front1
synapse
nerve
zookeeper Service Discovery
10. backend pod
client pod
Service Discovery
/database/node1
go-nerve does health checks
and reports to zookeeper in
service keys
node1
/database
Applications hit their local
haproxy to access backends
go-synapse watches
zookeeper service keys and
reloads haproxy if changes are
detected
HAProxy
go-nerve
Zookeeper
go-synapse
13. Asynchronous vs. Synchronous
Master
Slave Slave Slave
wsrep wsrep wsrep wsrep
MariaDB Cluster
wsrep
MariaDB Cluster means
No Single Point of
Failure
No Replication Lag
Auto States Transfers
As fast as the slowest
14. MySQL at BlaBlaCar?
wsrep wsrep wsrep wsrep
MariaDB Cluster
wsrep
MariaDB Cluster
Our prerequisites are
Containers
Writes go on one
node
Writes
Reads are balanced
on the others
Reads
19. If enableCheckStableCommand is set
The command is run at each
increase and if returning != 0,
current weight restart from 1.
Weight value is reached
The service is fully in
production.
go-nerve Zookeeper go-synapse HAProxy
call API on
/enable or
/weight/:weight
store current
weight
update weight on
HaProxy via
socket
set weight
<backend>/<server>
<weight>
20. # cat /report_slow_queries.sh
#!/dgr/bin/busybox sh
. /dgr/bin/functions.sh
isLevelEnabled "debug" && set -x
slwq=$(/usr/bin/timeout 1 /usr/bin/mysql -h127.0.0.1 -ulocal_mon -plocal_mon information_schema -e "SELECT COUNT(1) FROM processlist WHERE user
LIKE '%rd' AND LOWER(command) <> 'sleep' AND time > 1" -BN)
if [ $? -eq 0 ] && [ $slwq -eq 0 ]; then
return 0
else
return 1
fi
MySQL’s warm up in nerve
# cat env/prod-dc1/services/mysql-main/attributes/nerve.yml
---
override:
nerve:
services:
- name: "mysql-main"
port: 3306
reporters:
- {type: zookeeper, path: /services/mysql/main}
checks:
- type: sql
driver: mysql
datasource: "local_mon:local_mon@tcp(127.0.0.1:3306)/"
enableCheckStableCommand: ["/report_slow_queries.sh"]
23. API call /disable return
The service can be shutdown
without risk.
Call /disable on Nerve’s API
Set weight to 0 = no more new
sessions will go into the services.
if disableGracefullyDoneCommand is set
This command is run in loop until
return 0.
Gracefully
Disabling
Pipeline
24. # cat /report_remaining_processes.sh
#!/dgr/bin/busybox sh
. /dgr/bin/functions.sh
isLevelEnabled "debug" && set -x
procs=$(/usr/bin/timeout 1 /usr/bin/mysql -h127.0.0.1 -ulocal_mon -plocal_mon information_schema -e "SELECT COUNT(1) FROM processlist WHERE user
LIKE '%rd' OR user LIKE '%wr'" -BN)
if [ $? -eq 0 ] && [ $procs -eq 0 ]; then
return 0
else
return 1
fi
MySQL’s graceful shutdown in nerve
# cat env/prod-dc1/services/mysql-main/attributes/nerve.yml
---
override:
nerve:
services:
- name: "mysql-main"
port: 3306
reporters:
- {type: zookeeper, path: /services/mysql/main}
checks:
- type: sql
driver: mysql
datasource: "local_mon:local_mon@tcp(127.0.0.1:3306)/"
enableCheckStableCommand: ["/report_slow_queries.sh"]
disableGracefullyDoneCommand: ["/root/report_remaining_processes.sh"]
25. Be Quiet!
Come gently into prod
Abolish Slavery
Every node is the same
Die in Peace...
Get out when you are ready
Graceful restart
Service Discovery (nerve/synapse)
Weight system
Slow query tracking
Graceful restart
Service Discovery (nerve/synapse)
Weight system
No master/slave
Auto States Transferts
Service Discovery (nerve/synapse)
Backend High Availability Pillars
26. Database as a Service
Building a frictionless infrastructure
27. Easy deployment
Pull Request on a services
repository
No technical parameters to
override
The services are auto initialized
32. Prometheus with Nerve integration
$ cat pod-mysql/pod-manifest.yml
name: aci.blbl.cr/pod-mysql:10.1-33
pod:
apps:
- dependencies:
- aci.blbl.cr/aci-mariadb:10.1-29
app:
mountPoints:
- {name: mysql-data, path: /var/lib/mysql}
- {name: mysql-log, path: /var/log/mysql}
- name: aci-nerve
dependencies:
- aci.blbl.cr/aci-go-nerve:21-23
- aci.blbl.cr/aci-mariadb:10.1-29
- dependencies:
- aci.blbl.cr/aci-prometheus-mysql-exporter:0.10.0-1
# cat env/prod-dc1/services/mysql-main/attributes/nerve.yml
---
override:
nerve:
services:
- name: "{{.hostname}}"
port: 3306
reporters:
- {type: zookeeper, path: /services/mysql/main}
checks:
- type: sql
driver: mysql
datasource: "local_mon:local_mon@tcp(127.0.0.1:3306)/"
- name: "{{.hostname}}_prometheus"
port: 9104
reporters:
- {type: zookeeper, path: /monitoring/mysql/main}
# curl mysql-main1.prod.dc1.com:9104/metrics | head
# HELP mysql_exporter_last_scrape_duration_seconds Duration of the
last scrape of metrics from MySQL.
# TYPE mysql_exporter_last_scrape_duration_seconds gauge
mysql_exporter_last_scrape_duration_seconds 0.056807316
# HELP mysql_exporter_last_scrape_error Whether the last scrape of
metrics from MySQL resulted in an error (1 for error, 0 for success).
# TYPE mysql_exporter_last_scrape_error gauge
mysql_exporter_last_scrape_error 0
[...]
# cat env/prod-dc1/services/prometheus/attributes/prometheus.yml
[...]
ranged_targets:
- type: zk
job_name: discovery_prod-dc1
scrape_interval: 20s
metrics_path: /metrics
zk:
hosts: '{{ toJson .zk.hosts }}'
zkpaths:
- /monitoring
[...]
33. Prometheus relabeling
# [zk: localhost:2181(CONNECTED) 1] get /monitoring/mysql/main/mysql-main1_prometheus_192.168.1.2_ba0f1f8b
{"available":true,"host":"192.168.1.2","port":9104,"name":"mysql-main1","weight":255,"labels":{"host":"r11-srv1"}}
We push services info with Nerve into Zookeeper
And Prometheus does the magic
34.
35. $ cat prometheus-rules/alert.mysql.rules
# Alert: Galera node state is not synced.
ALERT MySQLGaleraStateIsNotSynced
IF (mysql_global_status_wsrep_local_state != 4 AND mysql_global_variables_wsrep_desync == 0)
FOR 2m
LABELS {
severity = "warning", team="data_infrastructure"
}
ANNOTATIONS {
summary = "Galera node {{ $labels.name }} state is not in “Synced” (state={{$value}}).",
dashboard = "https://promgrafana.blabla.com/dashboard/db/mysql-cluster-view?var-
cluster={{$labels.service}}&var-ds=prom-dc1&from=now-1h&to=now",
runbook="https://ops-run-book.blabla.com/mysql/operational-tasks#MySQLGaleraOutOfSync",
}
Alerting
PromQL to find out
unhealthy services
Labeling for routing to
Slack & Pager Duty
Annotations with
templating to have clear
descriptions, URL to
dashboards and ops
runbooks
37. A set of bash scripts Do the basic health
checks quickly
Easy troubleshooting with “bbc” command
Manage all backends
the same way
Can be used by non-
specialists
Plugged into the
service discovery
Designed for our
needs
38. # bbc mysql list
pp-dc2 mysql-main
pp-dc2 mysql-user
pp-dc2 mysql-trip
pp-dc2 mysql-payment
prod-dc1 mysql-main
prod-dc1 mysql-user
prod-dc1 mysql-trip
prod-dc1 mysql-payment
[...]
bbc command examples
# bbc mysql overview prod-dc1 mysql-main
=== Service Overview 'prod-dc1 mysql-main' ===
mysql-main1 (192.168.1.1) PING, PORT, Synced
---
mysql-main1 (3306) - enabled - weight = 255/255
mysql-main1_prometheus (9104) - enabled - weight = 255/255
mysql-main2 (192.168.1.2) PING, PORT, Synced
---
mysql-main2 (3306) - enabled - weight = 255/255
mysql-main2_prometheus (9104) - enabled - weight = 255/255
mysql-main3 (192.168.1.3) PING, PORT, Synced
---
mysql-main3 (3306) - enabled - weight = 255/255
mysql-main3_prometheus (9104) - enabled - weight = 255/255 # bbc mysql connect prod-dc1 mysql-main
env: prod-dc1
service: mysql-main
host: mysql-main1
ip: 192.168.1.1
Enter the username [ENTER]: team_data
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 2887129
Server version: 10.1.28-MariaDB-1~jessie mariadb.org binary distribution
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]>
# bbc mysql monitor prod-dc1 mysql-main mysql-main1
Weight: 255/255 Processes: 88 Slow: 0
Weight: 255/255 Processes: 75 Slow: 0
Weight: 255/255 Processes: 89 Slow: 0
Weight: 255/255 Processes: 99 Slow: 0
Weight: 255/255 Processes: 79 Slow: 0
Weight: 255/255 Processes: 65 Slow: 0
Weight: 255/255 Processes: 86 Slow: 0
Weight: 255/255 Processes: 93 Slow: 0
Weight: 255/255 Processes: 88 Slow: 0
Weight: 255/255 Processes: 96 Slow: 0
Weight: 255/255 Processes: 77 Slow: 0
Weight: 255/255 Processes: 73 Slow: 0
39. # bbc postgresql overview prod-dc1 postgresql-corridoring
Service Overview 'prod-dc1 postgresql-corridoring'
-- USING BDR --
postgresql-corridoring1 (192.168.1.10) PING, PORT
postgresql-corridoring2 (192.168.1.11) PING, PORT
postgresql-corridoring3 (192.168.1.12) PING, PORT
postgresql-corridoring4 (192.168.1.13) PING, PORT
postgresql-corridoring5 (192.168.1.14) PING, PORT
# bbc postgresql list
pp-dc2 postgresql-airflow
pp-dc2 postgresql-corridoring
pp-dc2 postgresql-redash
pp-dc2 postgresql-trip-pricing
prod-dc1 postgresql-corridoring
prod-dc1 postgresql-redash
bbc command examples
# bbc postgresql connect prod-dc1 postgresql-corridoring
env: prod-dc1
service: postgresql-corridoring - database : corridoring
host: postgresql-corridoring1
ip: 192.168.1.10
Enter the username [ENTER]: team_data
Password for user team_arch:
psql (9.6.6, server 9.4.12)
Type "help" for help.
corridoring=#
# bbc redis overview prod-dc1 redis-main
=== Service 'prod-dc1' 'redis-main' ===
Redis elector master: redis-main1.prod.dc-1.blabla.com
redis-main1 (192.168.1.20): PING, PORT, role:master, clients:255
redis-main2 (192.168.1.21): PING, PORT, role:slave, clients:2, slaveof:192.168.1.20
redis-main3 (192.168.1.22): PING, PORT, role:slave, clients:2, slaveof:192.168.1.20
# bbc redis list
pp-dc2 redis-main
pp-dc2 redis-quota
pp-dc2 redis-translation
pp-dc2 redis-user
prod-dc1 redis-main
prod-dc1 redis-quota
# bbc redis connect prod-dc1 redis-main
env: prod-dc1
service: redis-main
host: redis-main1
ip: 192.168.1.20
role: slave
192.168.1.20:6379>
40. # bbc cassandra ping prod-dc1 cassandra-user
cassandra-user1 (192.168.1.30) PING, CQL, JMX
---
cassandra-user2 (192.168.1.31) PING, CQL, JMX
---
cassandra-user3 (192.168.1.32) PING, CQL, JMX
---
bbc command examples
# bbc cassandra overview prod-dc1 cassandra-user
=== Service 'prod-dc1 cassandra-user' ===
Datacenter: prod-dc1
====================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 192.168.1.30 6.01 GB 256 33.3% bef39dd5-d4e5-4733-93e5-75904b6d556a r10
UN 192.168.1.31 5.89 GB 256 33.3% 23b77937-2177-4638-b860-e73e4bb913d2 r10
UN 192.168.1.32 5.12 GB 256 33.3% de0f4ed1-1241-499d-9485-e73e4bb913d2 r10
Datacenter: prod-dc2
====================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 192.168.2.10 15.69 GB 256 100.0% 3ca1e862-f3e2-4fbf-a6c1-4d7d5a3e70ec r14
UN 192.168.2.11 14.99 GB 256 100.0% de0f4ed1-1241-499d-9485-2f8196aa7425 r13
UN 192.168.2.12 16.1 GB 256 100.0% 7e5fee00-052f-4546-973d-befaebbe604b r15
Today, 32 subcommands are available on bbc...
42. Moving to Kubernetes
From a simple
“Distributed init
system” to the
standard for container
orchestration.
Fleet is deprecated
Fleet is no longer
developed and
maintained by
CoreOS.
What does
the future
look like?
43. Ownership
Move backends
ownership to the
developers teams.
Moving to the cloud?
Extend this idea of
“expendable” services to
hardware resources.
Docker?
Kubernetes + RKT
(rktnetes, rktlet) has a
poor adoption.