@@ -66,10 +66,10 @@ void TRootDataErasureManager::Start() {
66
66
" [RootDataErasureManager] Start: Status# " << static_cast <ui32>(Status));
67
67
68
68
Queue->Start ();
69
- if (Status == EStatus ::UNSPECIFIED) {
69
+ if (Status == EDataErasureStatus ::UNSPECIFIED) {
70
70
SchemeShard->MarkFirstRunRootDataErasureManager ();
71
71
ScheduleDataErasureWakeup ();
72
- } else if (Status == EStatus ::COMPLETED) {
72
+ } else if (Status == EDataErasureStatus ::COMPLETED) {
73
73
ScheduleDataErasureWakeup ();
74
74
} else {
75
75
ClearOperationQueue ();
@@ -111,7 +111,7 @@ void TRootDataErasureManager::ClearWaitingDataErasureRequests() {
111
111
}
112
112
113
113
void TRootDataErasureManager::Run (NIceDb::TNiceDb& db) {
114
- Status = EStatus ::IN_PROGRESS;
114
+ Status = EDataErasureStatus ::IN_PROGRESS;
115
115
StartTime = AppData (SchemeShard->ActorContext ())->TimeProvider ->Now ();
116
116
for (auto & [pathId, subdomain] : SchemeShard->SubDomains ) {
117
117
auto path = TPath::Init (pathId, SchemeShard);
@@ -122,14 +122,14 @@ void TRootDataErasureManager::Run(NIceDb::TNiceDb& db) {
122
122
continue ;
123
123
}
124
124
Enqueue (pathId);
125
- WaitingDataErasureTenants[pathId] = EStatus ::IN_PROGRESS;
126
- db.Table <Schema::WaitingDataErasureTenants>().Key (pathId.OwnerId , pathId.LocalPathId ).Update <Schema::WaitingDataErasureTenants::Status>(static_cast <ui32>( WaitingDataErasureTenants[pathId]) );
125
+ WaitingDataErasureTenants[pathId] = EDataErasureStatus ::IN_PROGRESS;
126
+ db.Table <Schema::WaitingDataErasureTenants>().Key (pathId.OwnerId , pathId.LocalPathId ).Update <Schema::WaitingDataErasureTenants::Status>(WaitingDataErasureTenants[pathId]);
127
127
}
128
128
if (WaitingDataErasureTenants.empty ()) {
129
- Status = EStatus ::IN_PROGRESS_BSC;
129
+ Status = EDataErasureStatus ::IN_PROGRESS_BSC;
130
130
}
131
131
db.Table <Schema::DataErasureGenerations>().Key (Generation).Update <Schema::DataErasureGenerations::Status,
132
- Schema::DataErasureGenerations::StartTime>(static_cast <ui32>( Status) , StartTime.MicroSeconds ());
132
+ Schema::DataErasureGenerations::StartTime>(Status, StartTime.MicroSeconds ());
133
133
134
134
const auto ctx = SchemeShard->ActorContext ();
135
135
LOG_TRACE_S (ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
@@ -139,13 +139,13 @@ void TRootDataErasureManager::Run(NIceDb::TNiceDb& db) {
139
139
}
140
140
141
141
void TRootDataErasureManager::Continue () {
142
- if (Status == EStatus ::IN_PROGRESS) {
142
+ if (Status == EDataErasureStatus ::IN_PROGRESS) {
143
143
for (const auto & [pathId, status] : WaitingDataErasureTenants) {
144
- if (status == EStatus ::IN_PROGRESS) {
144
+ if (status == EDataErasureStatus ::IN_PROGRESS) {
145
145
Enqueue (pathId);
146
146
}
147
147
}
148
- } else if (Status == EStatus ::IN_PROGRESS_BSC) {
148
+ } else if (Status == EDataErasureStatus ::IN_PROGRESS_BSC) {
149
149
SendRequestToBSC ();
150
150
}
151
151
@@ -313,16 +313,16 @@ void TRootDataErasureManager::OnDone(const TPathId& pathId, NIceDb::TNiceDb& db)
313
313
ActivePipes.erase (pathId);
314
314
auto it = WaitingDataErasureTenants.find (pathId);
315
315
if (it != WaitingDataErasureTenants.end ()) {
316
- it->second = EStatus ::COMPLETED;
317
- db.Table <Schema::WaitingDataErasureTenants>().Key (pathId.OwnerId , pathId.LocalPathId ).Update <Schema::WaitingDataErasureTenants::Status>(static_cast <ui32>( it->second ) );
316
+ it->second = EDataErasureStatus ::COMPLETED;
317
+ db.Table <Schema::WaitingDataErasureTenants>().Key (pathId.OwnerId , pathId.LocalPathId ).Update <Schema::WaitingDataErasureTenants::Status>(it->second );
318
318
}
319
319
320
320
SchemeShard->TabletCounters ->Cumulative ()[COUNTER_DATA_ERASURE_OK].Increment (1 );
321
321
UpdateMetrics ();
322
322
323
323
bool isDataErasureCompleted = true ;
324
324
for (const auto & [pathId, status] : WaitingDataErasureTenants) {
325
- if (status == EStatus ::IN_PROGRESS) {
325
+ if (status == EDataErasureStatus ::IN_PROGRESS) {
326
326
isDataErasureCompleted = false ;
327
327
break ;
328
328
}
@@ -331,8 +331,8 @@ void TRootDataErasureManager::OnDone(const TPathId& pathId, NIceDb::TNiceDb& db)
331
331
if (isDataErasureCompleted) {
332
332
LOG_INFO_S (ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
333
333
" [RootDataErasureManager] Data erasure in tenants is completed. Send request to BS controller" );
334
- Status = EStatus ::IN_PROGRESS_BSC;
335
- db.Table <Schema::DataErasureGenerations>().Key (Generation).Update <Schema::DataErasureGenerations::Status>(static_cast <ui32>( Status) );
334
+ Status = EDataErasureStatus ::IN_PROGRESS_BSC;
335
+ db.Table <Schema::DataErasureGenerations>().Key (Generation).Update <Schema::DataErasureGenerations::Status>(Status);
336
336
}
337
337
}
338
338
@@ -366,7 +366,7 @@ void TRootDataErasureManager::SendRequestToBSC() {
366
366
}
367
367
368
368
void TRootDataErasureManager::Complete () {
369
- Status = EStatus ::COMPLETED;
369
+ Status = EDataErasureStatus ::COMPLETED;
370
370
auto ctx = SchemeShard->ActorContext ();
371
371
FinishTime = AppData (ctx)->TimeProvider ->Now ();
372
372
TDuration dataErasureDuration = FinishTime - StartTime;
@@ -391,27 +391,23 @@ bool TRootDataErasureManager::Restore(NIceDb::TNiceDb& db) {
391
391
return false ;
392
392
}
393
393
if (rowset.EndOfSet ()) {
394
- Status = EStatus ::UNSPECIFIED;
394
+ Status = EDataErasureStatus ::UNSPECIFIED;
395
395
} else {
396
396
Generation = 0 ;
397
- Status = EStatus ::UNSPECIFIED;
397
+ Status = EDataErasureStatus ::UNSPECIFIED;
398
398
while (!rowset.EndOfSet ()) {
399
399
ui64 generation = rowset.GetValue <Schema::DataErasureGenerations::Generation>();
400
400
if (generation >= Generation) {
401
401
Generation = generation;
402
402
StartTime = TInstant::FromValue (rowset.GetValue <Schema::DataErasureGenerations::StartTime>());
403
- ui32 statusValue = rowset.GetValue <Schema::DataErasureGenerations::Status>();
404
- if (statusValue >= static_cast <ui32>(EStatus::UNSPECIFIED) &&
405
- statusValue <= static_cast <ui32>(EStatus::IN_PROGRESS_BSC)) {
406
- Status = static_cast <EStatus>(statusValue);
407
- }
403
+ Status = rowset.GetValue <Schema::DataErasureGenerations::Status>();
408
404
}
409
405
410
406
if (!rowset.Next ()) {
411
407
return false ;
412
408
}
413
409
}
414
- if (Status == EStatus ::UNSPECIFIED || Status == EStatus ::COMPLETED) {
410
+ if (Status == EDataErasureStatus ::UNSPECIFIED || Status == EDataErasureStatus ::COMPLETED) {
415
411
auto ctx = SchemeShard->ActorContext ();
416
412
TDuration interval = AppData (ctx)->TimeProvider ->Now () - StartTime;
417
413
if (interval > DataErasureInterval) {
@@ -439,24 +435,18 @@ bool TRootDataErasureManager::Restore(NIceDb::TNiceDb& db) {
439
435
440
436
Y_ABORT_UNLESS (SchemeShard->SubDomains .contains (pathId));
441
437
442
- ui32 statusValue = rowset.GetValue <Schema::WaitingDataErasureTenants::Status>();
443
- EStatus status = EStatus::COMPLETED;
444
- if (statusValue >= static_cast <ui32>(EStatus::UNSPECIFIED) &&
445
- statusValue <= static_cast <ui32>(EStatus::IN_PROGRESS_BSC)) {
446
- status = static_cast <EStatus>(statusValue);
447
- }
448
-
438
+ EDataErasureStatus status = rowset.GetValue <Schema::WaitingDataErasureTenants::Status>();
449
439
WaitingDataErasureTenants[pathId] = status;
450
- if (status == EStatus ::IN_PROGRESS) {
440
+ if (status == EDataErasureStatus ::IN_PROGRESS) {
451
441
numberDataErasureTenantsInRunning++;
452
442
}
453
443
454
444
if (!rowset.Next ()) {
455
445
return false ;
456
446
}
457
447
}
458
- if (Status == EStatus ::IN_PROGRESS && (WaitingDataErasureTenants.empty () || numberDataErasureTenantsInRunning == 0 )) {
459
- Status = EStatus ::IN_PROGRESS_BSC;
448
+ if (Status == EDataErasureStatus ::IN_PROGRESS && (WaitingDataErasureTenants.empty () || numberDataErasureTenantsInRunning == 0 )) {
449
+ Status = EDataErasureStatus ::IN_PROGRESS_BSC;
460
450
}
461
451
}
462
452
@@ -475,10 +465,10 @@ bool TRootDataErasureManager::Remove(const TPathId& pathId) {
475
465
if (it != WaitingDataErasureTenants.end ()) {
476
466
Queue->Remove (pathId);
477
467
ActivePipes.erase (pathId);
478
- WaitingDataErasureTenants[pathId] = EStatus ::COMPLETED;
468
+ WaitingDataErasureTenants[pathId] = EDataErasureStatus ::COMPLETED;
479
469
bool isDataErasureCompleted = true ;
480
470
for (const auto & [pathId, status] : WaitingDataErasureTenants) {
481
- if (status == EStatus ::IN_PROGRESS) {
471
+ if (status == EDataErasureStatus ::IN_PROGRESS) {
482
472
isDataErasureCompleted = false ;
483
473
break ;
484
474
}
@@ -529,9 +519,9 @@ struct TSchemeShard::TTxDataErasureManagerInit : public TSchemeShard::TRwTxBase
529
519
LOG_DEBUG_S (ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
530
520
" TTxDataErasureManagerInit Execute at schemeshard: " << Self->TabletID ());
531
521
NIceDb::TNiceDb db (txc.DB );
532
- Self->DataErasureManager ->SetStatus (TDataErasureManager::EStatus ::COMPLETED);
522
+ Self->DataErasureManager ->SetStatus (EDataErasureStatus ::COMPLETED);
533
523
db.Table <Schema::DataErasureGenerations>().Key (0 ).Update <Schema::DataErasureGenerations::Status,
534
- Schema::DataErasureGenerations::StartTime>(static_cast <ui32>( Self->DataErasureManager ->GetStatus () ), AppData (ctx)->TimeProvider ->Now ().MicroSeconds ());
524
+ Schema::DataErasureGenerations::StartTime>(Self->DataErasureManager ->GetStatus (), AppData (ctx)->TimeProvider ->Now ().MicroSeconds ());
535
525
}
536
526
537
527
void DoComplete (const TActorContext& ctx) override {
@@ -568,7 +558,7 @@ struct TSchemeShard::TTxRunDataErasure : public TSchemeShard::TRwTxBase {
568
558
dataErasureManager->IncGeneration ();
569
559
dataErasureManager->Run (db);
570
560
}
571
- if (Self->DataErasureManager ->GetStatus () == TDataErasureManager::EStatus ::IN_PROGRESS_BSC) {
561
+ if (Self->DataErasureManager ->GetStatus () == EDataErasureStatus ::IN_PROGRESS_BSC) {
572
562
NeedSendRequestToBSC = true ;
573
563
}
574
564
}
@@ -617,7 +607,7 @@ struct TSchemeShard::TTxCompleteDataErasureTenant : public TSchemeShard::TRwTxBa
617
607
record.GetPathId ().GetOwnerId (),
618
608
record.GetPathId ().GetLocalId ());
619
609
manager->OnDone (pathId, db);
620
- if (manager->GetStatus () == TDataErasureManager::EStatus ::IN_PROGRESS_BSC) {
610
+ if (manager->GetStatus () == EDataErasureStatus ::IN_PROGRESS_BSC) {
621
611
NeedSendRequestToBSC = true ;
622
612
}
623
613
}
@@ -663,7 +653,7 @@ struct TSchemeShard::TTxCompleteDataErasureBSC : public TSchemeShard::TRwTxBase
663
653
if (record.GetCompleted ()) {
664
654
LOG_INFO_S (ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, " TTxCompleteDataErasureBSC: Data shred in BSC is completed" );
665
655
manager->Complete ();
666
- db.Table <Schema::DataErasureGenerations>().Key (Self->DataErasureManager ->GetGeneration ()).Update <Schema::DataErasureGenerations::Status>(static_cast <ui32>( Self->DataErasureManager ->GetStatus () ));
656
+ db.Table <Schema::DataErasureGenerations>().Key (Self->DataErasureManager ->GetGeneration ()).Update <Schema::DataErasureGenerations::Status>(Self->DataErasureManager ->GetStatus ());
667
657
} else {
668
658
LOG_INFO_S (ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, " TTxCompleteDataErasureBSC: Progress data shred in BSC " << record.GetProgress10k ());
669
659
NeedScheduleRequestToBSC = true ;
0 commit comments