github.com/matrixorigin/matrixone@v1.2.0/pkg/hakeeper/checkers/logservice/stats.go (about) 1 // Copyright 2021 - 2022 Matrix Origin 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package logservice 16 17 type replica struct { 18 uuid string 19 shardID uint64 20 epoch uint64 21 22 replicaID uint64 23 } 24 25 // stats collects all replicas that need to be processed. 26 type stats struct { 27 // zombies collects replicas that are already removed in config but still 28 // running on log stores. 29 zombies []replica 30 31 // toStart collects replicas that are already added in config but 32 // not running on log stores. 33 toStart []replica 34 35 // toRemove collects replicas that needs to be removed in config. 36 // The key is shardID and the value is the slice of replicas. 37 toRemove map[uint64][]replica 38 39 // toAdd collects replicas that needs to be added in config. 40 // The key is shardID and the value is the number of replicas to be added. 41 toAdd map[uint64]uint32 42 } 43 44 func newStats() *stats { 45 return &stats{ 46 toRemove: make(map[uint64][]replica), 47 toAdd: make(map[uint64]uint32), 48 } 49 }