| 679 | } |
| 680 | |
| 681 | func newClusterUser(cu config.ClusterUser) *clusterUser { |
| 682 | var queueCh chan struct{} |
| 683 | if cu.MaxQueueSize > 0 { |
| 684 | queueCh = make(chan struct{}, cu.MaxQueueSize) |
| 685 | } |
| 686 | return &clusterUser{ |
| 687 | name: cu.Name, |
| 688 | password: cu.Password, |
| 689 | maxConcurrentQueries: cu.MaxConcurrentQueries, |
| 690 | maxExecutionTime: time.Duration(cu.MaxExecutionTime), |
| 691 | reqPerMin: cu.ReqPerMin, |
| 692 | reqPacketSizeTokenLimiter: rate.NewLimiter(rate.Limit(cu.ReqPacketSizeTokensRate), int(cu.ReqPacketSizeTokensBurst)), |
| 693 | reqPacketSizeTokensBurst: cu.ReqPacketSizeTokensBurst, |
| 694 | reqPacketSizeTokensRate: cu.ReqPacketSizeTokensRate, |
| 695 | queueCh: queueCh, |
| 696 | maxQueueTime: time.Duration(cu.MaxQueueTime), |
| 697 | allowedNetworks: cu.AllowedNetworks, |
| 698 | } |
| 699 | } |
| 700 | |
| 701 | type replica struct { |
| 702 | cluster *cluster |