Skip to content

Commit 28a0c4a

Browse files
author
nadya02
committed
YT-22072: Drop only heavy request during memory overcommit
* Changelog entry Type: fix Component: http-proxy Drop only heavy request during memory overcommit. commit_hash:9ce1601d749f397b773f9e5daba45f7ae33ec26b
1 parent e0fb254 commit 28a0c4a

File tree

4 files changed

+7
-38
lines changed

4 files changed

+7
-38
lines changed

yt/yt/core/http/server.cpp

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include <yt/yt/core/concurrency/thread_pool_poller.h>
1313

1414
#include <yt/yt/core/misc/finally.h>
15-
#include <yt/yt/core/misc/memory_usage_tracker.h>
1615
#include <yt/yt/core/misc/public.h>
1716

1817
#include <yt/yt/core/ytree/convert.h>
@@ -63,15 +62,13 @@ class TServer
6362
IPollerPtr poller,
6463
IPollerPtr acceptor,
6564
IInvokerPtr invoker,
66-
IMemoryUsageTrackerPtr memoryUsageTracker,
6765
IRequestPathMatcherPtr requestPathMatcher,
6866
bool ownPoller = false)
6967
: Config_(std::move(config))
7068
, Listener_(std::move(listener))
7169
, Poller_(std::move(poller))
7270
, Acceptor_(std::move(acceptor))
7371
, Invoker_(std::move(invoker))
74-
, MemoryUsageTracker_(std::move(memoryUsageTracker))
7572
, OwnPoller_(ownPoller)
7673
, RequestPathMatcher_(std::move(requestPathMatcher))
7774
{ }
@@ -126,7 +123,6 @@ class TServer
126123
const IPollerPtr Poller_;
127124
const IPollerPtr Acceptor_;
128125
const IInvokerPtr Invoker_;
129-
const IMemoryUsageTrackerPtr MemoryUsageTracker_;
130126
const bool OwnPoller_ = false;
131127

132128
IRequestPathMatcherPtr RequestPathMatcher_;
@@ -224,15 +220,6 @@ class TServer
224220

225221
SetRequestId(response, request->GetRequestId());
226222

227-
if (MemoryUsageTracker_ && MemoryUsageTracker_->IsExceeded()) {
228-
// We use Unavailable code here, as it is already retryable in all clients.
229-
THROW_ERROR_EXCEPTION(
230-
NRpc::EErrorCode::Unavailable,
231-
"Request is dropped due to high memory pressure")
232-
<< TErrorAttribute("total_memory_limit", MemoryUsageTracker_->GetLimit())
233-
<< TErrorAttribute("memory_usage", MemoryUsageTracker_->GetUsed());
234-
}
235-
236223
handler->HandleRequest(request, response);
237224

238225
NTracing::FlushCurrentTraceContextElapsedTime();
@@ -394,7 +381,6 @@ IServerPtr CreateServer(
394381
IPollerPtr poller,
395382
IPollerPtr acceptor,
396383
IInvokerPtr invoker,
397-
IMemoryUsageTrackerPtr memoryUsageTracker,
398384
bool ownPoller)
399385
{
400386
auto handlers = New<TRequestPathMatcher>();
@@ -404,7 +390,6 @@ IServerPtr CreateServer(
404390
std::move(poller),
405391
std::move(acceptor),
406392
std::move(invoker),
407-
std::move(memoryUsageTracker),
408393
std::move(handlers),
409394
ownPoller);
410395
}
@@ -414,7 +399,6 @@ IServerPtr CreateServer(
414399
IPollerPtr poller,
415400
IPollerPtr acceptor,
416401
IInvokerPtr invoker,
417-
IMemoryUsageTrackerPtr memoryUsageTracker,
418402
bool ownPoller)
419403
{
420404
auto address = TNetworkAddress::CreateIPv6Any(config->Port);
@@ -427,7 +411,6 @@ IServerPtr CreateServer(
427411
std::move(poller),
428412
std::move(acceptor),
429413
std::move(invoker),
430-
std::move(memoryUsageTracker),
431414
ownPoller);
432415
} catch (const std::exception& ex) {
433416
if (i + 1 == config->BindRetryCount) {
@@ -457,16 +440,14 @@ IServerPtr CreateServer(
457440
std::move(poller),
458441
std::move(acceptor),
459442
std::move(invoker),
460-
/*memoryUsageTracker*/ GetNullMemoryUsageTracker(),
461443
/*ownPoller*/ false);
462444
}
463445

464446
IServerPtr CreateServer(
465447
TServerConfigPtr config,
466448
IListenerPtr listener,
467449
IPollerPtr poller,
468-
IPollerPtr acceptor,
469-
IMemoryUsageTrackerPtr memoryUsageTracker)
450+
IPollerPtr acceptor)
470451
{
471452
auto invoker = poller->GetInvoker();
472453
return CreateServer(
@@ -475,23 +456,20 @@ IServerPtr CreateServer(
475456
std::move(poller),
476457
std::move(acceptor),
477458
std::move(invoker),
478-
std::move(memoryUsageTracker),
479459
/*ownPoller*/ false);
480460
}
481461

482462
IServerPtr CreateServer(
483463
TServerConfigPtr config,
484464
IPollerPtr poller,
485-
IPollerPtr acceptor,
486-
IMemoryUsageTrackerPtr memoryUsageTracker)
465+
IPollerPtr acceptor)
487466
{
488467
auto invoker = poller->GetInvoker();
489468
return CreateServer(
490469
std::move(config),
491470
std::move(poller),
492471
std::move(acceptor),
493472
std::move(invoker),
494-
std::move(memoryUsageTracker),
495473
/*ownPoller*/ false);
496474
}
497475

