@@ -21,7 +21,6 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
2121 auto csController = NYDBTest::TControllers::RegisterCSControllerGuard<NYDBTest::NColumnShard::TController>();
2222 csController->SetOverridePeriodicWakeupActivationPeriod (TDuration::Seconds (1 ));
2323 csController->SetOverrideLagForCompactionBeforeTierings (TDuration::Seconds (1 ));
24- csController->SetOverrideReduceMemoryIntervalLimit (1LLU << 30 );
2524 csController->SetOverrideMemoryLimitForPortionReading (1e+10 );
2625 csController->SetOverrideBlobSplitSettings (NOlap::NSplitter::TSplitSettings ());
2726
@@ -103,7 +102,6 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
103102 auto csController = NYDBTest::TControllers::RegisterCSControllerGuard<NYDBTest::NColumnShard::TController>();
104103 csController->SetOverridePeriodicWakeupActivationPeriod (TDuration::Seconds (1 ));
105104 csController->SetOverrideLagForCompactionBeforeTierings (TDuration::Seconds (1 ));
106- csController->SetOverrideReduceMemoryIntervalLimit (1LLU << 30 );
107105 csController->SetOverrideBlobSplitSettings (NOlap::NSplitter::TSplitSettings ());
108106
109107 TLocalHelper (kikimr).CreateTestOlapTableWithoutStore ();
@@ -341,20 +339,36 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
341339 public:
342340 TTestIndexesScenario& Initialize () {
343341 Settings = TKikimrSettings ().SetWithSampleTables (false );
342+ Settings.AppConfig .MutableColumnShardConfig ()->SetReaderClassName (" SIMPLE" );
344343 Kikimr = std::make_unique<TKikimrRunner>(Settings);
345344 return *this ;
346345 }
347346
348347 void Execute () {
349348 auto csController = NYDBTest::TControllers::RegisterCSControllerGuard<NOlap::TWaitCompactionController>();
350- csController->SetOverrideReduceMemoryIntervalLimit (1LLU << 30 );
351349 csController->SetOverrideMemoryLimitForPortionReading (1e+10 );
352350 csController->SetOverrideBlobSplitSettings (NOlap::NSplitter::TSplitSettings ());
353351 TLocalHelper (*Kikimr).CreateTestOlapTable ();
354352 auto tableClient = Kikimr->GetTableClient ();
355353
356- // Tests::NCommon::TLoggerInit(kikimr).Initialize();
354+ /*
355+ Tests::NCommon::TLoggerInit(*Kikimr)
356+ .SetComponents({ NKikimrServices::TX_COLUMNSHARD }, "CS")
357+ .SetPriority(NActors::NLog::PRI_DEBUG)
358+ .Initialize();
359+ */
357360
361+ {
362+ auto alterQuery =
363+ TStringBuilder () <<
364+ R"( ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, `COMPACTION_PLANNER.CLASS_NAME`=`lc-buckets`, `COMPACTION_PLANNER.FEATURES`=`
365+ {"levels" : [{"class_name" : "Zero", "portions_live_duration" : "10s", "expected_blobs_size" : 2048000, "portions_count_available" : 1},
366+ {"class_name" : "Zero"}]}`);
367+ )" ;
368+ auto session = tableClient.CreateSession ().GetValueSync ().GetSession ();
369+ auto alterResult = session.ExecuteSchemeQuery (alterQuery).GetValueSync ();
370+ UNIT_ASSERT_VALUES_EQUAL_C (alterResult.GetStatus (), NYdb::EStatus::SUCCESS, alterResult.GetIssues ().ToString ());
371+ }
358372 {
359373 auto alterQuery =
360374 TStringBuilder () << Sprintf (
@@ -391,15 +405,13 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
391405 std::vector<ui32> levels;
392406
393407 {
394- for (ui32 i = 0 ; i < 2 ; ++i) {
395- WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1000000 , 300000000 , 10000 );
396- WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1100000 , 300100000 , 10000 );
397- WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1200000 , 300200000 , 10000 );
398- WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1300000 , 300300000 , 10000 );
399- WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1400000 , 300400000 , 10000 );
400- WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 2000000 , 200000000 , 70000 );
401- WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 3000000 , 100000000 , 110000 );
402- }
408+ WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1000000 , 300000000 , 10000 );
409+ WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1100000 , 300100000 , 10000 );
410+ WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1200000 , 300200000 , 10000 );
411+ WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1300000 , 300300000 , 10000 );
412+ WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 1400000 , 300400000 , 10000 );
413+ WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 2000000 , 200000000 , 70000 );
414+ WriteTestData (*Kikimr, " /Root/olapStore/olapTable" , 3000000 , 100000000 , 110000 );
403415
404416 const auto filler = [&](const ui32 startRes, const ui32 startUid, const ui32 count) {
405417 for (ui32 i = 0 ; i < count; ++i) {
@@ -422,39 +434,33 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
422434
423435 AFL_VERIFY (csController->GetIndexesSkippingOnSelect ().Val () == 0 );
424436 AFL_VERIFY (csController->GetIndexesApprovedOnSelect ().Val () == 0 );
425- TInstant start = Now ();
426- ui32 compactionsStart = csController->GetCompactionStartedCounter ().Val ();
427- while (Now () - start < TDuration::Seconds (10 )) {
428- if (compactionsStart != csController->GetCompactionStartedCounter ().Val ()) {
429- compactionsStart = csController->GetCompactionStartedCounter ().Val ();
430- start = Now ();
431- }
432- Cerr << " WAIT_COMPACTION: " << csController->GetCompactionStartedCounter ().Val () << Endl;
433- Sleep (TDuration::Seconds (1 ));
434- }
437+ csController->WaitCompactions (TDuration::Seconds (25 ));
435438 // important checker for control compactions (<=21) and control indexes constructed (>=21)
436- AFL_VERIFY (csController->GetCompactionStartedCounter ().Val () == 21 )(" count" , csController->GetCompactionStartedCounter ().Val ());
439+ AFL_VERIFY (csController->GetCompactionStartedCounter ().Val () == 3 )(" count" , csController->GetCompactionStartedCounter ().Val ());
437440
438441 {
439442 ExecuteSQL (R"( SELECT COUNT(*)
440443 FROM `/Root/olapStore/olapTable`
441- WHERE resource_id LIKE '%110a151' AND resource_id LIKE '110a%' AND resource_id LIKE '%dd%')" , " [[0u;]]" );
444+ WHERE resource_id LIKE '%110a151' AND resource_id LIKE '110a%' AND resource_id LIKE '%dd%')" ,
445+ " [[0u;]]" );
442446 AFL_VERIFY (!csController->GetIndexesApprovedOnSelect ().Val ());
443447 AFL_VERIFY (csController->GetIndexesSkippingOnSelect ().Val ());
444448 }
445449 {
446450 ResetZeroLevel (csController);
447451 ExecuteSQL (R"( SELECT COUNT(*)
448452 FROM `/Root/olapStore/olapTable`
449- WHERE resource_id LIKE '%110a151%')" , " [[0u;]]" );
453+ WHERE resource_id LIKE '%110a151%')" ,
454+ " [[0u;]]" );
450455 AFL_VERIFY (!csController->GetIndexesApprovedOnSelect ().Val ());
451- AFL_VERIFY (csController->GetIndexesSkippingOnSelect ().Val () - SkipStart);
456+ AFL_VERIFY (csController->GetIndexesSkippingOnSelect ().Val () - SkipStart == 3 );
452457 }
453458 {
454459 ResetZeroLevel (csController);
455460 ExecuteSQL (R"( SELECT COUNT(*)
456461 FROM `/Root/olapStore/olapTable`
457- WHERE ((resource_id = '2' AND level = 222222) OR (resource_id = '1' AND level = 111111) OR (resource_id LIKE '%11dd%')) AND uid = '222')" , " [[0u;]]" );
462+ WHERE ((resource_id = '2' AND level = 222222) OR (resource_id = '1' AND level = 111111) OR (resource_id LIKE '%11dd%')) AND uid = '222')" ,
463+ " [[0u;]]" );
458464
459465 AFL_VERIFY (csController->GetIndexesSkippedNoData ().Val () == 0 )(" val" , csController->GetIndexesSkippedNoData ().Val ());
460466 AFL_VERIFY (csController->GetIndexesApprovedOnSelect ().Val () - ApproveStart < csController->GetIndexesSkippingOnSelect ().Val () - SkipStart);
@@ -476,7 +482,7 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
476482 };
477483 ExecuteSQL (query (resourceIds[idx], uids[idx], levels[idx]), " [[1u;]]" );
478484 }
479- AFL_VERIFY ((csController->GetIndexesApprovedOnSelect ().Val () - ApproveStart) * 5 < csController->GetIndexesSkippingOnSelect ().Val () - SkipStart)
485+ AFL_VERIFY ((csController->GetIndexesApprovedOnSelect ().Val () - ApproveStart) < csController->GetIndexesSkippingOnSelect ().Val () - SkipStart)
480486 (" approved" , csController->GetIndexesApprovedOnSelect ().Val () - ApproveStart)(
481487 " skipped" , csController->GetIndexesSkippingOnSelect ().Val () - SkipStart);
482488 }
@@ -485,53 +491,54 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
485491 ui32 requestsCount = 300 ;
486492 for (ui32 i = 0 ; i < requestsCount; ++i) {
487493 const ui32 idx = RandomNumber<ui32>(uids.size ());
488- const auto query = [](const TString& res, const TString& /* uid */ , const ui32 /* level */ ) {
494+ const auto query = [](const TString& res) {
489495 TStringBuilder sb;
490496 sb << " SELECT COUNT(*) FROM `/Root/olapStore/olapTable`" << Endl;
491497 sb << " WHERE" << Endl;
492498 sb << " resource_id LIKE '%" << res << " %'" << Endl;
493499 return sb;
494500 };
495- ExecuteSQL (query (resourceIds[idx], uids[idx], levels[idx] ), " [[1u;]]" );
501+ ExecuteSQL (query (resourceIds[idx]), " [[1u;]]" );
496502 }
497- AFL_VERIFY (csController->GetIndexesSkippingOnSelect ().Val () - SkipStart)(" approved" , csController->GetIndexesApprovedOnSelect ().Val () - ApproveStart)(
498- " skipped" , csController->GetIndexesSkippingOnSelect ().Val () - SkipStart);
503+ // AFL_VERIFY(csController->GetIndexesSkippingOnSelect().Val() - SkipStart)(
504+ // "approved", csController->GetIndexesApprovedOnSelect().Val() - ApproveStart)(
505+ // "skipped", csController->GetIndexesSkippingOnSelect().Val() - SkipStart);
499506 }
500507 {
501508 ResetZeroLevel (csController);
502509 ui32 requestsCount = 300 ;
503510 for (ui32 i = 0 ; i < requestsCount; ++i) {
504511 const ui32 idx = RandomNumber<ui32>(uids.size ());
505- const auto query = [](const TString& res, const TString& /* uid */ , const ui32 /* level */ ) {
512+ const auto query = [](const TString& res) {
506513 TStringBuilder sb;
507514 sb << " SELECT COUNT(*) FROM `/Root/olapStore/olapTable`" << Endl;
508515 sb << " WHERE" << Endl;
509516 sb << " resource_id LIKE '" << res << " %'" << Endl;
510517 return sb;
511518 };
512- ExecuteSQL (query (resourceIds[idx], uids[idx], levels[idx] ), " [[1u;]]" );
519+ ExecuteSQL (query (resourceIds[idx]), " [[1u;]]" );
513520 }
514- AFL_VERIFY (csController->GetIndexesSkippingOnSelect ().Val () - SkipStart)(
515- " approved" , csController->GetIndexesApprovedOnSelect ().Val () - ApproveStart)(
516- " skipped" , csController->GetIndexesSkippingOnSelect ().Val () - SkipStart);
521+ // AFL_VERIFY(csController->GetIndexesSkippingOnSelect().Val() - SkipStart)(
522+ // "approved", csController->GetIndexesApprovedOnSelect().Val() - ApproveStart)(
523+ // "skipped", csController->GetIndexesSkippingOnSelect().Val() - SkipStart);
517524 }
518525 {
519526 ResetZeroLevel (csController);
520527 ui32 requestsCount = 300 ;
521528 for (ui32 i = 0 ; i < requestsCount; ++i) {
522529 const ui32 idx = RandomNumber<ui32>(uids.size ());
523- const auto query = [](const TString& res, const TString& /* uid */ , const ui32 /* level */ ) {
530+ const auto query = [](const TString& res) {
524531 TStringBuilder sb;
525532 sb << " SELECT COUNT(*) FROM `/Root/olapStore/olapTable`" << Endl;
526533 sb << " WHERE" << Endl;
527534 sb << " resource_id LIKE '%" << res << " '" << Endl;
528535 return sb;
529536 };
530- ExecuteSQL (query (resourceIds[idx], uids[idx], levels[idx] ), " [[1u;]]" );
537+ ExecuteSQL (query (resourceIds[idx]), " [[1u;]]" );
531538 }
532- AFL_VERIFY (csController->GetIndexesSkippingOnSelect ().Val () - SkipStart)(
533- " approved" , csController->GetIndexesApprovedOnSelect ().Val () - ApproveStart)(
534- " skipped" , csController->GetIndexesSkippingOnSelect ().Val () - SkipStart);
539+ // AFL_VERIFY(csController->GetIndexesSkippingOnSelect().Val() - SkipStart)(
540+ // "approved", csController->GetIndexesApprovedOnSelect().Val() - ApproveStart)(
541+ // "skipped", csController->GetIndexesSkippingOnSelect().Val() - SkipStart);
535542 }
536543 }
537544 };
0 commit comments