Repository navigation
feat: deploy scenes in batches when the content server supports it - #1635
Open
LautaroPetaccio wants to merge 3 commits into
Open
LautaroPetaccio wants to merge 3 commits into
LautaroPetaccio wants to merge 3 commits into
Conversation
Deploys go through dcl-catalyst-client's deployPartial (ADR-325) when the installed client provides it, printing progress per batch. Servers without partial deployment support get the single-request upload when the scene fits in one request, and a clear error otherwise. The published client (22.0.0) does not ship deployPartial yet, so it is detected at runtime and the CLI keeps uploading in a single request until the dependency is bumped to a release that includes it.
Contributor
Test this pull request
|
Batching adds a round trip per batch plus the server's staging work, so for small scenes a single request is faster. Deployments under 50 MiB now always use deploy(); larger ones use deployPartial() when the client has it, with the existing single-request fallback.
deploy used the client's default batch size of 100 MiB. A 150 MiB scene therefore went out in two sequential requests, and the server stored the first batch before the client sent anything else. Batches are now 32 MiB, sent three at a time once the entity is staged, so the server stores one batch while the next is still uploading. A file is never split across batches, so a file larger than 32 MiB gets a batch of its own size instead of failing the upload.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
sdk-commands deployuploads scenes in size-bounded batches (decentraland/adr#325) when the catalyst client supports it, so scenes larger than the ~200 MB request ceiling can deploy to both Genesis City and Worlds. It prints progress per batch. Scenes under 50 MiB always upload in a single request, which is faster for small scenes.DEPLOY_PARTIAL_NOT_SUPPORTEDotherwise.DEPLOY_UPLOAD_FAILEDwith the server's response body.The published
dcl-catalyst-client(22.0.0) doesn't havedeployPartialyet, so the CLI detects it at runtime and keeps doing single-request uploads until decentraland/catalyst-client#491 is released. Then bump the client insdk-commandsand runmake sync-deps.How to test
make build && make lint, then thesdk-commandstests (newtest/sdk-commands/commands/deploy/upload.spec.ts).sdk-commands deploy --target-content <worlds server>and check the batch progress lines and the final preview message.