You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.2.0: multiprocessing support for 10k+ host polling
Add --workers flag to distribute hosts across multiple processes,
each with its own asyncio event loop and SNMP engine pool.
Single-process mode (--workers 1) remains the default and is
unchanged from v0.1.0.
See CHANGELOG.md for the full list of changes.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+17Lines changed: 17 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
4
4
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
7
+
## [0.2.0] - 2026-04-06
8
+
9
+
### Added
10
+
-**Multiprocessing support** — `--workers N` distributes hosts across N worker processes, each with its own asyncio event loop and SNMP engine pool. Enables polling 10,000+ hosts in parallel.
11
+
-`poll_host()` coroutine — returns result dict instead of writing to file, used by worker processes
12
+
-`_partition_hosts()` — splits host records into roughly-equal chunks for worker distribution
13
+
-`_worker_process()` — child process entry point with independent engine pool and event loop
14
+
-`_run_multiprocess()` — supervisor that spawns workers, collects results via `multiprocessing.Queue`, writes output centrally (no file contention)
15
+
- Scalability benchmark suite (`tests/integration/test_scalability.py`) — 50 containers, compares engine pool strategies, measures concurrency speedup
16
+
- Unit tests for `_partition_hosts` (5 tests) and `poll_host` (4 tests)
17
+
- CLI tests for `--workers` flag (4 tests)
18
+
19
+
### Changed
20
+
-`--engine-pool-size` now applies per worker process (was global)
21
+
-`_build_result()` extracted from `get_async` to share result-building logic between single-process and multiprocessing paths
0 commit comments