github charles-001/dolphie 6.13.0

one day ago

This release includes significant performance optimizations across the board, a major overhaul of the replay system to reduce storage and improve navigation, and full GTID support for MariaDB replicas with errant transaction detection. You should notice that Dolphie overall feels smoother and faster.

Performance & Optimization

  • Refactored all panel files to use a unified DataTable update pattern: build row values once, then update changed cells or insert new rows, eliminating duplicated update-vs-insert logic
  • Panel mutations are now wrapped in batch_update() with sorting only triggered when data actually changes
  • Smart stale row removal: bulk clear() when removals exceed remaining rows
  • Extracted BaseProcesslistThread to eliminate duplicated formatting methods between MySQL and ProxySQL processlist classes
  • SHOW GLOBAL STATUS is now filtered to only needed variables instead of fetching all
  • Simplified tab reconnection by reusing existing tab instead of create-copy-remove cycle
  • Added division-by-zero guards for polling_latency calculations

Replay System

  • Added delta format for daemon mode metrics - stores only the latest value per cycle instead of full 10-minute history (~600x reduction per row). Replay plays should be significantly smaller with this change!
  • Zstd compressor/decompressor objects are now cached instead of recreated per call
  • Gap-safe backward navigation (seek_to_previous_id) using proper SQL queries instead of ID arithmetic
  • Large time gaps (e.g. daemon restart) are detected and the 10-minute rolling window is rebuilt instead of appending stale data

MariaDB GTID Support

  • Retrieved GTID and Executed GTID rows are displayed with color-highlighted primary server IDs, matching the MySQL GTID display format
  • Errant transaction detection for MariaDB replicas by comparing gtid_current_pos between replica and primary (analogous to MySQL's GTID_SUBTRACT())

MySQL Replication

  • Fixed errant transaction false positives in multi-source MySQL replication by excluding all replication source UUIDs (not just the primary's)

Don't miss a new dolphie release

NewReleases is sending notifications on new releases.