Skip to content

Commit 5dd69b7

Browse files
committed
docs: add v1.2.5 release documentation
- Added CHANGELOG entry for v1.2.5 - Created comprehensive release notes (docs/releases/v1.2.5.md) - Updated release notes index - Documents log level fix for unknown_table_id events
1 parent 0a4bd1b commit 5dd69b7

File tree

3 files changed

+189
-2
lines changed

3 files changed

+189
-2
lines changed

CHANGELOG.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.2.5] - 2025-11-22
11+
12+
### Fixed
13+
14+
- Fixed excessive warning logs for multi-table databases
15+
- Changed log level from warning to debug for unknown table ID events
16+
- Affects write_rows, update_rows, and delete_rows binlog events
17+
- Reduces log noise in production environments with multiple tables where only specific tables are replicated
18+
1019
## [1.2.4] - 2025-11-21
1120

1221
### Fixed
@@ -214,7 +223,9 @@ Initial release of MygramDB with core search engine functionality and MySQL repl
214223

215224
---
216225

217-
[Unreleased]: https://github.com/libraz/mygram-db/compare/v1.2.3...HEAD
226+
[Unreleased]: https://github.com/libraz/mygram-db/compare/v1.2.5...HEAD
227+
[1.2.5]: https://github.com/libraz/mygram-db/compare/v1.2.4...v1.2.5
228+
[1.2.4]: https://github.com/libraz/mygram-db/compare/v1.2.3...v1.2.4
218229
[1.2.3]: https://github.com/libraz/mygram-db/compare/v1.2.2...v1.2.3
219230
[1.2.2]: https://github.com/libraz/mygram-db/compare/v1.2.1...v1.2.2
220231
[1.2.1]: https://github.com/libraz/mygram-db/compare/v1.2.0...v1.2.1

docs/releases/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ This directory contains detailed release notes for each version of MygramDB.
44

55
## Available Versions
66

7-
- [v1.2.4](v1.2.4.md) - Latest release (2025-11-21) - Critical Bug Fix
7+
- [v1.2.5](v1.2.5.md) - Latest release (2025-11-22) - Log Noise Reduction
8+
- [v1.2.4](v1.2.4.md) - 2025-11-21 - Critical Bug Fix
89
- [v1.2.3](v1.2.3.md) - 2025-11-20
910
- [v1.2.2](v1.2.2.md) - 2025-11-20
1011
- [v1.2.1](v1.2.1.md) - 2025-11-19

