Skip to content

[WIP] feat(spider-huntsman): Huntsman e2e dev branch. DO NOT MERGE!!!#370

Draft
sitaowang1998 wants to merge 80 commits into
y-scope:mainfrom
sitaowang1998:huntsman-dev-e2e
Draft

[WIP] feat(spider-huntsman): Huntsman e2e dev branch. DO NOT MERGE!!!#370
sitaowang1998 wants to merge 80 commits into
y-scope:mainfrom
sitaowang1998:huntsman-dev-e2e

Conversation

@sitaowang1998

Copy link
Copy Markdown
Collaborator

Description

Checklist

  • The PR satisfies the contribution guidelines.
  • This is a breaking change and that has been indicated in the PR title, OR this isn't a
    breaking change.
  • Necessary docs have been updated, OR no docs need to be updated.

Validation performed

sitaowang1998 and others added 30 commits June 26, 2026 16:31
# Conflicts:
#	components/spider-proto-rust/src/generated/storage.rs
#	components/spider-proto/storage/storage.proto
#	components/spider-scheduler/src/storage_client/grpc.rs
sitaowang1998 and others added 24 commits June 29, 2026 15:59
# Conflicts:
#	components/spider-scheduler/src/error.rs
#	components/spider-scheduler/src/lib.rs
#	components/spider-scheduler/src/service.rs
# Conflicts:
#	components/spider-scheduler/src/storage_client/grpc.rs
…earch benchmarks.

* workers: 2 -> 16.
* scheduler ready_task_capacity: 1024 -> 65536, so the scheduler can hold every
  simultaneously-ready task across many concurrent flat jobs (N jobs x M archives) instead of
  backpressuring and de-fairing them.
* scheduler dispatch_queue_capacity: 256 -> 32.
Runs a multi-worker CLP search over a directory of CLP archives by fanning the work across a live
Spider stack (one task per archive), for benchmarking Spider on an embarrassingly-parallel search
workload.

* huntsman-clp-search-tasks: TDL package `clp_search` exposing `clp_search::search`, which runs
  `clp-s s <archive> <query>` and redirects its output to a per-task file (no task output).
* huntsman-clp-search-client: discovers archives, builds a flat one-task-per-archive Spider job,
  submits/starts/polls it, prints the concatenated results to stdout, and reports a per-phase
  timing breakdown (query_processing / spider_execution / post_processing) on stderr.
* huntsman-clp-search-pool-ref: a no-Spider local process-pool baseline for the same workload,
  used to isolate Spider's scheduling overhead.
* Wire the crates into the workspace and stage `libclp_search.so` in `task build:packages`.
* Add a README describing usage and internals for future reuse.
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b3ed431e-c6e1-41ce-9ee9-a83475e399ff

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

sitaowang1998 and others added 5 commits July 2, 2026 22:43
…ing metrics.

* Execution manager: log per-task `scheduler_next_task_us`, `register_task_instance_us`, and
  `task_executor_execute_us` (structured, with job/task ids) around the scheduler fetch, the storage
  registration, and the task-executor round-trip.
* Execution manager: propagate `RUST_LOG` to the spawned task executor so the executor and the
  dlopened TDL package honor the same log level.
* Scheduler: log a timestamped `Dispatched a task assignment` event at dispatch, for measuring
  scheduling overhead (first-dispatch time vs the client's job-start time).
…le, and a clp-s-timing baseline.

* Client: time `submit_job` and `start_job` separately; emit `client_job_start_epoch_us` for the
  scheduling-overhead calculation; shuffle archives before submission by default, with `--no-shuffle`
  to submit them in sorted order.
* Task: time the `clp-s` subprocess and log it (structured, with job/task ids) via a package-local
  tracing subscriber -- a dlopened cdylib has its own tracing dispatcher, so the executor's
  subscriber cannot see its events.
* pool-ref: shuffle archives to match the client, and print the per-archive `clp-s` execution
  distribution so its cost can be compared against Spider's.
* Document the new flags and the per-task metrics in the README.
… for search benchmarks.

* Scheduler: dispatch_queue_capacity 32 -> 64; storage_poll_timeout_ms 1000 -> 10;
  tick_interval_ms 10 -> 5 (react faster when short tasks drain the dispatch queue).
* Storage: enable ready_queue_config with task_capacity 1048576 so many concurrent ready tasks
  never backpressure the ready queue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants