aboutsummaryrefslogtreecommitdiff
path: root/weed/mq/topic/partition.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2023-10-02 01:02:27 -0700
committerchrislu <chris.lu@gmail.com>2023-10-02 01:02:27 -0700
commitbf13f3ced78fd1556f02bc4a28c0c342dc15a76f (patch)
treed6d084e44fa582d7db4672d83c57289087e5a2df /weed/mq/topic/partition.go
parent734178093e1e5d86dd6bd81ac3abe9b9f814ea36 (diff)
downloadseaweedfs-bf13f3ced78fd1556f02bc4a28c0c342dc15a76f.tar.xz
seaweedfs-bf13f3ced78fd1556f02bc4a28c0c342dc15a76f.zip
add subscriber coordinator
Diffstat (limited to 'weed/mq/topic/partition.go')
-rw-r--r--weed/mq/topic/partition.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/weed/mq/topic/partition.go b/weed/mq/topic/partition.go
index 285bdcb36..79c830f13 100644
--- a/weed/mq/topic/partition.go
+++ b/weed/mq/topic/partition.go
@@ -30,3 +30,20 @@ func FromPbPartition(partition *mq_pb.Partition) Partition {
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
+}