Improvement on createCommit function to add changes in batches

This commit is contained in:
carlosmonastyrski
2025-05-23 10:59:05 -03:00
parent 5712c24370
commit 28a3bf0b94
@@ -7,6 +7,7 @@ import { TPermissionServiceFactory } from "@app/ee/services/permission/permissio
import { ProjectPermissionCommitsActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; import { ProjectPermissionCommitsActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
import { getConfig } from "@app/lib/config/env"; import { getConfig } from "@app/lib/config/env";
import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors"; import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors";
import { chunkArray } from "@app/lib/fn";
import { logger } from "@app/lib/logger"; import { logger } from "@app/lib/logger";
import { ActorAuthMethod, ActorType } from "../auth/auth-type"; import { ActorAuthMethod, ActorType } from "../auth/auth-type";
@@ -590,8 +591,13 @@ export const folderCommitServiceFactory = ({
tx tx
); );
const batchSize = 500;
const chunks = chunkArray(data.changes, batchSize);
await Promise.all(
chunks.map(async (chunk) => {
await folderCommitChangesDAL.insertMany( await folderCommitChangesDAL.insertMany(
data.changes.map((change) => ({ chunk.map((change) => ({
folderCommitId: newCommit.id, folderCommitId: newCommit.id,
changeType: change.type, changeType: change.type,
secretVersionId: change.secretVersionId, secretVersionId: change.secretVersionId,
@@ -600,6 +606,8 @@ export const folderCommitServiceFactory = ({
})), })),
tx tx
); );
})
);
await createFolderCheckpoint({ folderId: data.folderId, folderCommitId: newCommit.id, tx }); await createFolderCheckpoint({ folderId: data.folderId, folderCommitId: newCommit.id, tx });
if (folderCommitQueueService) { if (folderCommitQueueService) {