docs/releases/v1.2.5.md

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
# MygramDB v1.2.5 Release Notes
2+
3+
**Release Date:** 2025-11-22
4+
**Type:** Patch Release (Log Noise Reduction)
5+
6+
---
7+
8+
## Overview
9+
10+
Version 1.2.5 is a patch release that addresses excessive warning logs in production environments with multi-table databases. When only specific tables are replicated, binlog events for non-replicated tables were incorrectly logged at warning level, causing significant log noise.
11+
12+
## Fixed Issues
13+
14+
### 1. Excessive Warning Logs for Multi-Table Databases
15+
16+
**Problem:** In production environments with multiple tables in the MySQL database where only specific tables are configured for replication in MygramDB, warning logs were generated for every binlog event (INSERT/UPDATE/DELETE) on non-replicated tables.
17+
18+
**Impact:**
19+
- Log files filled with repetitive warning messages
20+
- Difficult to identify actual issues in logs
21+
- Unnecessary disk I/O and storage consumption
22+
- Performance overhead from excessive logging
23+
24+
**Example Log Output (Before Fix):**
25+
```
26+
[2025-11-22 01:05:43.558] [warning] {"event":"mysql_binlog_warning","type":"unknown_table_id","event_type":"update_rows","table_id":"88"}
27+
[2025-11-22 01:05:46.661] [warning] {"event":"mysql_binlog_warning","type":"unknown_table_id","event_type":"update_rows","table_id":"88"}
28+
[2025-11-22 01:05:47.903] [warning] {"event":"mysql_binlog_warning","type":"unknown_table_id","event_type":"update_rows","table_id":"88"}
29+
... (hundreds or thousands of similar entries)
30+
```
31+
32+
**Solution:**
33+
- Changed log level from `warning` to `debug` for unknown table ID events
34+
- Changed event type from `mysql_binlog_warning` to `mysql_binlog_debug`
35+
- Applied to all three binlog event handlers: write_rows, update_rows, delete_rows
36+
37+
**Technical Details:**
38+
- Modified: `src/mysql/binlog_event_parser.cpp`
39+
- Changed 3 locations (lines 208, 296, 388)
40+
- Events for non-replicated tables are now logged only when debug logging is enabled
41+
42+
**Root Cause:**
43+
These events are **expected behavior** for databases with multiple tables when only specific tables are configured for replication. They should not be treated as warnings but as informational debug events.
44+
45+
## Migration Guide
46+
47+
### From v1.2.4
48+
49+
**No configuration changes required.** This is a transparent log level adjustment.
50+
51+
**Upgrade Steps:**
52+
53+
**Docker users:**
54+
55+
```bash
56+
# Pull the new image
57+
docker pull ghcr.io/libraz/mygram-db:v1.2.5
58+
59+
# Or update docker-compose.yml
60+
services:
61+
mygramdb:
62+
image: ghcr.io/libraz/mygram-db:v1.2.5
63+
```
64+
65+
**RPM users:**
66+
67+
```bash
68+
# Download and install new RPM
69+
sudo rpm -Uvh mygramdb-1.2.5-1.el9.x86_64.rpm
70+
```
71+
72+
**Source build:**
73+
74+
```bash
75+
git checkout v1.2.5
76+
cmake -B build -DCMAKE_BUILD_TYPE=Release
77+
cmake --build build --parallel
78+
```
79+
80+
### Observing Debug Logs (Optional)
81+
82+
If you want to see these debug events for troubleshooting:
83+
84+
**Change log level in configuration:**
85+
86+
```yaml
87+
logging:
88+
level: "debug" # Change from "info" or "warning"
89+
```
90+
91+
**Or set environment variable:**
92+
93+
```bash
94+
export LOG_LEVEL=debug
95+
```
96+
97+
### Rollback Procedure
98+
99+
If issues arise, rollback is straightforward:
100+
101+
```bash
102+
# Docker
103+
docker pull ghcr.io/libraz/mygram-db:v1.2.4
104+
105+
# RPM
106+
sudo rpm -Uvh --oldpackage mygramdb-1.2.4-1.el9.x86_64.rpm
107+
```
108+
109+
## Compatibility
110+
111+
**MySQL Versions:**
112+
- MySQL 8.0.x ✓
113+
- MySQL 8.4.x ✓
114+
- MariaDB 10.x ✓
115+
116+
**Operating Systems:**
117+
- Linux (all major distributions)
118+
- macOS (development/testing)
119+
120+
**Breaking Changes:** None
121+
122+
**Deprecated Features:** None
123+
124+
## Performance Impact
125+
126+
**Positive performance impact:**
127+
- Reduced disk I/O from excessive logging
128+
- Lower CPU usage from log processing
129+
- Reduced log file storage requirements
130+
- In busy production systems with frequent updates to non-replicated tables, this can significantly reduce logging overhead
131+
132+
## Benefits
133+
134+
1. **Cleaner Logs:** Warning-level logs now contain only actual issues requiring attention
135+
2. **Easier Debugging:** Real problems are no longer buried in noise
136+
3. **Reduced Storage:** Less disk space consumed by log files
137+
4. **Better Performance:** Lower I/O and CPU overhead from logging
138+
5. **Operational Efficiency:** Easier log monitoring and alerting
139+
140+
## Known Issues
141+
142+
None.
143+
144+
## Upgrade Recommendation
145+
146+
**Priority:** Medium for production systems with:
147+
- Multi-table MySQL databases
148+
- Only specific tables replicated to MygramDB
149+
- Active log monitoring or alerting
150+
- Limited disk space for logs
151+
152+
**Priority:** Low for:
153+
- Single-table replication setups
154+
- Development/testing environments
155+
- Systems without active log monitoring
156+
157+
## Related Issues
158+
159+
This issue was discovered during production verification of v1.2.4 on europa-mydb02v3 server, where table ID 88 (non-replicated table) generated warnings for every update operation.
160+
161+
## Contributors
162+
163+
- @libraz
164+
165+
## Links
166+
167+
- [Full Changelog](https://github.com/libraz/mygram-db/compare/v1.2.4...v1.2.5)
168+
- [Docker Image](https://github.com/libraz/mygram-db/pkgs/container/mygram-db)
169+
- [Configuration Reference](../en/configuration.md)
170+
- [Logging Guide](../en/configuration.md#logging)
171+
172+
---
173+
174+
**Questions or Issues?**
175+
Please open an issue on [GitHub Issues](https://github.com/libraz/mygram-db/issues)

0 commit comments

Comments
 (0)