From f06cd0b296ec6ac3f9b66aca3d474ef20c400a31 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Thu, 8 Aug 2024 20:59:31 +0800 Subject: [PATCH] (improvement)(headless)Decrease the number of database queries to the `s2_domain` table. #1472 --- .../server/service/impl/DomainServiceImpl.java | 14 +++++--------- .../server/service/impl/ModelServiceImpl.java | 6 +++--- .../headless/server/utils/ModelConverter.java | 3 +-- .../standalone/src/main/resources/s2-config.yaml | 5 +++++ .../standalone/src/test/resources/s2-config.yaml | 11 +++++------ 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java index 4bfb5d08a..38fdbf414 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java @@ -119,23 +119,19 @@ public class DomainServiceImpl implements DomainService { public Set getDomainAuthSet(User user, AuthType authTypeEnum) { List domainResps = getDomainList(); Set orgIds = userService.getUserAllOrgId(user.getName()); - List domainWithAuth = Lists.newArrayList(); + Set domainWithAuth = Sets.newHashSet(); if (authTypeEnum.equals(AuthType.ADMIN)) { domainWithAuth = domainResps.stream() .filter(domainResp -> checkAdminPermission(orgIds, user, domainResp)) - .collect(Collectors.toList()); + .collect(Collectors.toSet()); } if (authTypeEnum.equals(AuthType.VISIBLE)) { domainWithAuth = domainResps.stream() .filter(domainResp -> checkViewPermission(orgIds, user, domainResp)) - .collect(Collectors.toList()); + .collect(Collectors.toSet()); } - List domainIds = domainWithAuth.stream().map(DomainResp::getId) - .collect(Collectors.toList()); - //get all child domain - return getDomainChildren(domainIds).stream() - .peek(domainResp -> domainResp.setHasEditPermission(true)) - .collect(Collectors.toSet()); + + return domainWithAuth; } private Set getParentDomain(List ids) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java index 5e669a433..c6b3bcfc1 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java @@ -358,9 +358,9 @@ public class ModelServiceImpl implements ModelService { if (modelDO == null) { return null; } - Map domainRespMap = domainService.getDomainList().stream() - .collect(Collectors.toMap(DomainResp::getId, d -> d)); - return ModelConverter.convert(modelDO, domainRespMap); + + DomainResp domainResp = domainService.getDomain(modelDO.getDomainId()); + return ModelConverter.convert(modelDO, domainResp); } @Override diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java index 69fc0623f..3308e1606 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java @@ -70,9 +70,8 @@ public class ModelConverter { return modelResp; } - public static ModelResp convert(ModelDO modelDO, Map domainRespMap) { + public static ModelResp convert(ModelDO modelDO, DomainResp domainResp) { ModelResp modelResp = convert(modelDO); - DomainResp domainResp = domainRespMap.get(modelResp.getDomainId()); if (domainResp != null) { String fullBizNamePath = domainResp.getFullPath() + modelResp.getBizName(); modelResp.setFullPath(fullBizNamePath); diff --git a/launchers/standalone/src/main/resources/s2-config.yaml b/launchers/standalone/src/main/resources/s2-config.yaml index 3275a3775..6bdcb4594 100644 --- a/launchers/standalone/src/main/resources/s2-config.yaml +++ b/launchers/standalone/src/main/resources/s2-config.yaml @@ -1,4 +1,9 @@ s2: + + schema: + cache: + enable: true + parser: strategy: ONE_PASS_SELF_CONSISTENCY exemplar-recall: diff --git a/launchers/standalone/src/test/resources/s2-config.yaml b/launchers/standalone/src/test/resources/s2-config.yaml index ebc4e4539..f659b95f2 100644 --- a/launchers/standalone/src/test/resources/s2-config.yaml +++ b/launchers/standalone/src/test/resources/s2-config.yaml @@ -1,4 +1,9 @@ s2: + + schema: + cache: + enable: false + parser: strategy: ONE_PASS_SELF_CONSISTENCY exemplar-recall: @@ -15,16 +20,10 @@ s2: information: true date: true - demo: names: S2VisitsDemo,S2ArtistDemo enableLLM: false - schema: - cache: - enable: false - - authentication: enable: true exclude: