22
22
namespace NKikimr {
23
23
namespace NSchemeShard {
24
24
25
+ ui64 gVectorIndexSeed = 0 ;
26
+
25
27
// return count, parts, step
26
28
static std::tuple<NTableIndex::TClusterId, NTableIndex::TClusterId, NTableIndex::TClusterId> ComputeKMeansBoundaries (const NSchemeShard::TTableInfo& tableInfo, const TIndexBuildInfo& buildInfo) {
27
29
const auto & kmeans = buildInfo.KMeans ;
@@ -512,7 +514,7 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
512
514
TMap<TTabletId, THolder<IEventBase>> ToTabletSend;
513
515
514
516
template <bool WithSnapshot = true , typename TRequest>
515
- TTabletId CommonFillScanRequest (TRequest& request, TShardIdx shardIdx, TIndexBuildInfo& buildInfo) {
517
+ TTabletId FillScanRequestCommon (TRequest& request, TShardIdx shardIdx, TIndexBuildInfo& buildInfo) {
516
518
TTabletId shardId = Self->ShardInfos .at (shardIdx).TabletID ;
517
519
request.SetTabletId (ui64 (shardId));
518
520
@@ -543,6 +545,13 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
543
545
return shardId;
544
546
}
545
547
548
+ template <typename TRequest>
549
+ void FillScanRequestSeed (TRequest& request) {
550
+ request.SetSeed (gVectorIndexSeed
551
+ ? gVectorIndexSeed
552
+ : request.GetTabletId ());
553
+ }
554
+
546
555
void SendSampleKRequest (TShardIdx shardIdx, TIndexBuildInfo& buildInfo) {
547
556
Y_ENSURE (buildInfo.IsBuildVectorIndex ());
548
557
auto ev = MakeHolder<TEvDataShard::TEvSampleKRequest>();
@@ -566,8 +575,8 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
566
575
567
576
ev->Record .AddColumns (buildInfo.IndexColumns .back ());
568
577
569
- auto shardId = CommonFillScanRequest (ev->Record , shardIdx, buildInfo);
570
- ev->Record . SetSeed ( ui64 (shardId) );
578
+ auto shardId = FillScanRequestCommon (ev->Record , shardIdx, buildInfo);
579
+ FillScanRequestSeed ( ev->Record );
571
580
LOG_N (" TTxBuildProgress: TEvSampleKRequest: " << ev->Record .ShortDebugString ());
572
581
573
582
ToTabletSend.emplace (shardId, std::move (ev));
@@ -606,7 +615,7 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
606
615
buildInfo.DataColumns .begin (), buildInfo.DataColumns .end ()
607
616
};
608
617
609
- auto shardId = CommonFillScanRequest (ev->Record , shardIdx, buildInfo);
618
+ auto shardId = FillScanRequestCommon (ev->Record , shardIdx, buildInfo);
610
619
LOG_N (" TTxBuildProgress: TEvReshuffleKMeansRequest: " << ToShortDebugString (ev->Record ));
611
620
612
621
ToTabletSend.emplace (shardId, std::move (ev));
@@ -638,7 +647,7 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
638
647
639
648
ev->Record .SetEmbeddingColumn (buildInfo.IndexColumns .back ());
640
649
641
- auto shardId = CommonFillScanRequest (ev->Record , shardIdx, buildInfo);
650
+ auto shardId = FillScanRequestCommon (ev->Record , shardIdx, buildInfo);
642
651
LOG_N (" TTxBuildProgress: TEvRecomputeKMeansRequest: " << ToShortDebugString (ev->Record ));
643
652
644
653
ToTabletSend.emplace (shardId, std::move (ev));
@@ -686,8 +695,8 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
686
695
buildInfo.DataColumns .begin (), buildInfo.DataColumns .end ()
687
696
};
688
697
689
- auto shardId = CommonFillScanRequest (ev->Record , shardIdx, buildInfo);
690
- ev->Record . SetSeed ( ui64 (shardId) );
698
+ auto shardId = FillScanRequestCommon (ev->Record , shardIdx, buildInfo);
699
+ FillScanRequestSeed ( ev->Record );
691
700
LOG_N (" TTxBuildProgress: TEvLocalKMeansRequest: " << ev->Record .ShortDebugString ());
692
701
693
702
ToTabletSend.emplace (shardId, std::move (ev));
@@ -731,8 +740,8 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
731
740
ev->Record .AddSourcePrimaryKeyColumns (tableInfo.Columns .at (keyPos).Name );
732
741
}
733
742
734
- auto shardId = CommonFillScanRequest <false >(ev->Record , shardIdx, buildInfo);
735
- ev->Record . SetSeed ( ui64 (shardId) );
743
+ auto shardId = FillScanRequestCommon <false >(ev->Record , shardIdx, buildInfo);
744
+ FillScanRequestSeed ( ev->Record );
736
745
LOG_N (" TTxBuildProgress: TEvPrefixKMeansRequest: " << ev->Record .ShortDebugString ());
737
746
738
747
ToTabletSend.emplace (shardId, std::move (ev));
@@ -780,7 +789,7 @@ struct TSchemeShard::TIndexBuilder::TTxProgress: public TSchemeShard::TIndexBuil
780
789
781
790
ev->Record .SetTargetName (buildInfo.TargetName );
782
791
783
- auto shardId = CommonFillScanRequest (ev->Record , shardIdx, buildInfo);
792
+ auto shardId = FillScanRequestCommon (ev->Record , shardIdx, buildInfo);
784
793
785
794
LOG_N (" TTxBuildProgress: TEvBuildIndexCreateRequest: " << ev->Record .ShortDebugString ());
786
795
0 commit comments