public void removeInChargeForCluster(String user, String operator) {
        ClusterPageRequest pageRequest = new ClusterPageRequest();
        pageRequest.setCurrentUser(user);
        pageRequest.setIsAdminRole(false);
        for (InlongClusterEntity clusterEntity : clusterMapper.selectByCondition(pageRequest)) {
            if (Objects.equals(clusterEntity.getCreator(), user)) {
                clusterEntity.setCreator("admin");
            }
            Set<String> inChargeSet = Sets.newHashSet(clusterEntity.getInCharges().split(InlongConstants.COMMA));
            inChargeSet.remove(user);
            String updateInCharge = Joiner.on(",").join(inChargeSet);
            clusterEntity.setInCharges(updateInCharge);
            clusterEntity.setModifier(operator);
            int rowCount = clusterMapper.updateByIdSelective(clusterEntity);
            if (rowCount != InlongConstants.AFFECTED_ONE_ROW) {
                throw new BusinessException(ErrorCodeEnum.CONFIG_EXPIRED,
                        String.format("cluster has already updated with name=%s, type=%s, curVersion=%d",
                                clusterEntity.getName(), clusterEntity.getType(), clusterEntity.getVersion()));
            }
        }
    }
This implementation is just to intercept some error requests and reduce the pressure on the database.
<p/>
This is a memory-based implementation. There is a problem with concurrency security when there are
multiple service nodes because the data in memory cannot be shared.

@param req username login request
inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java