Ruixuan Zhang created KYLIN-5457:
------------------------------------
Summary: When the number of users is very large, granting users
project-level access has poor performance and authorization fails
Key: KYLIN-5457
URL: https://issues.apache.org/jira/browse/KYLIN-5457
Project: Kylin
Issue Type: Bug
Affects Versions: 5.0-alpha
Reporter: Ruixuan Zhang
Assignee: Ruixuan Zhang
Fix For: 5.0-alpha
Attachments: image-2023-02-17-17-03-47-187.png,
image-2023-02-17-17-04-19-788.png
h2. Root Cause
第一点,已经是项目授权的用户,在给项目添加用户时,是无法搜到的。这个是产品现有行为。
看代码发现,代码内部复杂度较高。
在展示项目内授权用户列表时,会检查项目内每个用户是否存在(这个动作会listAll所有用户),几个用户就listAll几次
本地4000用户,项目授权100个用户,打开页面请求加载花了10s
给项目添加用户授权时,每个用户都要listAll。
对于判断用户、用户组是否存在的方法,代码中会listAll,其实是没必要的
因此基本上可以断定是因为代码复杂度高,多了很多无用的遍历。导致页面一直加载不出来,所以客户才误以为项目内看不到已授权的用户,但是模糊搜索就可以看到。
h2. Fix Design
修复方法主要是代码优化
# 判断用户是否存在
# NKylinUserManager get 方法优化
# listUserGroup 方法优化
h2. Test
36297 用户,单个项目授权442个用户
1、项目授权用户列表
!image-2023-02-17-17-03-47-187.png!
2、项目内授权100个用户权限
!image-2023-02-17-17-04-19-788.png!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)