From 5df96234a061f704d4c19239fdf87db437ee4551 Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Wed, 28 May 2025 20:10:12 -0300 Subject: [PATCH] PIT: fix checkpoint creation to do it in batches to avoid insert fails --- backend/src/lib/config/env.ts | 2 +- .../folder-commit/folder-commit-service.ts | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/backend/src/lib/config/env.ts b/backend/src/lib/config/env.ts index f06de0d15..9e7a34232 100644 --- a/backend/src/lib/config/env.ts +++ b/backend/src/lib/config/env.ts @@ -245,7 +245,7 @@ const envSchema = z DATADOG_HOSTNAME: zpStr(z.string().optional()), // PIT - PIT_CHECKPOINT_WINDOW: zpStr(z.string().optional().default("1")), + PIT_CHECKPOINT_WINDOW: zpStr(z.string().optional().default("2")), PIT_TREE_CHECKPOINT_WINDOW: zpStr(z.string().optional().default("30")), /* CORS ----------------------------------------------------------------------------- */ diff --git a/backend/src/services/folder-commit/folder-commit-service.ts b/backend/src/services/folder-commit/folder-commit-service.ts index 21dcc3095..3e5bccfb2 100644 --- a/backend/src/services/folder-commit/folder-commit-service.ts +++ b/backend/src/services/folder-commit/folder-commit-service.ts @@ -295,10 +295,19 @@ export const folderCommitServiceFactory = ({ }, tx ); - await folderCheckpointResourcesDAL.insertMany( - checkpointResources.map((resource) => ({ folderCheckpointId: newCheckpoint.id, ...resource })), - tx + + const batchSize = 500; + const chunks = chunkArray(checkpointResources, batchSize); + + await Promise.all( + chunks.map(async (chunk) => { + await folderCheckpointResourcesDAL.insertMany( + chunk.map((resource) => ({ folderCheckpointId: newCheckpoint.id, ...resource })), + tx + ); + }) ); + return latestCommitId; };