Skip to content

Commit 2816906

Browse files
authored
Merge 540b8bd into e12c4ef
2 parents e12c4ef + 540b8bd commit 2816906

38 files changed

+1314
-650
lines changed

ydb/core/blobstorage/dsproxy/dsproxy.h

Lines changed: 206 additions & 108 deletions
Large diffs are not rendered by default.

ydb/core/blobstorage/dsproxy/dsproxy_assimilate.cpp

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -264,17 +264,12 @@ class TBlobStorageGroupAssimilateRequest : public TBlobStorageGroupRequestActor<
264264
return mon->ActiveAssimilate;
265265
}
266266

267-
TBlobStorageGroupAssimilateRequest(const TIntrusivePtr<TBlobStorageGroupInfo>& info,
268-
const TIntrusivePtr<TGroupQueues>& state, const TActorId& source,
269-
const TIntrusivePtr<TBlobStorageGroupProxyMon>& mon, TEvBlobStorage::TEvAssimilate *ev, ui64 cookie,
270-
NWilson::TTraceId traceId, TInstant now, TIntrusivePtr<TStoragePoolCounters>& storagePoolCounters)
271-
: TBlobStorageGroupRequestActor(info, state, mon, source, cookie,
272-
NKikimrServices::BS_PROXY_ASSIMILATE, false, {}, now, storagePoolCounters, ev->RestartCounter,
273-
NWilson::TSpan(TWilson::BlobStorage, std::move(traceId), "DSProxy.Assimilate"), std::move(ev->ExecutionRelay))
274-
, SkipBlocksUpTo(ev->SkipBlocksUpTo)
275-
, SkipBarriersUpTo(ev->SkipBarriersUpTo)
276-
, SkipBlobsUpTo(ev->SkipBlobsUpTo)
277-
, PerVDiskInfo(info->GetTotalVDisksNum())
267+
TBlobStorageGroupAssimilateRequest(TBlobStorageGroupAssimilateParameters& params)
268+
: TBlobStorageGroupRequestActor(params, NWilson::TSpan(TWilson::BlobStorage, std::move(params.Common.TraceId), "DSProxy.Assimilate"))
269+
, SkipBlocksUpTo(params.Common.Event->SkipBlocksUpTo)
270+
, SkipBarriersUpTo(params.Common.Event->SkipBarriersUpTo)
271+
, SkipBlobsUpTo(params.Common.Event->SkipBlobsUpTo)
272+
, PerVDiskInfo(Info->GetTotalVDisksNum())
278273
, Result(new TEvBlobStorage::TEvAssimilateResult(NKikimrProto::OK, {}))
279274
{
280275
Heap.reserve(PerVDiskInfo.size());
@@ -464,11 +459,8 @@ class TBlobStorageGroupAssimilateRequest : public TBlobStorageGroupRequestActor<
464459
}
465460
};
466461

467-
IActor* CreateBlobStorageGroupAssimilateRequest(const TIntrusivePtr<TBlobStorageGroupInfo>& info,
468-
const TIntrusivePtr<TGroupQueues>& state, const TActorId& source,
469-
const TIntrusivePtr<TBlobStorageGroupProxyMon>& mon, TEvBlobStorage::TEvAssimilate *ev,
470-
ui64 cookie, NWilson::TTraceId traceId, TInstant now, TIntrusivePtr<TStoragePoolCounters>& storagePoolCounters) {
471-
return new TBlobStorageGroupAssimilateRequest(info, state, source, mon, ev, cookie, std::move(traceId), now, storagePoolCounters);
462+
IActor* CreateBlobStorageGroupAssimilateRequest(TBlobStorageGroupAssimilateParameters params) {
463+
return new TBlobStorageGroupAssimilateRequest(params);
472464
}
473465

474466
} // NKikimr

ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "defs.h"
33

44
#include "dsproxy.h"
5+
#include "request_history.h"
56

67
#include <ydb/core/blobstorage/base/batched_vec.h>
78
#include <ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.h>

ydb/core/blobstorage/dsproxy/dsproxy_block.cpp

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ class TBlobStorageGroupBlockRequest : public TBlobStorageGroupRequestActor<TBlob
1616
const ui32 Generation;
1717
const TInstant Deadline;
1818
const ui64 IssuerGuid;
19-
TInstant StartTime;
2019
bool SeenAlready = false;
2120

2221
TGroupQuorumTracker QuorumTracker;
@@ -100,7 +99,7 @@ class TBlobStorageGroupBlockRequest : public TBlobStorageGroupRequestActor<TBlob
10099
std::unique_ptr<TEvBlobStorage::TEvBlockResult> result(new TEvBlobStorage::TEvBlockResult(status));
101100
result->ErrorReason = ErrorReason;
102101
A_LOG_LOG_S(true, PriorityForStatusResult(status), "DSPB04", "Result# " << result->Print(false));
103-
Mon->CountBlockResponseTime(TActivationContext::Now() - StartTime);
102+
Mon->CountBlockResponseTime(TActivationContext::Monotonic() - RequestStartTime);
104103
return SendResponseAndDie(std::move(result));
105104
}
106105

@@ -132,19 +131,12 @@ class TBlobStorageGroupBlockRequest : public TBlobStorageGroupRequestActor<TBlob
132131
return mon->ActiveBlock;
133132
}
134133

135-
TBlobStorageGroupBlockRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
136-
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
137-
const TIntrusivePtr<TBlobStorageGroupProxyMon> &mon, TEvBlobStorage::TEvBlock *ev,
138-
ui64 cookie, NWilson::TSpan&& span, TInstant now,
139-
TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters)
140-
: TBlobStorageGroupRequestActor(info, state, mon, source, cookie,
141-
NKikimrServices::BS_PROXY_BLOCK, false, {}, now, storagePoolCounters, ev->RestartCounter,
142-
std::move(span), std::move(ev->ExecutionRelay))
143-
, TabletId(ev->TabletId)
144-
, Generation(ev->Generation)
145-
, Deadline(ev->Deadline)
146-
, IssuerGuid(ev->IssuerGuid)
147-
, StartTime(now)
134+
TBlobStorageGroupBlockRequest(TBlobStorageGroupBlockParameters& params, NWilson::TSpan&& span)
135+
: TBlobStorageGroupRequestActor(params, std::move(span))
136+
, TabletId(params.Common.Event->TabletId)
137+
, Generation(params.Common.Event->Generation)
138+
, Deadline(params.Common.Event->Deadline)
139+
, IssuerGuid(params.Common.Event->IssuerGuid)
148140
, QuorumTracker(Info.Get())
149141
{}
150142

@@ -175,16 +167,12 @@ class TBlobStorageGroupBlockRequest : public TBlobStorageGroupRequestActor<TBlob
175167
}
176168
};
177169

178-
IActor* CreateBlobStorageGroupBlockRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
179-
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
180-
const TIntrusivePtr<TBlobStorageGroupProxyMon> &mon, TEvBlobStorage::TEvBlock *ev,
181-
ui64 cookie, NWilson::TTraceId traceId, TInstant now, TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters) {
182-
NWilson::TSpan span(TWilson::BlobStorage, std::move(traceId), "DSProxy.Block");
170+
IActor* CreateBlobStorageGroupBlockRequest(TBlobStorageGroupBlockParameters params) {
171+
NWilson::TSpan span(TWilson::BlobStorage, std::move(params.Common.TraceId), "DSProxy.Block");
183172
if (span) {
184-
span.Attribute("event", ev->ToString());
173+
span.Attribute("event", params.Common.Event->ToString());
185174
}
186-
187-
return new TBlobStorageGroupBlockRequest(info, state, source, mon, ev, cookie, std::move(span), now, storagePoolCounters);
175+
return new TBlobStorageGroupBlockRequest(params, std::move(span));
188176
}
189177

190178
} // NKikimr

ydb/core/blobstorage/dsproxy/dsproxy_collect.cpp

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ class TBlobStorageGroupCollectGarbageRequest : public TBlobStorageGroupRequestAc
2727
const bool Decommission;
2828

2929
TGroupQuorumTracker QuorumTracker;
30-
TInstant StartTime;
3130

3231
ui32 RequestsSent = 0;
3332
ui32 ResponsesReceived = 0;
@@ -141,27 +140,21 @@ class TBlobStorageGroupCollectGarbageRequest : public TBlobStorageGroupRequestAc
141140
return mon->ActiveCollectGarbage;
142141
}
143142

