PmaControl logo PmaControl
  • Home
  • PmaControl
    • AI Agents 13 on-premise agents
    • Plans Community, Cloud, On-Premise, Premium
    • Documentation Guides, API, architecture
    • Clients 28+ companies
    • FAQ 25 questions / 7 categories
    Databases
    • MariaDB 30 articles
    • MySQL 10 articles
    • Galera Cluster 6 articles
    • MaxScale 3 articles
    • ProxySQL 2 articles
    • Amazon Aurora MySQL 0 article
    • Azure Database 0 article
    • ClickHouse 0 article
    • GCP CloudSQL 0 article
    • Percona Server 0 article
    • SingleStore 0 article
    • TiDB 0 article
    • Vitess 0 article
    Solutions
    • Support 24×7 MariaDB & MySQL emergencies
    • Observabilité SQL Monitoring, alerts, topology
    • Haute disponibilité Replication, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Audit, GDPR, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Plans
  • Resources
    • Documentation Technical guides & API
    • FAQ 25 frequently asked questions
    • Testimonials Client feedback & use cases
    • Blog Articles & insights
    • Roadmap Upcoming features
    Areas of expertise
    • Observabilité SQL Monitoring, alerts, Dot3 topology
    • Haute disponibilité Replication, failover, Galera
    • Sécurité & conformité Audit, GDPR, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Quick links
    • GitHub Wiki 26 pages — install, engine, plugins
    • Source code Official GitHub repository
    • Support 24×7 MariaDB & MySQL emergencies
    • Book a demo 30 min — real architecture
  • Support 24×7
  • Book a demo
Book a demo
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Back to blog

PmaControl — April 2026 Sprint Recap: 114 Commits, MySQL 8.4, Binlog Analysis, IPv6

Published on April 15, 2026 By Aurélien LEQUOY
pmacontrol release mysql mariadb replication binlog ipv6 monitoring architecture
Share X LinkedIn Facebook Email PDF
PmaControl — April 2026 Sprint Recap: 114 Commits, MySQL 8.4, Binlog Analysis, IPv6

By the Numbers

  • 114 commits in 4 days
  • 266 PHPUnit tests, 738 assertions
  • 35 GitHub tickets addressed (20 closed, 15 open with proposed solution)
  • 12 new features
  • 0 regressions (all tests pass)

What's New

1. Full MySQL 8.4 Compatibility

MySQL 8.4 removed the SLAVE commands in favor of REPLICA. PmaControl now automatically detects the fork (MariaDB vs MySQL) and uses the correct syntax:

Action MariaDB MySQL 8.4+
Stop replication STOP SLAVE 'conn' STOP REPLICA FOR CHANNEL 'conn'
Change source CHANGE MASTER TO ... CHANGE REPLICATION SOURCE TO ...
Parallel threads slave_parallel_threads replica_parallel_workers
Master status SHOW MASTER STATUS SHOW BINARY LOG STATUS
GTID MASTER_USE_GTID = slave_pos SET PERSIST gtid_mode = ON (4 steps)

Enabling GTID on MySQL requires a progressive migration (OFF → OFF_PERMISSIVE → ON_PERMISSIVE → ON) on the master then the slave. PmaControl handles everything automatically, including SET PERSIST for persistence without touching my.cnf.

2. Binlog Analysis

New binlog analysis tool accessible from the replication page of each slave. Select a time range, and PmaControl:

  1. Downloads binlog files via the MySQL protocol (like an IO thread)
  2. Parses GTID events (parallelism, transaction sizes)
  3. Counts DML per table (INSERT/UPDATE/DELETE)
  4. Calculates volume per second
  5. Detects DDL (ALTER TABLE, DROP, etc.)
  6. Generates recommendations based on the actual config of both the master and the slave

Interactive charts:

  • Volume KB/s + replication lag (dual Y-axis, synchronized zoom)
  • Transactions/second + threads_running on master and slave
  • DML treemaps by database and table (recalculated on zoom)
  • DDL table color-coded by type (ALTER=orange, DROP=red, CREATE=green)

Smart caching: downloaded binlogs are stored in data/binlog_analysis/{server_id}/ with a 30-day TTL. An analysis on the same time range is near-instantaneous.

Security: MySQL credentials are no longer visible in ps aux — a temporary .my.cnf file with chmod 0600 is used instead.

