NVIDIA / NVIDIA/nvcf

Deprecate large responses and plan removal

Open
#495 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
218
Forks
72
Avg merge
1d 12h
Merged PRs (30d)
427

Description

Why

PR #443 fixes a race in the multipart large-response upload path, but large responses are deprecated. Instead of continuing to harden this path, we should mark the feature deprecated in the codebase and plan its removal.

Keeping the active implementation around creates maintenance cost for a feature that should not receive new investment.

Code references found

  • src/compute-plane-services/worker-utils/worker/large.go: ZIP upload, multipart upload, redirect response, and large-response metrics.
  • src/compute-plane-services/worker-utils/worker/refresh.go: refreshes large-response upload credentials.
  • src/invocation-plane-services/http-invocation/crates/server/src/routes/post_pexec.rs: injects large_response_url into worker invoke requests.
  • src/invocation-plane-services/http-invocation/crates/server/src/s3/mod.rs: creates presigned upload and download URLs for large responses.
  • src/invocation-plane-services/http-invocation/crates/server/tests/test_large_response.rs: integration coverage for the feature.
  • src/compute-plane-services/worker-utils/{worker,service}/**/*test.go: worker/service tests that exercise large-response behavior.
  • src/**/proto/nvcf.proto and generated *.pb.go: worker API fields and RPCs such as largeResponseUrl, RefreshLargeUploadCredentials, MultipartLargeUploadCredentials, and RequestLargeResponseDownloadCredentials.
  • examples/load-tests/README.md: load-test entries for large responses.

Proposed work

  • Mark large responses as deprecated in the canonical proto/API comments and any user-facing docs that still mention the feature.
  • Remove or disable active large-response behavior once compatibility constraints are resolved.
  • Remove obsolete tests, load-test entries, metrics, S3 credential plumbing, and generated proto surfaces as part of the removal.

References

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the canonical proto definitions in src/**/proto/nvcf.proto, then trace the references in worker/large.go, worker/refresh.go, post_pexec.rs, and s3/mod.rs. Review test_large_response.rs and the worker/service tests to identify compatibility constraints. Done means the deprecation scope is documented across the API and user-facing docs, with a clear removal plan for the active paths and related tests, metrics, credentials, and load-test entries.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, rust
Domain
api, backend-api-design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.