144-
TBlobStorageGroupCollectGarbageRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
145-
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
146-
const TIntrusivePtr<TBlobStorageGroupProxyMon> &mon, TEvBlobStorage::TEvCollectGarbage *ev, ui64 cookie,
147-
NWilson::TTraceId traceId, TInstant now, TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters)
148-
: TBlobStorageGroupRequestActor(info, state, mon, source, cookie,
149-
NKikimrServices::BS_PROXY_COLLECT, false, {}, now, storagePoolCounters, ev->RestartCounter,
150-
NWilson::TSpan(TWilson::BlobStorage, std::move(traceId), "DSProxy.CollectGarbage"), std::move(ev->ExecutionRelay))
151-
, TabletId(ev->TabletId)
152-
, RecordGeneration(ev->RecordGeneration)
153-
, PerGenerationCounter(ev->PerGenerationCounter)
154-
, Channel(ev->Channel)
155-
, Deadline(ev->Deadline)
156-
, Keep(ev->Keep.Release())
157-
, DoNotKeep(ev->DoNotKeep.Release())
158-
, CollectGeneration(ev->CollectGeneration)
159-
, CollectStep(ev->CollectStep)
160-
, Hard(ev->Hard)
161-
, Collect(ev->Collect)
162-
, Decommission(ev->Decommission)
143+
TBlobStorageGroupCollectGarbageRequest(TBlobStorageGroupCollectGarbageParameters& params)
144+
: TBlobStorageGroupRequestActor(params, NWilson::TSpan(TWilson::BlobStorage, std::move(params.Common.TraceId), "DSProxy.CollectGarbage"))
145+
, TabletId(params.Common.Event->TabletId)
146+
, RecordGeneration(params.Common.Event->RecordGeneration)
147+
, PerGenerationCounter(params.Common.Event->PerGenerationCounter)
148+
, Channel(params.Common.Event->Channel)
149+
, Deadline(params.Common.Event->Deadline)
150+
, Keep(params.Common.Event->Keep.Release())
151+
, DoNotKeep(params.Common.Event->DoNotKeep.Release())
152+
, CollectGeneration(params.Common.Event->CollectGeneration)
153+
, CollectStep(params.Common.Event->CollectStep)
154+
, Hard(params.Common.Event->Hard)
155+
, Collect(params.Common.Event->Collect)
156+
, Decommission(params.Common.Event->Decommission)
163157
, QuorumTracker(Info.Get())
164-
, StartTime(now)
165158
{}
166159

167160
void Bootstrap() {
@@ -205,12 +198,8 @@ class TBlobStorageGroupCollectGarbageRequest : public TBlobStorageGroupRequestAc
205198
}
206199
};
207200

208-
IActor* CreateBlobStorageGroupCollectGarbageRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
209-
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
210-
const TIntrusivePtr<TBlobStorageGroupProxyMon> &mon, TEvBlobStorage::TEvCollectGarbage *ev,
211-
ui64 cookie, NWilson::TTraceId traceId, TInstant now, TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters) {
212-
return new TBlobStorageGroupCollectGarbageRequest(info, state, source, mon, ev, cookie, std::move(traceId), now,
213-
storagePoolCounters);
201+
IActor* CreateBlobStorageGroupCollectGarbageRequest(TBlobStorageGroupCollectGarbageParameters params) {
202+
return new TBlobStorageGroupCollectGarbageRequest(params);
214203
}
215204

216205
} // NKikimr

ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,6 @@ class TBlobStorageGroupDiscoverRequest : public TBlobStorageGroupRequestActor<TB
272272
const bool ReadBody;
273273
const bool DiscoverBlockedGeneration;
274274
const TInstant Deadline;
275-
const TInstant StartTime;
276275

