Releases: charles-001/dolphie
Releases · charles-001/dolphie
6.13.4
6.13.3
Bug Fixes
- Fix crash when toggling Group Replication panel: Resolved an
AttributeErrorcrash when pressing key4to toggle the Group Replication panel. The issue was caused bywidget.parentbeingNonewhen an async mount hadn't completed yet. - Added worker shutdown synchronization in
disconnect_tabto prevent race conditions with shared state.
Improvements
- Replication panel now displays all InnoDB clusters involved instead of just the node's cluster you're connected to
6.13.2
6.13.1
- Added dedicated Galera Cluster panel section with per-node tables showing state, flow control, certification, and writeset metrics
- MariaDB: Added support for
Zcommand to show table sizes - Performance optimizations for managing tabs
- Removed memory usage command (
mkey). I found this data to be wildly inaccurate and never used - Removed
pfs_metricsfrom default daemon mode panels. It makes the replay log's size substantially larger and is of questionable value for most users. It can be re-enabled via config if desired.
6.13.0
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
BaseProcesslistThreadto eliminate duplicated formatting methods between MySQL and ProxySQL processlist classes SHOW GLOBAL STATUSis 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_latencycalculations
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_posbetween replica and primary (analogous toMySQL'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)
6.11.4
- Fix rare crash due to worker threads directly updating UI elements which can be flaky
6.11.3
- Fix to support Python 3.9
6.11.2
This release is largely a refactor aimed at improving code organization and long-term maintainability, with additional fixes for inefficiencies that should slightly improve overall performance.
Merry Christmas!