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,15 +591,22 @@ export const folderCommitServiceFactory = ({
tx tx
); );
await folderCommitChangesDAL.insertMany( const batchSize = 500;
data.changes.map((change) => ({ const chunks = chunkArray(data.changes, batchSize);
folderCommitId: newCommit.id,
changeType: change.type, await Promise.all(
secretVersionId: change.secretVersionId, chunks.map(async (chunk) => {
folderVersionId: change.folderVersionId, await folderCommitChangesDAL.insertMany(
isUpdate: change.isUpdate || false chunk.map((change) => ({
})), folderCommitId: newCommit.id,
tx changeType: change.type,
secretVersionId: change.secretVersionId,
folderVersionId: change.folderVersionId,
isUpdate: change.isUpdate || false
})),
tx
);
})
); );
await createFolderCheckpoint({ folderId: data.folderId, folderCommitId: newCommit.id, tx }); await createFolderCheckpoint({ folderId: data.folderId, folderCommitId: newCommit.id, tx });