3. Multi-Source Replication

MariaDB multi-source servers (like production_all which replicates from production_fr, production_uk, production_ro) now display:

  • Tabs: one per replication channel + a "+" tab to add a new source
  • Setup form: complete CHANGE MASTER (host, port, user, password, GTID, SSL, replicate_do_db)
  • Filtered charts: each tab only shows lag data for its channel

4. GeoIP IPv4 + IPv6

Country flags on the servers page now work with IPv6 addresses. The full GeoLite2 ranges (650K IPv4 + 1.95M IPv6 = 2.6M ranges) are imported into MariaDB for SQL lookups < 1ms.

5. Group Replication / InnoDB Cluster

New page under the Architecture > Group Replication menu:

  • Reliable role detection of PRIMARY/SECONDARY via performance_schema.replication_group_members
  • Display in the Dot3 graph (subgroups: Primary in green / Replica in blue)
  • ONLINE/RECOVERING/ERROR/OFFLINE state with colors

6. Redesigned Home Dashboard

The home page now displays:

  • KPIs: number of servers, availability (%), replication (%), daemons
  • Alerts: list of down servers (monitored only)
  • Distribution: environments, clients, versions (horizontal bars)
  • Daemons: compact grid with running/stopped/error badges

7. ReadOnly Role

New ReadOnly role (group_id=10) with 134 explicitly allowed actions, no wildcards. Forbidden: all writes, replication control, passwords, debug, heavy queries on information_schema, daemon control.

8. Redesigned Pages

  • Client/index: card grid with health bar, inline editing, monitoring toggle
  • Architecture/index: dark blue gradient header, clean SVG grid
  • Slave/show: multi-source tabs, Chart.js 4.5.1 charts with synchronized zoom

Bug Fixes

Security

  • connection_name sanitization against SQL injection in 5 methods
  • Whitelist of editable fields in Client::update()
  • Password hidden from process lists (--defaults-extra-file instead of --password=)

Stability

  • ts_value partitions desynchronized between tables (fix: per-table creation + today included)
  • Extraction2: sql_query_silent for missing partitions
  • Binlog analysis: stall detection instead of fixed timeout (120s without growth = kill)
  • testAccessReplication(): added BINLOG MONITOR for MariaDB 10.5+
  • slave_connections_needed_for_purge=0 before binlog purge

UI

  • Chart.js sparklines migrated from v2 to v4
  • Canvas ID collision on multi-channel charts
  • "Load previous day" always decrements even without data
  • Erratic tooltips fixed (nearest mode instead of index)
  • Sys schema column tooltips (100+ columns documented)

Roadmap — What's Left

Open Tickets (35)

Debian 13 Installer (7 tickets):

  • Predictable passwords (#123)
  • Cleartext credentials in /tmp/config.json (#117)
  • Private SSH key in the repo (#114)
  • MariaDB version ignored (#120)
  • /var/www ownership (#119)

Binlog Analysis:

  • Gantt timeline aligned with charts (#106)
  • Analysis launched twice (#122)
  • Non-atomic write cache for MySQL logs (#121)

Data Quality:

  • Lag normalization NULL → 0 (#113)
  • SSL state lost in MySQL 8 normalization (#116)
  • Home dashboard: SingleStore classified as MySQL (#130), PID reuse (#129), seconds_behind_source (#126)

Legacy:

  • Rename database with collation (#26)
  • LDAP encoding (#40)
  • Table names with hyphens in Graphviz (#65)
  • SqlFormatter deprecated strlen (#72)

Planned Improvements

  • Time-series aggregation: raw → 1min → 1hr → 1day with stddev for anomaly detection
  • Alerting: Telegram/email notifications for lag, server down, disk space
  • Plugin system: install/uninstall from GitHub
  • REST API: metrics exposure for external integration

Links

  • GitHub: github.com/PmaControl/PmaControl
  • Telegram: t.me/pmacontrol
  • Open tickets: Issues

PmaControl is an open-source MariaDB/MySQL monitoring tool. Contributions welcome.

Share X LinkedIn Facebook Email PDF
← Back to blog

Comments (0)

No comments yet.

Leave a comment

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Legal notice GitHub Contact
Do not wait for an incident to understand your architecture. © 2014-2026 PmaControl — 68Koncept