@@ -521,7 +499,6 @@ IServerPtr CreateServer(TServerConfigPtr config, int pollerThreadCount)
521499
std::move(poller),
522500
std::move(acceptor),
523501
std::move(invoker),
524-
/*memoryUsageTracker*/ GetNullMemoryUsageTracker(),
525502
/*ownPoller*/ true);
526503
}
527504

@@ -536,7 +513,6 @@ IServerPtr CreateServer(
536513
std::move(poller),
537514
std::move(acceptor),
538515
std::move(invoker),
539-
/*memoryUsageTracker*/ GetNullMemoryUsageTracker(),
540516
/*ownPoller*/ false);
541517
}
542518

yt/yt/core/http/server.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,14 @@ IServerPtr CreateServer(
8989
TServerConfigPtr config,
9090
NNet::IListenerPtr listener,
9191
NConcurrency::IPollerPtr poller,
92-
NConcurrency::IPollerPtr acceptor,
93-
IMemoryUsageTrackerPtr memoryTracker = GetNullMemoryUsageTracker());
92+
NConcurrency::IPollerPtr acceptor);
9493
IServerPtr CreateServer(
9594
TServerConfigPtr config,
9695
NConcurrency::IPollerPtr poller);
9796
IServerPtr CreateServer(
9897
TServerConfigPtr config,
9998
NConcurrency::IPollerPtr poller,
100-
NConcurrency::IPollerPtr acceptor,
101-
IMemoryUsageTrackerPtr memoryTracker = GetNullMemoryUsageTracker());
99+
NConcurrency::IPollerPtr acceptor);
102100
IServerPtr CreateServer(
103101
int port,
104102
NConcurrency::IPollerPtr poller);

yt/yt/core/https/server.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ IServerPtr CreateServer(
112112
const TServerConfigPtr& config,
113113
const IPollerPtr& poller,
114114
const IPollerPtr& acceptor,
115-
const IInvokerPtr& controlInvoker,
116-
const IMemoryUsageTrackerPtr& memoryTracker)
115+
const IInvokerPtr& controlInvoker)
117116
{
118117
auto sslContext = New<TSslContext>();
119118
ApplySslConfig(sslContext, config->Credentials);
@@ -165,8 +164,7 @@ IServerPtr CreateServer(
165164
configCopy,
166165
tlsListener,
167166
poller,
168-
acceptor,
169-
memoryTracker);
167+
acceptor);
170168

171169
return New<TServer>(std::move(httpServer), std::move(certificateUpdater));
172170
}

yt/yt/core/https/server.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88

99
#include <yt/yt/core/http/public.h>
1010

11-
#include <yt/yt/core/misc/memory_usage_tracker.h>
12-
1311
namespace NYT::NHttps {
1412

1513
////////////////////////////////////////////////////////////////////////////////
@@ -28,8 +26,7 @@ NHttp::IServerPtr CreateServer(
2826
const TServerConfigPtr& config,
2927
const NConcurrency::IPollerPtr& poller,
3028
const NConcurrency::IPollerPtr& acceptor,
31-
const IInvokerPtr& controlInvoker,
32-
const IMemoryUsageTrackerPtr& memoryTracker = GetNullMemoryUsageTracker());
29+
const IInvokerPtr& controlInvoker);
3330

3431
////////////////////////////////////////////////////////////////////////////////
3532

0 commit comments

Comments
 (0)