aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornadya02 <nadya02@yandex-team.com>2024-10-16 12:24:30 +0300
committernadya02 <nadya02@yandex-team.com>2024-10-16 12:50:10 +0300
commit28a0c4a9f297064538a018c512cd9bbd00a1a35d (patch)
treef77ee7f16947377b24a81dbbe6588cb1e43f2cd2
parente0fb25470a47f0c243091ed28bf54a186f732f6a (diff)
downloadydb-28a0c4a9f297064538a018c512cd9bbd00a1a35d.tar.gz
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
-rw-r--r--yt/yt/core/http/server.cpp28
-rw-r--r--yt/yt/core/http/server.h6
-rw-r--r--yt/yt/core/https/server.cpp6
-rw-r--r--yt/yt/core/https/server.h5
4 files changed, 7 insertions, 38 deletions
diff --git a/yt/yt/core/http/server.cpp b/yt/yt/core/http/server.cpp
index c4c4056073..d2fda153b5 100644
--- a/yt/yt/core/http/server.cpp
+++ b/yt/yt/core/http/server.cpp
@@ -12,7 +12,6 @@
#include <yt/yt/core/concurrency/thread_pool_poller.h>
#include <yt/yt/core/misc/finally.h>
-#include <yt/yt/core/misc/memory_usage_tracker.h>
#include <yt/yt/core/misc/public.h>
#include <yt/yt/core/ytree/convert.h>
@@ -63,7 +62,6 @@ public:
IPollerPtr poller,
IPollerPtr acceptor,
IInvokerPtr invoker,
- IMemoryUsageTrackerPtr memoryUsageTracker,
IRequestPathMatcherPtr requestPathMatcher,
bool ownPoller = false)
: Config_(std::move(config))
@@ -71,7 +69,6 @@ public:
, Poller_(std::move(poller))
, Acceptor_(std::move(acceptor))
, Invoker_(std::move(invoker))
- , MemoryUsageTracker_(std::move(memoryUsageTracker))
, OwnPoller_(ownPoller)
, RequestPathMatcher_(std::move(requestPathMatcher))
{ }
@@ -126,7 +123,6 @@ private:
const IPollerPtr Poller_;
const IPollerPtr Acceptor_;
const IInvokerPtr Invoker_;
- const IMemoryUsageTrackerPtr MemoryUsageTracker_;
const bool OwnPoller_ = false;
IRequestPathMatcherPtr RequestPathMatcher_;
@@ -224,15 +220,6 @@ private:
SetRequestId(response, request->GetRequestId());
- if (MemoryUsageTracker_ && MemoryUsageTracker_->IsExceeded()) {
- // We use Unavailable code here, as it is already retryable in all clients.
- THROW_ERROR_EXCEPTION(
- NRpc::EErrorCode::Unavailable,
- "Request is dropped due to high memory pressure")
- << TErrorAttribute("total_memory_limit", MemoryUsageTracker_->GetLimit())
- << TErrorAttribute("memory_usage", MemoryUsageTracker_->GetUsed());
- }
-
handler->HandleRequest(request, response);
NTracing::FlushCurrentTraceContextElapsedTime();
@@ -394,7 +381,6 @@ IServerPtr CreateServer(
IPollerPtr poller,
IPollerPtr acceptor,
IInvokerPtr invoker,
- IMemoryUsageTrackerPtr memoryUsageTracker,
bool ownPoller)
{
auto handlers = New<TRequestPathMatcher>();
@@ -404,7 +390,6 @@ IServerPtr CreateServer(
std::move(poller),
std::move(acceptor),
std::move(invoker),
- std::move(memoryUsageTracker),
std::move(handlers),
ownPoller);
}
@@ -414,7 +399,6 @@ IServerPtr CreateServer(
IPollerPtr poller,
IPollerPtr acceptor,
IInvokerPtr invoker,
- IMemoryUsageTrackerPtr memoryUsageTracker,
bool ownPoller)
{
auto address = TNetworkAddress::CreateIPv6Any(config->Port);
@@ -427,7 +411,6 @@ IServerPtr CreateServer(
std::move(poller),
std::move(acceptor),
std::move(invoker),
- std::move(memoryUsageTracker),
ownPoller);
} catch (const std::exception& ex) {
if (i + 1 == config->BindRetryCount) {
@@ -457,7 +440,6 @@ IServerPtr CreateServer(
std::move(poller),
std::move(acceptor),
std::move(invoker),
- /*memoryUsageTracker*/ GetNullMemoryUsageTracker(),
/*ownPoller*/ false);
}
@@ -465,8 +447,7 @@ IServerPtr CreateServer(
TServerConfigPtr config,
IListenerPtr listener,
IPollerPtr poller,
- IPollerPtr acceptor,
- IMemoryUsageTrackerPtr memoryUsageTracker)
+ IPollerPtr acceptor)
{
auto invoker = poller->GetInvoker();
return CreateServer(
@@ -475,15 +456,13 @@ IServerPtr CreateServer(
std::move(poller),
std::move(acceptor),
std::move(invoker),
- std::move(memoryUsageTracker),
/*ownPoller*/ false);
}
IServerPtr CreateServer(
TServerConfigPtr config,
IPollerPtr poller,
- IPollerPtr acceptor,
- IMemoryUsageTrackerPtr memoryUsageTracker)
+ IPollerPtr acceptor)
{
auto invoker = poller->GetInvoker();
return CreateServer(
@@ -491,7 +470,6 @@ IServerPtr CreateServer(
std::move(poller),
std::move(acceptor),
std::move(invoker),
- std::move(memoryUsageTracker),
/*ownPoller*/ false);
}
@@ -521,7 +499,6 @@ IServerPtr CreateServer(TServerConfigPtr config, int pollerThreadCount)
std::move(poller),
std::move(acceptor),
std::move(invoker),
- /*memoryUsageTracker*/ GetNullMemoryUsageTracker(),
/*ownPoller*/ true);
}
@@ -536,7 +513,6 @@ IServerPtr CreateServer(
std::move(poller),
std::move(acceptor),
std::move(invoker),
- /*memoryUsageTracker*/ GetNullMemoryUsageTracker(),
/*ownPoller*/ false);
}
diff --git a/yt/yt/core/http/server.h b/yt/yt/core/http/server.h
index 171fb70399..e96720981b 100644
--- a/yt/yt/core/http/server.h
+++ b/yt/yt/core/http/server.h
@@ -89,16 +89,14 @@ IServerPtr CreateServer(
TServerConfigPtr config,
NNet::IListenerPtr listener,
NConcurrency::IPollerPtr poller,
- NConcurrency::IPollerPtr acceptor,
- IMemoryUsageTrackerPtr memoryTracker = GetNullMemoryUsageTracker());
+ NConcurrency::IPollerPtr acceptor);
IServerPtr CreateServer(
TServerConfigPtr config,
NConcurrency::IPollerPtr poller);
IServerPtr CreateServer(
TServerConfigPtr config,
NConcurrency::IPollerPtr poller,
- NConcurrency::IPollerPtr acceptor,
- IMemoryUsageTrackerPtr memoryTracker = GetNullMemoryUsageTracker());
+ NConcurrency::IPollerPtr acceptor);
IServerPtr CreateServer(
int port,
NConcurrency::IPollerPtr poller);
diff --git a/yt/yt/core/https/server.cpp b/yt/yt/core/https/server.cpp
index b97cb801e8..92bdee379f 100644
--- a/yt/yt/core/https/server.cpp
+++ b/yt/yt/core/https/server.cpp
@@ -112,8 +112,7 @@ IServerPtr CreateServer(
const TServerConfigPtr& config,
const IPollerPtr& poller,
const IPollerPtr& acceptor,
- const IInvokerPtr& controlInvoker,
- const IMemoryUsageTrackerPtr& memoryTracker)
+ const IInvokerPtr& controlInvoker)
{
auto sslContext = New<TSslContext>();
ApplySslConfig(sslContext, config->Credentials);
@@ -165,8 +164,7 @@ IServerPtr CreateServer(
configCopy,
tlsListener,
poller,
- acceptor,
- memoryTracker);
+ acceptor);
return New<TServer>(std::move(httpServer), std::move(certificateUpdater));
}
diff --git a/yt/yt/core/https/server.h b/yt/yt/core/https/server.h
index 46994e8ea4..c6c40eeec3 100644
--- a/yt/yt/core/https/server.h
+++ b/yt/yt/core/https/server.h
@@ -8,8 +8,6 @@
#include <yt/yt/core/http/public.h>
-#include <yt/yt/core/misc/memory_usage_tracker.h>
-
namespace NYT::NHttps {
////////////////////////////////////////////////////////////////////////////////
@@ -28,8 +26,7 @@ NHttp::IServerPtr CreateServer(
const TServerConfigPtr& config,
const NConcurrency::IPollerPtr& poller,
const NConcurrency::IPollerPtr& acceptor,
- const IInvokerPtr& controlInvoker,
- const IMemoryUsageTrackerPtr& memoryTracker = GetNullMemoryUsageTracker());
+ const IInvokerPtr& controlInvoker);
////////////////////////////////////////////////////////////////////////////////