Skip to content

Commit 1e172ec

Browse files
authored
Revert "Fix deadlines in DSProxy for Status, MultiPut, Patch requests, add UTs for deadlines (#11780)" (#12875)
1 parent 3c2e65a commit 1e172ec

File tree

5 files changed

+64
-386
lines changed

5 files changed

+64
-386
lines changed

ydb/core/blobstorage/dsproxy/dsproxy.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ const ui64 UnconfiguredBufferSizeLimit = 32 << 20;
3939

4040
const TDuration ProxyEstablishSessionsTimeout = TDuration::Seconds(100);
4141

42-
const TDuration DsMinimumDelayBetweenPutWakeups = TDuration::MilliSeconds(1);
42+
const ui64 DsPutWakeupMs = 60000;
4343

4444
const ui64 BufferSizeThreshold = 1 << 20;
4545

ydb/core/blobstorage/dsproxy/dsproxy_put.cpp

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActor {
4242
TErasureSplitContext ErasureSplitContext = TErasureSplitContext::Init(MaxBytesToSplitAtOnce);
4343
TBatchedVec<TStackVec<TRope, TypicalPartsInBlob>> PartSets;
4444

45-
using TDeadlineMask = std::bitset<MaxBatchedPutRequests>;
46-
std::map<TInstant, TDeadlineMask> PutDeadlineMasks;
47-
TDeadlineMask DeadlineMask;
48-
4945
TStackVec<ui64, TypicalDisksInGroup> WaitingVDiskResponseCount;
5046
ui64 WaitingVDiskCount = 0;
5147

@@ -651,7 +647,6 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActor {
651647
<< " RestartCounter# " << RestartCounter);
652648

653649
for (size_t blobIdx = 0; blobIdx < PutImpl.Blobs.size(); ++blobIdx) {
654-
PutDeadlineMasks[PutImpl.Blobs[blobIdx].Deadline].set(blobIdx);
655650
LWTRACK(DSProxyPutBootstrapStart, PutImpl.Blobs[blobIdx].Orbit);
656651
}
657652

@@ -672,8 +667,7 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActor {
672667
getTotalSize()
673668
);
674669

675-
Become(&TBlobStorageGroupPutRequest::StateWait);
676-
ScheduleWakeup(TInstant::Zero());
670+
Become(&TBlobStorageGroupPutRequest::StateWait, TDuration::MilliSeconds(DsPutWakeupMs), new TKikimrEvents::TEvWakeup);
677671

678672
PartSets.resize(PutImpl.Blobs.size());
679673
for (auto& partSet : PartSets) {
@@ -724,27 +718,15 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActor {
724718
<< " BlobIDs# " << BlobIdSequenceToString()
725719
<< " Not answered in "
726720
<< (TActivationContext::Monotonic() - RequestStartTime) << " seconds");
727-
728721
const TInstant now = TActivationContext::Now();
729-
while (!PutDeadlineMasks.empty()) {
730-
auto [deadline, mask] = *PutDeadlineMasks.begin();
731-
if (deadline <= now) {
732-
DeadlineMask |= mask;
733-
PutDeadlineMasks.erase(PutDeadlineMasks.begin());
734-
} else {
735-
break;
736-
}
737-
}
738-
739722
TPutImpl::TPutResultVec putResults;
740723
for (size_t blobIdx = 0; blobIdx < PutImpl.Blobs.size(); ++blobIdx) {
741-
if (!PutImpl.Blobs[blobIdx].Replied && DeadlineMask[blobIdx]) {
724+
if (!PutImpl.Blobs[blobIdx].Replied && now > PutImpl.Blobs[blobIdx].Deadline) {
742725
PutImpl.PrepareOneReply(NKikimrProto::DEADLINE, blobIdx, LogCtx, "Deadline timer hit", putResults);
743726
}
744727
}
745-
if (!ReplyAndDieWithLastResponse(putResults)) {
746-
ScheduleWakeup(now);
747-
}
728+
ReplyAndDieWithLastResponse(putResults);
729+
Schedule(TDuration::MilliSeconds(DsPutWakeupMs), new TKikimrEvents::TEvWakeup);
748730
}
749731

750732
void UpdatePengingVDiskResponseCount(const TDeque<TPutImpl::TPutEvent>& putEvents) {
@@ -811,21 +793,6 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActor {
811793
<< " State# " << PutImpl.DumpFullState());
812794
}
813795

814-
void ScheduleWakeup(TInstant lastWakeup) {
815-
TInstant now = TActivationContext::Now();
816-
TInstant deadline = lastWakeup + DsMinimumDelayBetweenPutWakeups;
817-
818-
// find first deadline after now
819-
for (auto it = PutDeadlineMasks.begin(); it != PutDeadlineMasks.end(); ++it) {
820-
deadline = std::max(deadline, it->first);
821-
if (it->first > now) {
822-
break;
823-
}
824-
}
825-
826-
Schedule(deadline, new TKikimrEvents::TEvWakeup);
827-
}
828-
829796
STATEFN(StateWait) {
830797
if (ProcessEvent(ev, true)) {
831798
return;

ydb/core/blobstorage/dsproxy/dsproxy_request.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ namespace NKikimr {
448448
.ExecutionRelay = ev->Get()->ExecutionRelay
449449
}
450450
}),
451-
ev->Get()->Deadline
451+
TInstant::Max()
452452
);
453453
}
454454

0 commit comments

Comments
 (0)