277276
TGroupResponseTracker GroupResponseTracker;
278277
std::unique_ptr<TEvBlobStorage::TEvDiscoverResult> PendingResult;
@@ -295,7 +294,7 @@ class TBlobStorageGroupDiscoverRequest : public TBlobStorageGroupRequestActor<TB
295294
template<typename TPtr>
296295
void SendResult(TPtr& result) {
297296
Y_ABORT_UNLESS(result);
298-
const TDuration duration = TActivationContext::Now() - StartTime;
297+
const TDuration duration = TActivationContext::Monotonic() - RequestStartTime;
299298
Mon->CountDiscoverResponseTime(duration);
300299
const bool success = result->Status == NKikimrProto::OK;
301300
LWPROBE(DSProxyRequestDuration, TEvBlobStorage::EvDiscover, 0, duration.SecondsFloat() * 1000.0,
@@ -877,25 +876,17 @@ class TBlobStorageGroupDiscoverRequest : public TBlobStorageGroupRequestActor<TB
877876
return ERequestType::Discover;
878877
}
879878

880-
TBlobStorageGroupDiscoverRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
881-
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
882-
const TIntrusivePtr<TBlobStorageGroupProxyMon> mon, TEvBlobStorage::TEvDiscover *ev,
883-
ui64 cookie, NWilson::TTraceId traceId, TInstant now,
884-
TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters)
885-
: TBlobStorageGroupRequestActor(info, state, mon, source, cookie,
886-
NKikimrServices::BS_PROXY_DISCOVER, true, {}, now, storagePoolCounters, ev->RestartCounter,
887-
NWilson::TSpan(TWilson::BlobStorage, std::move(traceId), "DSProxy.Discover"),
888-
std::move(ev->ExecutionRelay))
889-
, TabletId(ev->TabletId)
890-
, MinGeneration(ev->MinGeneration)
891-
, ReadBody(ev->ReadBody)
892-
, DiscoverBlockedGeneration(ev->DiscoverBlockedGeneration)
893-
, Deadline(ev->Deadline)
894-
, StartTime(now)
879+
TBlobStorageGroupDiscoverRequest(TBlobStorageGroupDiscoverParameters& params)
880+
: TBlobStorageGroupRequestActor(params, NWilson::TSpan(TWilson::BlobStorage, std::move(params.Common.TraceId), "DSProxy.Discover"))
881+
, TabletId(params.Common.Event->TabletId)
882+
, MinGeneration(params.Common.Event->MinGeneration)
883+
, ReadBody(params.Common.Event->ReadBody)
884+
, DiscoverBlockedGeneration(params.Common.Event->DiscoverBlockedGeneration)
885+
, Deadline(params.Common.Event->Deadline)
895886
, GroupResponseTracker(Info)
896887
, IsGetBlockDone(!DiscoverBlockedGeneration)
897-
, ForceBlockedGeneration(ev->ForceBlockedGeneration)
898-
, FromLeader(ev->FromLeader)
888+
, ForceBlockedGeneration(params.Common.Event->ForceBlockedGeneration)
889+
, FromLeader(params.Common.Event->FromLeader)
899890
{}
900891

901892
void Bootstrap() {
@@ -974,13 +965,8 @@ class TBlobStorageGroupDiscoverRequest : public TBlobStorageGroupRequestActor<TB
974965
}
975966
};
976967

