rush
Package designed to solve large-scale problems asynchronously across a distributed network
Rush spent 2026 making distributed task ownership correct, starting with a breaking 1.0.
◆Recent moves
- 21d ago
Workers start in their own mirai call so they can create local daemons
Replacing the single mirai_map() dispatch with one mirai() call per worker allows nested parallelism — a worker can now spin up its own daemons. A small change with real consequences for anyone running parallel learners inside a distributed tuning run.
View source ↗ - 1mo ago
Task lifecycle moves onto the worker; worker ids can no longer collide
The methods that mark a task failed, finished, running or popped move from Rush to RushWorker, so only the worker that processed a task changes its state. Worker ids gain random suffixes, deprecated local/remote worker types are removed, and Redis 7.0 becomes a declared system requirement.
View source ↗ - 3mo ago
Phantom failed tasks and missed results fixed
detect_lost_workers() no longer invents failed tasks when a worker dies between evaluations, and fetch_new_tasks() tracks seen results by actual cache size rather than the Redis counter, closing a window where results could be missed or duplicated.
View source ↗ - 4mo ago
Smaller Redis payloads and vector-valued task parameters
start_workers() strips the enclosing environment from worker_loop before serialisation, so closures stop bloating Redis payloads, and task fetching survives parameters holding vectors rather than scalars.
View source ↗ - 4mo ago
Rush 1.0 rewrites the task lifecycle and drops the seed mechanism
⚡ SPARKThe release that set the shape of everything since: the result cache becomes a data.table, wait and fetch collapse into a single fetch_new_tasks() with a timeout, push_results() and push_failed() are renamed to finish_tasks() and fail_tasks(), and the RNG seed machinery is removed outright. Every subsequent release refines the ownership model this one established.
View source ↗ - 9mo ago
wait_for_workers() can target a count or specific ids
Waiting becomes precise — a specific number of workers or a named set — and registration is checked against the network. An early step toward the worker-identity work 1.2.0 finished.
View source ↗