@@ -17,6 +17,8 @@ TPartitionScaleManager::TPartitionScaleManager(
1717
1818void TPartitionScaleManager::HandleScaleStatusChange (const TPartitionInfo& partition, NKikimrPQ::EScaleStatus scaleStatus, const TActorContext& ctx) {
1919 if (scaleStatus == NKikimrPQ::EScaleStatus::NEED_SPLIT) {
20+ LOG_DEBUG_S (ctx, NKikimrServices::PERSQUEUE_READ_BALANCER, " TPartitionScaleManager::HandleScaleStatusChange "
21+ << " need to split partition " << partition);
2022 PartitionsToSplit.emplace (partition.Id , partition);
2123 TrySendScaleRequest (ctx);
2224 } else {
@@ -30,12 +32,14 @@ void TPartitionScaleManager::TrySendScaleRequest(const TActorContext& ctx) {
3032 return ;
3133 }
3234
33- auto splitMergePair = BuildScaleRequest ();
35+ auto splitMergePair = BuildScaleRequest (ctx );
3436 if (splitMergePair.first .empty () && splitMergePair.second .empty ()) {
3537 return ;
3638 }
3739
3840 RequestInflight = true ;
41+ LOG_DEBUG_S (ctx, NKikimrServices::PERSQUEUE_READ_BALANCER, " TPartitionScaleManager::HandleScaleStatusChange "
42+ << " send split request" );
3943 CurrentScaleRequest = ctx.Register (new TPartitionScaleRequest (
4044 TopicName,
4145 DatabasePath,
@@ -51,7 +55,7 @@ void TPartitionScaleManager::TrySendScaleRequest(const TActorContext& ctx) {
5155using TPartitionSplit = NKikimrSchemeOp::TPersQueueGroupDescription_TPartitionSplit;
5256using TPartitionMerge = NKikimrSchemeOp::TPersQueueGroupDescription_TPartitionMerge;
5357
54- std::pair<std::vector<TPartitionSplit>, std::vector<TPartitionMerge>> TPartitionScaleManager::BuildScaleRequest () {
58+ std::pair<std::vector<TPartitionSplit>, std::vector<TPartitionMerge>> TPartitionScaleManager::BuildScaleRequest (const TActorContext& ctx ) {
5559 std::vector<TPartitionSplit> splitsToApply;
5660 std::vector<TPartitionMerge> mergesToApply;
5761
@@ -62,11 +66,15 @@ std::pair<std::vector<TPartitionSplit>, std::vector<TPartitionMerge>> TPartition
6266 const auto & partition = itSplit->second ;
6367
6468 if (BalancerConfig.PartitionGraph .GetPartition (partitionId)->Children .empty ()) {
65- auto mid = GetRangeMid (partition.KeyRange .FromBound ? *partition.KeyRange .FromBound : " " , partition.KeyRange .ToBound ?*partition.KeyRange .ToBound : " " );
69+ auto from = partition.KeyRange .FromBound ? *partition.KeyRange .FromBound : " " ;
70+ auto to = partition.KeyRange .ToBound ?*partition.KeyRange .ToBound : " " ;
71+ auto mid = GetRangeMid (from, to);
6672 if (mid.empty ()) {
6773 itSplit = PartitionsToSplit.erase (itSplit);
74+ LOG_ERROR_S (ctx, NKikimrServices::PERSQUEUE_READ_BALANCER, " TPartitionScaleManager::BuildScaleRequest wrong partition key range. Can't get mid. Topic# " << TopicName << " , partition# " << partitionId);
6875 continue ;
6976 }
77+ LOG_DEBUG_S (ctx, NKikimrServices::PERSQUEUE_READ_BALANCER, " TPartitionScaleManager::BuildScaleRequest partition split ranges. From# '" << from << " '. To# '" << to << " '. Mid# '" << mid <<" '. Topic# " << TopicName << " . Partition# " << partitionId);
7078
7179 TPartitionSplit split;
7280 split.set_partition (partition.Id );
@@ -87,6 +95,7 @@ void TPartitionScaleManager::HandleScaleRequestResult(TPartitionScaleRequest::TE
8795 RequestInflight = false ;
8896 LastResponseTime = ctx.Now ();
8997 auto result = ev->Get ();
98+ LOG_DEBUG_S (ctx, NKikimrServices::PERSQUEUE_READ_BALANCER, " TPartitionScaleManager::HandleScaleRequestResult scale request result: " << result->Status << " . Topic# " << TopicName);
9099 if (result->Status == TEvTxUserProxy::TResultStatus::ExecComplete) {
91100 TrySendScaleRequest (ctx);
92101 } else {
0 commit comments