977-
IActor* CreateBlobStorageGroupDiscoverRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
978-
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
979-
const TIntrusivePtr<TBlobStorageGroupProxyMon> &mon, TEvBlobStorage::TEvDiscover *ev,
980-
ui64 cookie, NWilson::TTraceId traceId, TInstant now,
981-
TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters) {
982-
return new TBlobStorageGroupDiscoverRequest(info, state, source, mon, ev, cookie, std::move(traceId), now,
983-
storagePoolCounters);
968+
IActor* CreateBlobStorageGroupDiscoverRequest(TBlobStorageGroupDiscoverParameters params) {
969+
return new TBlobStorageGroupDiscoverRequest(params);
984970
}
985971

986972
}//NKikimr

ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,6 @@ class TDiscoverWorker {
424424
class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupRequestActor<TBlobStorageGroupMirror3dcDiscoverRequest>{
425425
const ui64 TabletId;
426426
const ui32 MinGeneration;
427-
const TInstant StartTime;
428427
const TInstant Deadline;
429428
const bool ReadBody;
430429
const bool DiscoverBlockedGeneration;
@@ -457,23 +456,15 @@ class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupReques
457456
return ERequestType::Discover;
458457
}
459458

460-
TBlobStorageGroupMirror3dcDiscoverRequest(TIntrusivePtr<TBlobStorageGroupInfo> info,
461-
TIntrusivePtr<TGroupQueues> state, const TActorId& source,
462-
TIntrusivePtr<TBlobStorageGroupProxyMon> mon, TEvBlobStorage::TEvDiscover *ev,
463-
ui64 cookie, NWilson::TTraceId traceId, TInstant now,
464-
TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters)
465-
: TBlobStorageGroupRequestActor(std::move(info), std::move(state), std::move(mon), source, cookie,
466-
NKikimrServices::BS_PROXY_DISCOVER, false, {}, now, storagePoolCounters, ev->RestartCounter,
467-
NWilson::TSpan(TWilson::BlobStorage, std::move(traceId), "DSProxy.Discover(mirror-3-dc)"),
468-
std::move(ev->ExecutionRelay))
469-
, TabletId(ev->TabletId)
470-
, MinGeneration(ev->MinGeneration)
471-
, StartTime(now)
472-
, Deadline(ev->Deadline)
473-
, ReadBody(ev->ReadBody)
474-
, DiscoverBlockedGeneration(ev->DiscoverBlockedGeneration)
475-
, ForceBlockedGeneration(ev->ForceBlockedGeneration)
476-
, FromLeader(ev->FromLeader)
459+
TBlobStorageGroupMirror3dcDiscoverRequest(TBlobStorageGroupDiscoverParameters& params)
460+
: TBlobStorageGroupRequestActor(params, NWilson::TSpan(TWilson::BlobStorage, std::move(params.Common.TraceId), "DSProxy.Discover(mirror-3-dc)"))
461+
, TabletId(params.Common.Event->TabletId)
462+
, MinGeneration(params.Common.Event->MinGeneration)
463+
, Deadline(params.Common.Event->Deadline)
464+
, ReadBody(params.Common.Event->ReadBody)
465+
, DiscoverBlockedGeneration(params.Common.Event->DiscoverBlockedGeneration)
466+
, ForceBlockedGeneration(params.Common.Event->ForceBlockedGeneration)
467+
, FromLeader(params.Common.Event->FromLeader)
477468
, GetBlockTracker(Info.Get())
478469
{}
479470

@@ -660,7 +651,7 @@ class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupReques
660651
R_LOG_DEBUG_S("DSPDM03", "Response# " << response->ToString());
661652

662653
Y_ABORT_UNLESS(!Responded);
663-
const TDuration duration = TActivationContext::Now() - StartTime;
654+
const TDuration duration = TActivationContext::Monotonic() - RequestStartTime;
664655
LWPROBE(DSProxyRequestDuration, TEvBlobStorage::EvDiscover, 0, duration.SecondsFloat() * 1000.0,
665656
TabletId, Info->GroupID.GetRawId(), TLogoBlobID::MaxChannel, "", true);
666657
SendResponseAndDie(std::move(response));
@@ -673,7 +664,7 @@ class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupReques
673664

674665
Y_ABORT_UNLESS(!Responded);
675666
Y_ABORT_UNLESS(status != NKikimrProto::OK);
676-
const TDuration duration = TActivationContext::Now() - StartTime;
667+
const TDuration duration = TActivationContext::Monotonic() - RequestStartTime;
677668
LWPROBE(DSProxyRequestDuration, TEvBlobStorage::EvDiscover, 0, duration.SecondsFloat() * 1000.0,
678669
TabletId, Info->GroupID.GetRawId(), TLogoBlobID::MaxChannel, "", false);
679670
std::unique_ptr<TEvBlobStorage::TEvDiscoverResult> response(new TEvBlobStorage::TEvDiscoverResult(
@@ -738,13 +729,8 @@ class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupReques
738729
}
739730
};
740731

741-
IActor* CreateBlobStorageGroupMirror3dcDiscoverRequest(const TIntrusivePtr<TBlobStorageGroupInfo> &info,
742-
const TIntrusivePtr<TGroupQueues> &state, const TActorId &source,
743-
const TIntrusivePtr<TBlobStorageGroupProxyMon> &mon, TEvBlobStorage::TEvDiscover *ev,
744-
ui64 cookie, NWilson::TTraceId traceId, TInstant now,
745-
TIntrusivePtr<TStoragePoolCounters> &storagePoolCounters) {
746-
return new TBlobStorageGroupMirror3dcDiscoverRequest(info, state, source, mon, ev, cookie, std::move(traceId), now,
747-
storagePoolCounters);
732+
IActor* CreateBlobStorageGroupMirror3dcDiscoverRequest(TBlobStorageGroupDiscoverParameters params) {
733+
return new TBlobStorageGroupMirror3dcDiscoverRequest(params);
748734
}
749735

750736
}//NKikimr

0 commit comments

Comments
 (0)