Skip to content

Commit ed192d2

Browse files
committed
Print long request history to log ydb-platform#8131
1 parent b985182 commit ed192d2

34 files changed

+563
-134
lines changed

ydb/core/blobstorage/dsproxy/dsproxy.h

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ const ui32 MaskSizeBits = 32;
5555
constexpr bool DefaultEnablePutBatching = true;
5656
constexpr bool DefaultEnableVPatch = false;
5757

58+
constexpr TDuration DefaultLongRequestThreshold = TDuration::Seconds(50);
59+
5860
constexpr bool WithMovingPatchRequestToStaticNode = true;
5961

6062
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -175,7 +177,7 @@ struct TCommonParameters {
175177
TIntrusivePtr<TBlobStorageGroupProxyMon> Mon;
176178
TActorId Source = TActorId{};
177179
ui64 Cookie = 0;
178-
TInstant Now;
180+
TMonotonic Now;
179181
TIntrusivePtr<TStoragePoolCounters>& StoragePoolCounters;
180182
ui32 RestartCounter;
181183
NWilson::TTraceId TraceId = {};
@@ -210,10 +212,10 @@ class TBlobStorageGroupRequestActor : public TActor<TDerived> {
210212
, Span(std::move(span))
211213
, RestartCounter(params.Common.RestartCounter)
212214
, CostModel(GroupQueues->CostModel)
215+
, RequestStartTime(params.Common.Now)
213216
, Source(params.Common.Source)
214217
, Cookie(params.Common.Cookie)
215218
, LatencyQueueKind(params.Common.LatencyQueueKind)
216-
, RequestStartTime(params.Common.Now)
217219
, RacingDomains(&Info->GetTopology())
218220
, ExecutionRelay(std::move(params.Common.ExecutionRelay))
219221
{
@@ -572,7 +574,7 @@ class TBlobStorageGroupRequestActor : public TActor<TDerived> {
572574
}
573575

574576
if (LatencyQueueKind) {
575-
SendToProxy(std::make_unique<TEvLatencyReport>(*LatencyQueueKind, now - RequestStartTime));
577+
SendToProxy(std::make_unique<TEvLatencyReport>(*LatencyQueueKind, TActivationContext::Monotonic() - RequestStartTime));
576578
}
577579

578580
// KIKIMR-6737
@@ -639,6 +641,7 @@ class TBlobStorageGroupRequestActor : public TActor<TDerived> {
639641
bool Dead = false;
640642
const ui32 RestartCounter = 0;
641643
std::shared_ptr<const TCostModel> CostModel;
644+
const TMonotonic RequestStartTime;
642645

643646
private:
644647
const TActorId Source;
@@ -647,7 +650,6 @@ class TBlobStorageGroupRequestActor : public TActor<TDerived> {
647650
ui32 RequestsInFlight = 0;
648651
std::unique_ptr<IEventBase> Response;
649652
const TMaybe<TGroupStat::EKind> LatencyQueueKind;
650-
const TInstant RequestStartTime;
651653
THPTimer Timer;
652654
std::deque<std::unique_ptr<IEventHandle>> PostponedQ;
653655
TBlobStorageGroupInfo::TGroupFailDomains RacingDomains; // a set of domains we've received RACE from
@@ -670,8 +672,7 @@ struct TBlobStorageGroupRangeParameters {
670672
TTypeSpecificParameters TypeSpecific = {
671673
.LogComponent = NKikimrServices::BS_PROXY_RANGE,
672674
.Name = "DSProxy.Range",
673-
.Activity = NKikimrServices::TActivity::BS_GROUP_RANGE
674-
,
675+
.Activity = NKikimrServices::TActivity::BS_GROUP_RANGE,
675676
};
676677
};
677678
IActor* CreateBlobStorageGroupRangeRequest(TBlobStorageGroupRangeParameters params);
@@ -686,6 +687,7 @@ struct TBlobStorageGroupPutParameters {
686687
bool TimeStatsEnabled;
687688
TDiskResponsivenessTracker::TPerDiskStatsPtr Stats;
688689
bool EnableRequestMod3x3ForMinLatency;
690+
TDuration LongRequestThreshold;
689691
};
690692
IActor* CreateBlobStorageGroupPutRequest(TBlobStorageGroupPutParameters params);
691693

@@ -703,6 +705,7 @@ struct TBlobStorageGroupMultiPutParameters {
703705
NKikimrBlobStorage::EPutHandleClass HandleClass;
704706
TEvBlobStorage::TEvPut::ETactic Tactic;
705707
bool EnableRequestMod3x3ForMinLatency;
708+
TDuration LongRequestThreshold;
706709

707710
static ui32 CalculateRestartCounter(TBatchedVec<TEvBlobStorage::TEvPut::TPtr>& events) {
708711
ui32 maxRestarts = 0;
@@ -722,6 +725,7 @@ struct TBlobStorageGroupGetParameters {
722725
.Activity = NKikimrServices::TActivity::BS_PROXY_GET_ACTOR,
723726
};
724727
TNodeLayoutInfoPtr NodeLayout;
728+
TDuration LongRequestThreshold;
725729
};
726730
IActor* CreateBlobStorageGroupGetRequest(TBlobStorageGroupGetParameters params);
727731

@@ -822,12 +826,17 @@ IActor* CreateBlobStorageGroupAssimilateRequest(TBlobStorageGroupAssimilateParam
822826

823827
IActor* CreateBlobStorageGroupEjectedProxy(ui32 groupId, TIntrusivePtr<TDsProxyNodeMon> &nodeMon);
824828

829+
struct TBlobStorageProxyParameters {
830+
const TControlWrapper& EnablePutBatching;
831+
const TControlWrapper& EnableVPatch;
832+
const TControlWrapper& LongRequestThresholdMs = TControlWrapper(DefaultLongRequestThreshold.MilliSeconds(), 1, 1'000'000);
833+
};
834+
825835
IActor* CreateBlobStorageGroupProxyConfigured(TIntrusivePtr<TBlobStorageGroupInfo>&& info,
826836
bool forceWaitAllDrives, TIntrusivePtr<TDsProxyNodeMon> &nodeMon,
827-
TIntrusivePtr<TStoragePoolCounters>&& storagePoolCounters, const TControlWrapper &enablePutBatching,
828-
const TControlWrapper &enableVPatch);
837+
TIntrusivePtr<TStoragePoolCounters>&& storagePoolCounters, const TBlobStorageProxyParameters& params);
829838

830839
IActor* CreateBlobStorageGroupProxyUnconfigured(ui32 groupId, TIntrusivePtr<TDsProxyNodeMon> &nodeMon,
831-
const TControlWrapper &enablePutBatching, const TControlWrapper &enableVPatch);
840+
const TBlobStorageProxyParameters& params);
832841

833842
}//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: 1 addition & 3 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

@@ -138,7 +137,6 @@ class TBlobStorageGroupBlockRequest : public TBlobStorageGroupRequestActor<TBlob
138137
, Generation(params.Common.Event->Generation)
139138
, Deadline(params.Common.Event->Deadline)
140139
, IssuerGuid(params.Common.Event->IssuerGuid)
141-
, StartTime(params.Common.Now)
142140
, QuorumTracker(Info.Get())
143141
{}
144142

ydb/core/blobstorage/dsproxy/dsproxy_collect.cpp

Lines changed: 0 additions & 2 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;
@@ -156,7 +155,6 @@ class TBlobStorageGroupCollectGarbageRequest : public TBlobStorageGroupRequestAc
156155
, Collect(params.Common.Event->Collect)
157156
, Decommission(params.Common.Event->Decommission)
158157
, QuorumTracker(Info.Get())
159-
, StartTime(params.Common.Now)
160158
{}
161159

162160
void Bootstrap() {

ydb/core/blobstorage/dsproxy/dsproxy_discover.cpp

Lines changed: 1 addition & 3 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,
@@ -884,7 +883,6 @@ class TBlobStorageGroupDiscoverRequest : public TBlobStorageGroupRequestActor<TB
884883
, ReadBody(params.Common.Event->ReadBody)
885884
, DiscoverBlockedGeneration(params.Common.Event->DiscoverBlockedGeneration)
886885
, Deadline(params.Common.Event->Deadline)
887-
, StartTime(params.Common.Now)
888886
, GroupResponseTracker(Info)
889887
, IsGetBlockDone(!DiscoverBlockedGeneration)
890888
, ForceBlockedGeneration(params.Common.Event->ForceBlockedGeneration)

ydb/core/blobstorage/dsproxy/dsproxy_discover_m3dc.cpp

Lines changed: 2 additions & 4 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;
@@ -461,7 +460,6 @@ class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupReques
461460
: TBlobStorageGroupRequestActor(params, NWilson::TSpan(TWilson::BlobStorage, std::move(params.Common.TraceId), "DSProxy.Discover(mirror-3-dc)"))
462461
, TabletId(params.Common.Event->TabletId)
463462
, MinGeneration(params.Common.Event->MinGeneration)
464-
, StartTime(params.Common.Now)
465463
, Deadline(params.Common.Event->Deadline)
466464
, ReadBody(params.Common.Event->ReadBody)
467465
, DiscoverBlockedGeneration(params.Common.Event->DiscoverBlockedGeneration)
@@ -653,7 +651,7 @@ class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupReques
653651
R_LOG_DEBUG_S("DSPDM03", "Response# " << response->ToString());
654652

655653
Y_ABORT_UNLESS(!Responded);
656-
const TDuration duration = TActivationContext::Now() - StartTime;
654+
const TDuration duration = TActivationContext::Monotonic() - RequestStartTime;
657655
LWPROBE(DSProxyRequestDuration, TEvBlobStorage::EvDiscover, 0, duration.SecondsFloat() * 1000.0,
658656
TabletId, Info->GroupID.GetRawId(), TLogoBlobID::MaxChannel, "", true);
659657
SendResponseAndDie(std::move(response));
@@ -666,7 +664,7 @@ class TBlobStorageGroupMirror3dcDiscoverRequest : public TBlobStorageGroupReques
666664

667665
Y_ABORT_UNLESS(!Responded);
668666
Y_ABORT_UNLESS(status != NKikimrProto::OK);
669-
const TDuration duration = TActivationContext::Now() - StartTime;
667+
const TDuration duration = TActivationContext::Monotonic() - RequestStartTime;
670668
LWPROBE(DSProxyRequestDuration, TEvBlobStorage::EvDiscover, 0, duration.SecondsFloat() * 1000.0,
671669
TabletId, Info->GroupID.GetRawId(), TLogoBlobID::MaxChannel, "", false);
672670
std::unique_ptr<TEvBlobStorage::TEvDiscoverResult> response(new TEvBlobStorage::TEvDiscoverResult(

ydb/core/blobstorage/dsproxy/dsproxy_discover_m3of4.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ class TBlobStorageGroupMirror3of4DiscoverRequest
1313
{
1414
const ui64 TabletId;
1515
const ui32 MinGeneration;
16-
const TInstant StartTime;
1716
const TInstant Deadline;
1817
const bool ReadBody;
1918
const bool DiscoverBlockedGeneration;
@@ -33,7 +32,6 @@ class TBlobStorageGroupMirror3of4DiscoverRequest
3332
: TBlobStorageGroupRequestActor(params, NWilson::TSpan(TWilson::BlobStorage, std::move(params.Common.TraceId), "DSProxy.Discover(mirror-3of4)"))
3433
, TabletId(params.Common.Event->TabletId)
3534
, MinGeneration(params.Common.Event->MinGeneration)
36-
, StartTime(params.Common.Now)
3735
, Deadline(params.Common.Event->Deadline)
3836
, ReadBody(params.Common.Event->ReadBody)
3937
, DiscoverBlockedGeneration(params.Common.Event->DiscoverBlockedGeneration)

ydb/core/blobstorage/dsproxy/dsproxy_get.cpp

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#include "dsproxy.h"
22
#include "dsproxy_mon.h"
33
#include "root_cause.h"
4+
#include <ydb/core/blobstorage/dsproxy/dsproxy_request_reporting.h>
45
#include <ydb/core/blobstorage/vdisk/common/vdisk_events.h>
56
#include <ydb/core/blobstorage/lwtrace_probes/blobstorage_probes.h>
7+
#include <ydb/core/util/stlog.h>
68
#include <library/cpp/containers/stack_vector/stack_vec.h>
79
#include <library/cpp/digest/crc32c/crc32c.h>
810
#include <util/generic/set.h>
@@ -36,8 +38,7 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
3638
TRootCause RootCauseTrack;
3739
NLWTrace::TOrbit Orbit;
3840
const TInstant Deadline;
39-
TInstant StartTime;
40-
TInstant StartTimePut;
41+
TMonotonic StartTimePut;
4142
ui32 RequestsSent = 0;
4243
ui32 ResponsesReceived = 0;
4344
ui32 GroupSize;
@@ -57,6 +58,8 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
5758
ui32 PutsAccelerated = 0;
5859
bool IsPutAccelerateScheduled = false;
5960

61+
TDuration LongRequestThreshold;
62+
6063
void Handle(TEvAccelerateGet::TPtr &ev) {
6164
IsGetAccelerateScheduled = false;
6265
RootCauseTrack.OnAccelerate(ev->Get()->CauseIdx);
@@ -75,6 +78,7 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
7578
}
7679
GetsAccelerated++;
7780

81+
GetImpl.History.AddAcceleration(false);
7882
TDeque<std::unique_ptr<TEvBlobStorage::TEvVGet>> vGets;
7983
TDeque<std::unique_ptr<TEvBlobStorage::TEvVPut>> vPuts;
8084
GetImpl.AccelerateGet(LogCtx, GetUnresponsiveDisksMask(), vGets, vPuts);
@@ -90,6 +94,7 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
9094
}
9195
PutsAccelerated++;
9296

97+
GetImpl.History.AddAcceleration(true);
9398
TDeque<std::unique_ptr<TEvBlobStorage::TEvVGet>> vGets;
9499
TDeque<std::unique_ptr<TEvBlobStorage::TEvVPut>> vPuts;
95100
GetImpl.AcceleratePut(LogCtx, GetUnresponsiveDisksMask(), vGets, vPuts);
@@ -107,7 +112,7 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
107112
if (vPuts.size()) {
108113
if (!IsPutStarted) {
109114
IsPutStarted = true;
110-
StartTimePut = TActivationContext::Now();
115+
StartTimePut = TActivationContext::Monotonic();
111116
}
112117
}
113118
for (size_t i = 0; i < vGets.size(); ++i) {
@@ -138,6 +143,7 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
138143
}
139144
SendToQueues(vGets, false);
140145
SendToQueues(vPuts, false);
146+
GetImpl.History.AddAllWaiting();
141147
}
142148

143149
ui32 CountDisksWithActiveRequests() {
@@ -316,8 +322,8 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
316322
// Count VDisks that have requests in flight, if there is no more than 2 such VDisks, Accelerate
317323
if (CountDisksWithActiveRequests() <= 2) {
318324
ui64 timeToAccelerateUs = GetImpl.GetTimeToAccelerateGetNs(LogCtx, GetsAccelerated) / 1000;
319-
TInstant now = TActivationContext::Now();
320-
TDuration timeSinceStart = (now > StartTime) ? (now - StartTime) : TDuration::MilliSeconds(0);
325+
TMonotonic now = TActivationContext::Monotonic();
326+
TDuration timeSinceStart = (now > RequestStartTime) ? (now - RequestStartTime) : TDuration::MilliSeconds(0);
321327
if (timeSinceStart.MicroSeconds() < timeToAccelerateUs) {
322328
ui64 causeIdx = RootCauseTrack.RegisterAccelerate();
323329
Schedule(TDuration::MicroSeconds(timeToAccelerateUs - timeSinceStart.MicroSeconds()),
@@ -335,7 +341,7 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
335341
// Count VDisks that have requests in flight, if there is no more than 2 such VDisks, Accelerate
336342
if (CountDisksWithActiveRequests() <= 2) {
337343
ui64 timeToAccelerateUs = GetImpl.GetTimeToAcceleratePutNs(LogCtx, PutsAccelerated) / 1000;
338-
TInstant now = TActivationContext::Now();
344+
TMonotonic now = TActivationContext::Monotonic();
339345
TDuration timeSinceStart = (now > StartTimePut) ? (now - StartTimePut) : TDuration::MilliSeconds(0);
340346
if (timeSinceStart.MicroSeconds() < timeToAccelerateUs) {
341347
ui64 causeIdx = RootCauseTrack.RegisterAccelerate();
@@ -350,9 +356,10 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
350356
}
351357

352358
void SendReplyAndDie(TAutoPtr<TEvBlobStorage::TEvGetResult> &evResult) {
353-
const TInstant now = TActivationContext::Now();
354-
const TDuration duration = (now > StartTime) ? (now - StartTime) : TDuration::MilliSeconds(0);
355-
Mon->CountGetResponseTime(Info->GetDeviceType(), GetImpl.GetHandleClass(), evResult->PayloadSizeBytes(), duration);
359+
const TMonotonic now = TActivationContext::Monotonic();
360+
const TDuration duration = now - RequestStartTime;
361+
NKikimrBlobStorage::EGetHandleClass handleClass = GetImpl.GetHandleClass();
362+
Mon->CountGetResponseTime(Info->GetDeviceType(), handleClass, evResult->PayloadSizeBytes(), duration);
356363
*Mon->ActiveGetCapacity -= ReportedBytes;
357364
ReportedBytes = 0;
358365
bool success = evResult->Status == NKikimrProto::OK;
@@ -368,9 +375,22 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
368375
LWTRACK(DSProxyGetReply, Orbit);
369376
evResult->Orbit = std::move(Orbit);
370377
LWPROBE(DSProxyRequestDuration, TEvBlobStorage::EvGet, requestSize, duration.SecondsFloat() * 1000.0, tabletId,
371-
evResult->GroupId, channel, NKikimrBlobStorage::EGetHandleClass_Name(GetImpl.GetHandleClass()),
378+
evResult->GroupId, channel, NKikimrBlobStorage::EGetHandleClass_Name(handleClass),
372379
success);
373380
A_LOG_LOG_S(true, success ? NLog::PRI_INFO : NLog::PRI_NOTICE, "BPG68", "Result# " << evResult->Print(false));
381+
382+
if (TActivationContext::Monotonic() - RequestStartTime >= LongRequestThreshold) {
383+
if (AllowToReport(GetImpl.GetHandleClass())) {
384+
STLOG(PRI_WARN, BS_PROXY_GET, BPG71, "Long TEvGet request detected", \
385+
(LongRequestThreshold, LongRequestThreshold), \
386+
(GroupId, Info->GroupID), \
387+
(SubrequestsCount, evResult->ResponseSz), \
388+
(RequestTotalSize, requestSize), \
389+
(HandleClass, NKikimrBlobStorage::EGetHandleClass_Name(handleClass)), \
390+
(RestartCounter, RestartCounter), \
391+
(History, GetImpl.PrintHistory()));
392+
}
393+
}
374394
return SendResponseAndDie(std::unique_ptr<TEvBlobStorage::TEvGetResult>(evResult.Release()));
375395
}
376396

@@ -398,10 +418,10 @@ class TBlobStorageGroupGetRequest : public TBlobStorageGroupRequestActor<TBlobSt
398418
LogCtx.RequestPrefix)
399419
, Orbit(std::move(params.Common.Event->Orbit))
400420
, Deadline(params.Common.Event->Deadline)
401-
, StartTime(params.Common.Now)
402-
, StartTimePut(StartTime)
421+
, StartTimePut(RequestStartTime)
403422
, GroupSize(Info->Type.BlobSubgroupSize())
404423
, ReportedBytes(0)
424+
, LongRequestThreshold(params.LongRequestThreshold)
405425
{
406426
ReportBytes(sizeof(*this));
407427
MaxSaneRequests = params.Common.Event->QuerySize * Info->Type.TotalPartCount() *

0 commit comments

Comments
 (0)