• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

decentraland / deployments-to-sqs
91%
main: 91%

Build:
Build:
LAST BUILD BRANCH: 1.2.0
DEFAULT BRANCH: main
Repo Added 17 Oct 2024 07:54PM UTC
Files 16
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH 1.2.0
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 1.2.0
  • add-ai-agent-context-to-readme
  • chore/add-logs
  • chore/enhance-logging
  • chore/handle-opt-endpoint-sns
  • chore/pin-node-24-base-image
  • chore/update-node-24
  • coverage
  • feat/add-readme
  • feat/attributes-on-sns-message
  • feat/automate-deployments
  • feat/entity-age-filter
  • feat/event-attribute-for-multiplayer-scenes
  • feat/include-message-attributes-on-events-queue
  • feat/postgres-dedup
  • feat/prioritize-organic-deployments
  • feat/send-events-to-event-queue
  • feat/skip-unchanged-scene-conversions
  • feat/stg-environment
  • fix/catalyst-allowlist-ssrf
  • fix/conditional
  • fix/entity-max-age-default
  • fix/prevent-reboot
  • fix/snapshot-stream-abort-crash
  • fix/update-peer-url
  • fix/usage-of-sns-endpoint
  • main
  • perf/observability
  • perf/queue-concurrency
  • refactor/adopt-core-fetch-component
  • refactor/adopt-core-http-server-and-metrics
  • refactor/migrate-to-core-components
  • refactor/update-snapshot-fetcher
  • refs/tags/1.0.0
  • refs/tags/1.1.0

15 Aug 2026 10:57PM UTC coverage: 91.105% (+0.5%) from 90.571%
32058495423

push

github

web-flow
perf: split the deployer and synchronizer queues and widen concurrency (#536)

Measured on two identical 40s runs against peer.decentraland.zone:

  concurrency  5 (old):  333 entities stored,  7.9/s
  concurrency 15 (new): 1175 entities stored, 27.6/s   ~3.5x

Zero download failures, queue rejections or non-SNS errors at either level.

`createJobQueue` was a single instance shared by the deployer and the
synchronizer, which coupled three unrelated things:

1. `deployer.onIdle()` is awaited by snapshots-fetcher at the end of EVERY
   poll of EVERY server. On a shared queue, server A's poll could not close
   until entities scheduled by servers B..F — and the synchronizer's own
   /snapshots fetches — had all drained. Six independent streams serialized
   behind the slowest download.
2. /snapshots fetches were scheduled on that same queue, behind a backlog of
   up to 1000 entities. p-queue only applies `timeout` once a job STARTS, so
   they stalled silently rather than timing out.
3. Entity throughput was capped by a concurrency sized for the control plane.

Split, `onIdle()` means "this deployer's work drained" — the contract
snapshots-fetcher actually needs — and each side is sized for its own job.

The service could ingest ~1000 entities/s and drained ~8/s, so the queue sat
pinned at its backpressure limit and the streams ran at the drain rate. The
scheduling histogram shows it directly: at concurrency 5 the rate collapses
to 4-12/s after the first second; at 15 it sustains 16-96/s.

15 is deliberately conservative rather than the largest value that helped
locally. Local numbers use folder storage and profile-heavy traffic, so they
do not predict production, where S3 latency and scene content fan-out both
differ. Tune from the gauges instead.

DOWNLOAD_QUEUE_CONCURRENCY (15), DOWNLOAD_QUEUE_TIMEOUT_MS (100000),
DOWNLOAD_QUEUE_MAX_PENDING (1000), SYNCHRONIZER_QUEUE_CONCURRENCY (10),
SYNCHRONIZER_QUEUE_TIMEOUT_MS (100000), CONTENT_FILES_CONCURRENCY ... (continued)

60 of 75 branches covered (80.0%)

Branch coverage included in aggregate %.

15 of 15 new or added lines in 4 files covered. (100.0%)

278 of 296 relevant lines covered (93.92%)

8.94 hits per line

Relevant lines Covered
Build:
Build:
296 RELEVANT LINES 278 COVERED LINES
8.94 HITS PER LINE
Source Files on main
  • Tree
  • List 16
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
32058495423 1.2.0 perf: split the deployer and synchronizer queues and widen concurrency (#536) Measured on two identical 40s runs against peer.decentraland.zone: concurrency 5 (old): 333 entities stored, 7.9/s concurrency 15 (new): 1175 entities stored, 2... push 17 Aug 2026 07:06PM UTC web-flow github
91.11
31953723569 feat/postgres-dedup feat: record processed deployments in postgres Replaces "an object exists in the bucket" as the record of what has been processed, which conflated "downloaded" with "published" and silently dropped entities. If an SNS publish failed, markAsDeplo... Pull #538 16 Aug 2026 02:47PM UTC LautaroPetaccio github
90.27
31913478124 main perf: split the deployer and synchronizer queues and widen concurrency (#536) Measured on two identical 40s runs against peer.decentraland.zone: concurrency 5 (old): 333 entities stored, 7.9/s concurrency 15 (new): 1175 entities stored, 2... push 15 Aug 2026 10:57PM UTC web-flow github
91.11
31912571464 main perf: bound metric cardinality and expose download queue depth (#535) Observability for the performance program. No throughput change. `entityType` labels nine counters but arrives from remote content servers, and @dcl/schemas validates it only ... push 15 Aug 2026 10:36PM UTC web-flow github
90.57
31912572128 perf/queue-concurrency perf: split the deployer and synchronizer queues and widen concurrency Measured on two identical 40s runs against peer.decentraland.zone: concurrency 5 (old): 333 entities stored, 7.9/s concurrency 15 (new): 1175 entities stored, 27.6/s ... Pull #536 15 Aug 2026 10:36PM UTC web-flow github
91.11
31911794252 perf/queue-concurrency perf: split the deployer and synchronizer queues and widen concurrency Measured on two identical 40s runs against peer.decentraland.zone: concurrency 5 (old): 333 entities stored, 7.9/s concurrency 15 (new): 1175 entities stored, 27.6/s ... Pull #536 15 Aug 2026 10:19PM UTC LautaroPetaccio github
91.11
31911762821 perf/observability perf: bound metric cardinality and expose download queue depth Observability for the performance program. No throughput change. `entityType` labels nine counters but arrives from remote content servers, and @dcl/schemas validates it only as `{ t... Pull #535 15 Aug 2026 10:18PM UTC LautaroPetaccio github
90.57
31910846163 perf/queue-concurrency perf: split the deployer and synchronizer queues and widen concurrency Measured on two identical 40s runs against peer.decentraland.zone: concurrency 5 (old): 333 entities stored, 7.9/s concurrency 15 (new): 1175 entities stored, 27.6/s ... Pull #536 15 Aug 2026 09:57PM UTC LautaroPetaccio github
91.06
31910846414 perf/queue-concurrency Merge c8d922074 into 2d66d10a1 Pull #536 15 Aug 2026 09:57PM UTC web-flow github
91.06
31910803467 perf/queue-concurrency perf: split the deployer and synchronizer queues and widen concurrency Measured on two identical 40s runs against peer.decentraland.zone: concurrency 5 (old): 333 entities stored, 7.9/s concurrency 15 (new): 1175 entities stored, 27.6/s ... Pull #536 15 Aug 2026 09:56PM UTC LautaroPetaccio github
91.06
See All Builds (117)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc