From 032f28200d673a6d554e2fdeb3a355cb1a601124 Mon Sep 17 00:00:00 2001 From: fabmnt Date: Fri, 17 Jul 2026 21:25:50 -0600 Subject: [PATCH 1/2] docs: correct production concurrency --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aec6acd..74e78e5 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Extraction defaults to a 100 MiB asset limit and a 500 MiB collection limit. Vid `MAX_MEDIA_STORAGE_BYTES` defaults to 4 GiB. After a collection completes, oldest media is removed when database-tracked usage exceeds `MEDIA_RETENTION_TRIGGER_PERCENT` (80% by default) until it reaches `MEDIA_RETENTION_TARGET_PERCENT` (70%). Retention is serialized independently from collection processing, so collections can run concurrently without overlapping quota decisions. -Collection concurrency is automatically sized when the worker starts. It budgets two CPU threads and 1.5 GiB per collection, reserves 1.5 GiB for the co-located API and worker overhead, and caps automatic concurrency at four. The current Railway backend allocation of 8 vCPU and 8 GiB therefore processes up to four collections concurrently. Set `COLLECTION_CONCURRENCY` to a value from 1 through 8 only when an explicit override is needed. Metadata probing within each collection remains bounded by `METADATA_CONCURRENCY`. +Collection concurrency is automatically sized when the worker starts. It budgets two CPU threads and 1.5 GiB per collection, reserves 1.5 GiB for the co-located API and worker overhead, and caps automatic concurrency at four. The worker logs the detected limits and selected concurrency at startup; the current Railway runtime exposes 8 CPUs and 7.5 GiB to Node, which selects three concurrent collections. Set `COLLECTION_CONCURRENCY` to a value from 1 through 8 only when an explicit override is needed. Metadata probing within each collection remains bounded by `METADATA_CONCURRENCY`. ## S3-compatible media storage From b35036eef561c57cb63087b5a57907c6d49486d5 Mon Sep 17 00:00:00 2001 From: fabmnt Date: Fri, 17 Jul 2026 21:28:04 -0600 Subject: [PATCH 2/2] docs: clarify rounded memory limit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 74e78e5..cbbea75 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Extraction defaults to a 100 MiB asset limit and a 500 MiB collection limit. Vid `MAX_MEDIA_STORAGE_BYTES` defaults to 4 GiB. After a collection completes, oldest media is removed when database-tracked usage exceeds `MEDIA_RETENTION_TRIGGER_PERCENT` (80% by default) until it reaches `MEDIA_RETENTION_TARGET_PERCENT` (70%). Retention is serialized independently from collection processing, so collections can run concurrently without overlapping quota decisions. -Collection concurrency is automatically sized when the worker starts. It budgets two CPU threads and 1.5 GiB per collection, reserves 1.5 GiB for the co-located API and worker overhead, and caps automatic concurrency at four. The worker logs the detected limits and selected concurrency at startup; the current Railway runtime exposes 8 CPUs and 7.5 GiB to Node, which selects three concurrent collections. Set `COLLECTION_CONCURRENCY` to a value from 1 through 8 only when an explicit override is needed. Metadata probing within each collection remains bounded by `METADATA_CONCURRENCY`. +Collection concurrency is automatically sized when the worker starts. It budgets two CPU threads and 1.5 GiB per collection, reserves 1.5 GiB for the co-located API and worker overhead, and caps automatic concurrency at four. The worker logs rounded detected limits and the selected concurrency at startup. On the current Railway runtime it selects three concurrent collections and reports 8 CPUs and 7.5 GiB, with memory rounded to one decimal place. Set `COLLECTION_CONCURRENCY` to a value from 1 through 8 only when an explicit override is needed. Metadata probing within each collection remains bounded by `METADATA_CONCURRENCY`. ## S3-compatible media storage