perf(import): parallelize ID allocation and raise clone concurrency to 10
CI / check (push) Successful in 27s
CI / release (push) Skipped
CI / deploy (push) Successful in 41s

Replace the serialized SELECT MAX + INSERT id-allocation chains for
items_base and catalog_items with a lazy-seeded in-process counter so
concurrent clone workers no longer queue on a global lock per item.
Re-seeds after 60s idle to avoid colliding with externally added rows.
Raise the clone import concurrency default from 6 to the batch cap of 10.
This commit is contained in:
openhands committed 2026-08-05 11:37:17 +02:00
1 parent 742536820a
commit 172941c542
8 files changed
+144 -52

No files matched your search

@@ -454,7 +454,7 @@ function FurniGrid({ source }: FurniGridProps) {
{
sourceId: source.id,
classnames: toClone.map((it) => it.classname),
concurrency: 6,
concurrency: 10,
},
(classname) => {
done++;
@@ -545,7 +545,7 @@ function FurniGrid({ source }: FurniGridProps) {
const chunk = names.slice(i, i + CHUNK);
await runSseImport(
"/api/admin/import/clone/batch",
{ sourceId: source.id, classnames: chunk, concurrency: 6 },
{ sourceId: source.id, classnames: chunk, concurrency: 10 },
(classname) => {
done++;
markDone(classname);