@@ -115,16 +115,19 @@ namespace NKikimr::NPrivate {
115
115
ui64 ReceivedXorDiffCount = 0 ;
116
116
ui64 WaitedXorDiffCount = 0 ;
117
117
118
+ #if VDISK_SKELETON_TRACE
118
119
std::shared_ptr<TVDiskSkeletonTrace> PatchActorTrace;
119
120
std::shared_ptr<TVDiskSkeletonTrace> CurrentEventTrace;
120
121
121
-
122
122
void AddMark (const char * const mark) {
123
123
PatchActorTrace->AddMark (mark);
124
124
if (CurrentEventTrace) {
125
125
CurrentEventTrace->AddMark (mark);
126
126
}
127
127
}
128
+ #else
129
+ void AddMark (const char * /* mark*/ ) {}
130
+ #endif
128
131
129
132
public:
130
133
TSkeletonVPatchActor (TActorId leaderId, const TBlobStorageGroupType &gType ,
@@ -146,8 +149,10 @@ namespace NKikimr::NPrivate {
146
149
, LeaderId(leaderId)
147
150
, IncarnationGuid(incarnationGuid)
148
151
, GType(gType )
152
+ #if VDISK_SKELETON_TRACE
149
153
, PatchActorTrace(std::make_shared<TVDiskSkeletonTrace>())
150
154
, CurrentEventTrace(std::move(ev->Get ()->VDiskSkeletonTrace))
155
+ #endif
151
156
{
152
157
NKikimrBlobStorage::TEvVPatchStart &record = ev->Get ()->Record ;
153
158
if (record.HasMsgQoS () && record.GetMsgQoS ().HasDeadlineSeconds ()) {
@@ -167,9 +172,11 @@ namespace NKikimr::NPrivate {
167
172
FoundPartsEvent = std::make_unique<TEvBlobStorage::TEvVPatchFoundParts>(
168
173
NKikimrProto::OK, OriginalBlobId, PatchedBlobId, VDiskId, record.GetCookie (), now, ErrorReason, &record,
169
174
SkeletonFrontIDPtr, VPatchFoundPartsMsgsPtr, getHistogram, IncarnationGuid);
175
+ #if VDISK_SKELETON_TRACE
170
176
if (CurrentEventTrace) {
171
177
CurrentEventTrace->AdditionalTrace = PatchActorTrace;
172
178
}
179
+ #endif
173
180
AddMark (" TSkeletonVPatchActor created" );
174
181
}
175
182
@@ -219,11 +226,13 @@ namespace NKikimr::NPrivate {
219
226
FoundPartsEvent->AddPart (part);
220
227
}
221
228
FoundPartsEvent->SetStatus (status);
229
+ #if VDISK_SKELETON_TRACE
222
230
if (CurrentEventTrace) {
223
231
CurrentEventTrace->AdditionalTrace = nullptr ;
224
232
}
225
233
AddMark ((FoundOriginalParts.size () ? " Found parts" : " Parts were not found" ));
226
234
CurrentEventTrace = nullptr ;
235
+ #endif
227
236
SendVDiskResponse (TActivationContext::AsActorContext (), Sender, FoundPartsEvent.release (), Cookie);
228
237
}
229
238
@@ -303,11 +312,13 @@ namespace NKikimr::NPrivate {
303
312
(ErrorReason, ErrorReason));
304
313
Y_ABORT_UNLESS (ResultEvent);
305
314
ResultEvent->SetStatus (status, ErrorReason);
315
+ #if VDISK_SKELETON_TRACE
306
316
if (CurrentEventTrace) {
307
317
CurrentEventTrace->AdditionalTrace = nullptr ;
308
318
}
309
319
AddMark ((status == NKikimrProto::OK ? " Patch ends with OK" : " Patch ends witn NOT OK" ));
310
320
CurrentEventTrace = nullptr ;
321
+ #endif
311
322
if (forceEnd) {
312
323
ResultEvent->SetForceEndResponse ();
313
324
}
@@ -502,7 +513,9 @@ namespace NKikimr::NPrivate {
502
513
&record, SkeletonFrontIDPtr, VPatchResMsgsPtr, PutHistogram, IncarnationGuid);
503
514
Sender = ev->Sender ;
504
515
Cookie = ev->Cookie ;
516
+ #if VDISK_SKELETON_TRACE
505
517
CurrentEventTrace = std::move (ev->Get ()->VDiskSkeletonTrace );
518
+ #endif
506
519
AddMark (" Error: HandleError TEvVPatchDiff" );
507
520
SendVPatchResult (NKikimrProto::ERROR, ev->Get ()->IsForceEnd ());
508
521
}
@@ -523,10 +536,12 @@ namespace NKikimr::NPrivate {
523
536
524
537
void Handle (TEvBlobStorage::TEvVPatchDiff::TPtr &ev) {
525
538
NKikimrBlobStorage::TEvVPatchDiff &record = ev->Get ()->Record ;
539
+ #if VDISK_SKELETON_TRACE
526
540
CurrentEventTrace = std::move (ev->Get ()->VDiskSkeletonTrace );
527
541
if (CurrentEventTrace) {
528
542
CurrentEventTrace->AdditionalTrace = PatchActorTrace;
529
543
}
544
+ #endif
530
545
Y_ABORT_UNLESS (record.HasCookie ());
531
546
AddMark (" Receive TEvVPatchDiff" );
532
547
@@ -630,9 +645,11 @@ namespace NKikimr::NPrivate {
630
645
auto resultEvent = std::make_unique<TEvBlobStorage::TEvVPatchXorDiffResult>(
631
646
NKikimrProto::ERROR, now, &record, SkeletonFrontIDPtr, VPatchResMsgsPtr, PutHistogram);
632
647
AddMark (" Error: HandleError TEvVPatchXorDiff" );
648
+ #if VDISK_SKELETON_TRACE
633
649
if (ev->Get ()->VDiskSkeletonTrace ) {
634
650
ev->Get ()->VDiskSkeletonTrace ->AddMark (" Error: HandleError TEvVPatchXorDiff" );
635
651
}
652
+ #endif
636
653
SendVDiskResponse (TActivationContext::AsActorContext (), ev->Sender , resultEvent.release (), ev->Cookie );
637
654
}
638
655
@@ -652,18 +669,25 @@ namespace NKikimr::NPrivate {
652
669
(ToPart, (ui32)toPart),
653
670
(HasBuffer, (Buffer.GetSize () == 0 ? " no" : " yes" )),
654
671
(ReceivedXorDiffCount, TStringBuilder () << ReceivedXorDiffCount << ' /' << WaitedXorDiffCount));
672
+
655
673
AddMark (" received xor diff" );
674
+ #if VDISK_SKELETON_TRACE
656
675
if (ev->Get ()->VDiskSkeletonTrace ) {
657
676
ev->Get ()->VDiskSkeletonTrace ->AddMark (" received xor diff" );
658
677
}
678
+ #endif
659
679
660
680
TInstant now = TActivationContext::Now ();
661
681
std::unique_ptr<TEvBlobStorage::TEvVPatchXorDiffResult> resultEvent = std::make_unique<TEvBlobStorage::TEvVPatchXorDiffResult>(
662
682
NKikimrProto::OK, now, &record, SkeletonFrontIDPtr, VPatchResMsgsPtr, PutHistogram);
683
+
663
684
AddMark (" Send xor diff result" );
685
+ #if VDISK_SKELETON_TRACE
664
686
if (ev->Get ()->VDiskSkeletonTrace ) {
665
687
ev->Get ()->VDiskSkeletonTrace ->AddMark (" Send xor diff result" );
666
688
}
689
+ #endif
690
+
667
691
SendVDiskResponse (TActivationContext::AsActorContext (), ev->Sender , resultEvent.release (), ev->Cookie );
668
692
669
693
if (!CheckDiff (xorDiffs, " XorDiff from datapart" )) {
0 commit comments