Files
rustfs/crates/io-core/CHANGELOG.md
T
2026-03-30 00:30:57 +08:00

2.3 KiB

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, and this project adheres to Semantic Versioning.

[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.