From 405167854bbfc86a07d62ebdcab544eaec2e73f9 Mon Sep 17 00:00:00 2001 From: liuyi Date: Thu, 9 Nov 2023 18:45:31 +0800 Subject: [PATCH] perf(server): avoid auto select blob data when upsert (#4891) --- packages/backend/server/src/modules/doc/manager.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/backend/server/src/modules/doc/manager.ts b/packages/backend/server/src/modules/doc/manager.ts index 34ec7e5af..e5b0a2fe0 100644 --- a/packages/backend/server/src/modules/doc/manager.ts +++ b/packages/backend/server/src/modules/doc/manager.ts @@ -201,6 +201,9 @@ export class DocManager implements OnModuleInit, OnModuleDestroy { defer(async () => { const seq = await this.getUpdateSeq(workspaceId, guid); await this.db.update.create({ + select: { + seq: true, + }, data: { workspaceId, id: guid, @@ -388,10 +391,13 @@ export class DocManager implements OnModuleInit, OnModuleDestroy { const state = Buffer.from(encodeStateVector(doc)); if (isEmptyBuffer(blob)) { - return null; + return; } - return this.db.snapshot.upsert({ + await this.db.snapshot.upsert({ + select: { + seq: true, + }, where: { id_workspaceId: { id: guid,