Nils Andreas Svee
b4638344a7
style(reflector): remove redundant comment in reflector selector
...
Eliminate an outdated comment to improve code readability and maintain a clean codebase.
2026-07-21 15:31:40 +07:00
Nils Andreas Svee
b315cbca56
refactor(baseliner): Replace shared Mutex state with thread-safe control snapshots
...
Eliminate lock contention between the baseliner, ratecontroller, and selector by moving to a message-passing architecture using immutable snapshots of reflector state. This improves data consistency and simplifies cross-thread communication.
2026-07-21 15:05:25 +07:00
Nils Andreas Svee
4aaf8fa100
chore: add SPDX license identifiers and copyright headers to source files
...
Apply the MPL-2.0 license to all source files and include the full license text to ensure legal compliance and proper attribution.
2026-04-23 12:39:52 +07:00
Nils Andreas Svee
3322e82b6c
refactor: replace std::sync::mpsc with flume for improved channel performance
...
Migrate internal message passing to flume to leverage better performance and additional features like eventual fairness and selection.
2026-04-22 22:39:06 +07:00
Nils Andreas Svee
ea19c6d68b
style: remove unused synchronization imports
...
Eliminate unused Arc, Mutex, and RwLock imports to clean up codebase and reduce compiler warnings.
2026-04-22 22:26:44 +07:00
Nils Andreas Svee
a81d208c0d
style: refine logging verbosity and improve diagnostic messages
...
Demote baseline telemetry to debug level, add context to rate controller warnings, and remove redundant string conversions in reflector selection logs.
2026-04-22 22:09:26 +07:00
Nils Andreas Svee
d0e3394f03
refactor: add ArcMutex/ArcRwLock type aliases
...
Replace repeated Arc> and Arc> with concise type aliases for readability.
2026-04-18 19:04:35 +02:00
Nils Andreas Svee
bda1a44b6e
feat(threads): Add graceful shutdown checks to worker loops
2026-04-14 02:03:53 +07:00
Nils Andreas Svee
f8976a78a2
feat(metrics): support arbitrary event tags and enhance monitoring coverage
...
Enable key-value metadata for events to track dry-run status and introduce new monitoring events for rate controller failure states.
2026-04-14 01:45:07 +07:00
Nils Andreas Svee
2db63e6159
refactor(reflector_selector): migrate to MetricsSender for event dispatch
2026-04-13 18:57:50 +07:00
Nils Andreas Svee
530a715bdf
fix(observability): refresh metric timestamps on each loop iteration
...
Move clock initialization inside processing loops to ensure exported metrics reflect the current time rather than a stale timestamp.
2026-04-13 16:32:30 +07:00
Nils Andreas Svee
5af5b6597b
feat(observability): report reflector selection events and outcomes
...
Emit metrics detailing why a reflector reselection was triggered and which peers were selected to improve selection process visibility.
2026-04-13 15:28:56 +07:00
Nils Andreas Svee
da3487e506
feat(observability): make metrics collection optional and granular
...
Wrap metrics senders in Option and conditionally initialize the monitoring thread to support granular configuration and reduced overhead.
2026-04-13 15:22:15 +07:00
Nils Andreas Svee
671e3f2671
refactor: standardize channel naming with tx and rx suffixes
...
Rename internal channel senders and receivers to follow standard Rust conventions for improved code consistency and readability.
2026-04-13 15:07:00 +07:00
Nils Andreas Svee
e5ba021a96
feat(observability): Pass metrics sender to rate controller and reflector selector
2026-04-13 15:01:46 +07:00
Nils Andreas Svee
c116dd3e74
refactor(sync): Replace unwrap with anyhow-based locking
2026-02-22 16:57:11 +07:00
Nils Andreas Svee
d4ad24ce4a
feat(util): Introduce Mutex/RwLock error handling traits
2026-02-22 16:57:02 +07:00
Nils Andreas Svee
1357a23578
fix(reflector): Remove no-op 'len()' call
2026-02-22 12:13:14 +07:00
Nils Andreas Svee
830e21363a
refactor: replace rand crate with fastrand
...
Replaces the `rand` crate with `fastrand` for improved performance in rate control and reflector selection.
2026-02-22 00:33:57 +07:00
Nils Andreas Svee
99a7928a66
style(reflector): Reorder imports and truncate vector
2026-02-21 22:42:20 +07:00
Nils Andreas Svee
127ed692c3
refactor(reflector): Improve candidate selection loop
2026-02-21 22:42:20 +07:00
Nils Andreas Svee
66a2834192
feat(reflector): Use configurable reselection time
2026-02-21 22:42:20 +07:00
Nils Andreas Svee
a427d4078b
chore(deps): Update rand and log imports
2026-02-21 00:22:57 +07:00
Nils Andreas Svee
3b9f00cd75
fix: account for rand crate changes
2025-05-08 23:48:38 +07:00
Nils Andreas Svee
bb9d1ed4af
reflector_selector: Simplify setting sleep time
2022-10-29 22:43:47 +02:00
Nils Andreas Svee
cacc5b1a6b
Apply Clippy recommendations
2022-10-15 14:58:05 +02:00
Nils Andreas Svee
890b3f8c19
Drop pub(crate) and use pub everywhere for now
2022-10-04 16:25:42 +02:00
Nils Andreas Svee
214ffef6f3
Use proper error handling instead of lurking panics everywhere
2022-10-04 16:20:24 +02:00
Nils Andreas Svee
9219ac690a
Use a RwLock instead of a Mutex for the peers
2022-09-28 00:43:48 +02:00
Nils Andreas Svee
e3b7b7e9ba
Implement missing features, some cleanup
2022-09-28 00:25:35 +02:00
Nils Andreas Svee
b147006a69
partly working implementation
2022-09-17 14:39:27 +02:00