mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-06 13:27:43 +00:00
7172e151de
Co-authored-by: heihutu <heihutu@gmail.com> Co-authored-by: houseme <housemecn@gmail.com>
57 lines
2.3 KiB
Markdown
57 lines
2.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to the rustfs-io-core and rustfs-io-metrics crates will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [0.0.5] - 2025-01-XX
|
|
|
|
### Added
|
|
|
|
#### rustfs-io-core
|
|
- **IoScheduler**: Adaptive I/O scheduler with buffer size calculation
|
|
- **IoPriorityQueue**: Priority queue with starvation prevention
|
|
- **BackpressureMonitor**: System overload protection with dual watermark
|
|
- **DeadlockDetector**: Wait-for graph based deadlock detection
|
|
- **LockOptimizer**: Adaptive spin lock optimization
|
|
- **RequestTimeoutWrapper**: Dynamic timeout calculation
|
|
- **Buffer size functions**: `calculate_optimal_buffer_size`, `get_buffer_size_for_media`, etc.
|
|
- **Configuration types**: `IoSchedulerConfig`, `BackpressureConfig`, `DeadlockDetectorConfig`, etc.
|
|
|
|
#### rustfs-io-metrics
|
|
- **CacheConfig**: L1/L2 tiered cache configuration
|
|
- **AdaptiveTTL**: Dynamic TTL adjustment based on access frequency
|
|
- **AccessTracker**: Cache item access pattern tracking
|
|
- **Metrics recording functions**: I/O, cache, backpressure, deadlock, lock, timeout metrics
|
|
- **Unified configuration**: `IoConfig`, `CacheSettings`, `IoSchedulerSettings`, etc.
|
|
- **Bandwidth monitoring**: Real-time bandwidth observation
|
|
|
|
### Changed
|
|
- Migrated core I/O scheduling algorithms from `rustfs::storage::concurrency` to `rustfs-io-core`
|
|
- Migrated metrics and configuration to `rustfs-io-metrics`
|
|
- Updated `rustfs::storage::concurrency::mod.rs` to re-export new module types
|
|
- Added API compatibility tests
|
|
|
|
### Fixed
|
|
- Improved buffer size calculation for different storage media
|
|
- Enhanced deadlock detection with cycle detection algorithm
|
|
- Better backpressure state transitions
|
|
|
|
### Documentation
|
|
- Added comprehensive README.md for both crates
|
|
- Added design documentation for I/O scheduler, backpressure, deadlock detection
|
|
- Added metrics guide and configuration reference
|
|
- Added runnable example code
|
|
|
|
### Migration Notes
|
|
- All original APIs in `rustfs::storage::concurrency` are preserved
|
|
- New types are re-exported for gradual migration
|
|
- No breaking changes to existing code
|
|
|
|
## [0.0.4] - Previous Version
|
|
|
|
### Note
|
|
This changelog starts with version 0.0.5 which includes the concurrency module migration.
|
|
For previous versions, see the git history.
|