You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package topic
import "github.com/seaweedfs/seaweedfs/weed/pb/mq_pb"
const PartitionCount = 4096
type Partition struct { RangeStart int32 RangeStop int32 // exclusive
RingSize int32 }
func (partition Partition) Equals(other Partition) bool { if partition.RangeStart != other.RangeStart { return false } if partition.RangeStop != other.RangeStop { return false } if partition.RingSize != other.RingSize { return false } return true }
func FromPbPartition(partition *mq_pb.Partition) Partition { return Partition{ RangeStart: partition.RangeStart, RangeStop: partition.RangeStop, RingSize: partition.RingSize, } }
func SplitPartitions(targetCount int32) []*Partition { partitions := make([]*Partition, 0, targetCount) partitionSize := PartitionCount / targetCount for i := int32(0); i < targetCount; i++ { partitionStop := (i + 1) * partitionSize if i == targetCount-1 { partitionStop = PartitionCount } partitions = append(partitions, &Partition{ RangeStart: i * partitionSize, RangeStop: partitionStop, RingSize: PartitionCount, }) } return partitions }
|