From 1beda4fba63dd593c564e25d8ade98106a399d0c Mon Sep 17 00:00:00 2001 From: nadya02 Date: Wed, 16 Oct 2024 12:24:30 +0300 Subject: [PATCH] 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 --- yt/yt/core/http/server.cpp | 28 ++-------------------------- yt/yt/core/http/server.h | 6 ++---- yt/yt/core/https/server.cpp | 6 ++---- yt/yt/core/https/server.h | 5 +---- 4 files changed, 7 insertions(+), 38 deletions(-) diff --git a/yt/yt/core/http/server.cpp b/yt/yt/core/http/server.cpp index c4c405607..d2fda153b 100644 --- a/yt/yt/core/http/server.cpp +++ b/yt/yt/core/http/server.cpp @@ -12,7 +12,6 @@ #include #include -#include #include #include @@ -63,7 +62,6 @@ class TServer IPollerPtr poller, IPollerPtr acceptor, IInvokerPtr invoker, - IMemoryUsageTrackerPtr memoryUsageTracker, IRequestPathMatcherPtr requestPathMatcher, bool ownPoller = false) : Config_(std::move(config)) @@ -71,7 +69,6 @@ class TServer , 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 @@ class TServer const IPollerPtr Poller_; const IPollerPtr Acceptor_; const IInvokerPtr Invoker_; - const IMemoryUsageTrackerPtr MemoryUsageTracker_; const bool OwnPoller_ = false; IRequestPathMatcherPtr RequestPathMatcher_; @@ -224,15 +220,6 @@ class TServer 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(); @@ -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 171fb7039..e96720981 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 b97cb801e..92bdee379 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(); ApplySslConfig(sslContext, config->Credentials); @@ -165,8 +164,7 @@ IServerPtr CreateServer( configCopy, tlsListener, poller, - acceptor, - memoryTracker); + acceptor); return New(std::move(httpServer), std::move(certificateUpdater)); } diff --git a/yt/yt/core/https/server.h b/yt/yt/core/https/server.h index 46994e8ea..c6c40eeec 100644 --- a/yt/yt/core/https/server.h +++ b/yt/yt/core/https/server.h @@ -8,8 +8,6 @@ #include -#include - 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); ////////////////////////////////////////////////////////////////////////////////