summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov333 <[email protected]>2024-12-27 08:39:52 +0300
committerGitHub <[email protected]>2024-12-27 08:39:52 +0300
commit094be61da2002a2e04a1bfcaef1760447fc283bc (patch)
treeeceb1c5b5f9a334c20a9f55a886c3486ee3d1a21
parent24c8b75e8f7bc146917375bfd99a4fbb4d798d31 (diff)
fetcher accessors signals (#13038)
-rw-r--r--ydb/core/tx/columnshard/data_accessor/manager.cpp6
-rw-r--r--ydb/core/tx/columnshard/data_accessor/manager.h33
2 files changed, 33 insertions, 6 deletions
diff --git a/ydb/core/tx/columnshard/data_accessor/manager.cpp b/ydb/core/tx/columnshard/data_accessor/manager.cpp
index 7f0b7bdc151..906a86a680e 100644
--- a/ydb/core/tx/columnshard/data_accessor/manager.cpp
+++ b/ydb/core/tx/columnshard/data_accessor/manager.cpp
@@ -57,6 +57,7 @@ void TLocalManager::DrainQueue() {
auto it = RequestsByPortion.find(accessor.GetPortionInfo().GetPortionId());
AFL_VERIFY(it != RequestsByPortion.end());
for (auto&& i : it->second) {
+ Counters.ResultFromCache->Add(1);
if (!i->IsFetched() && !i->IsAborted()) {
i->AddAccessor(accessor);
}
@@ -66,11 +67,14 @@ void TLocalManager::DrainQueue() {
--countToFlight;
}
if (dataAnalyzed.GetPortionsToAsk().size()) {
+ Counters.ResultAskDirectly->Add(dataAnalyzed.GetPortionsToAsk().size());
it->second->AskData(dataAnalyzed.GetPortionsToAsk(), AccessorCallback, "ANALYZE");
}
}
}
PortionsAskInFlight += countToFlight;
+ Counters.FetchingCount->Set(PortionsAskInFlight);
+ Counters.QueueSize->Set(PortionsAsk.size());
}
void TLocalManager::DoAskData(const std::shared_ptr<TDataAccessorsRequest>& request) {
@@ -82,8 +86,10 @@ void TLocalManager::DoAskData(const std::shared_ptr<TDataAccessorsRequest>& requ
if (itRequest == RequestsByPortion.end()) {
AFL_VERIFY(RequestsByPortion.emplace(i->GetPortionId(), std::vector<std::shared_ptr<TDataAccessorsRequest>>({request})).second);
PortionsAsk.emplace_back(i, request->GetAbortionFlag());
+ Counters.AskNew->Add(1);
} else {
itRequest->second.emplace_back(request);
+ Counters.AskDuplication->Add(1);
}
}
}
diff --git a/ydb/core/tx/columnshard/data_accessor/manager.h b/ydb/core/tx/columnshard/data_accessor/manager.h
index d4bbefa60e4..c03e7a6c6c3 100644
--- a/ydb/core/tx/columnshard/data_accessor/manager.h
+++ b/ydb/core/tx/columnshard/data_accessor/manager.h
@@ -8,6 +8,29 @@
namespace NKikimr::NOlap::NDataAccessorControl {
+class TAccessorSignals: public NColumnShard::TCommonCountersOwner {
+private:
+ using TBase = NColumnShard::TCommonCountersOwner;
+
+public:
+ const NMonitoring::TDynamicCounters::TCounterPtr QueueSize;
+ const NMonitoring::TDynamicCounters::TCounterPtr FetchingCount;
+ const NMonitoring::TDynamicCounters::TCounterPtr AskNew;
+ const NMonitoring::TDynamicCounters::TCounterPtr AskDuplication;
+ const NMonitoring::TDynamicCounters::TCounterPtr ResultFromCache;
+ const NMonitoring::TDynamicCounters::TCounterPtr ResultAskDirectly;
+
+ TAccessorSignals()
+ : TBase("AccessorsFetching")
+ , QueueSize(TBase::GetValue("Queue/Count"))
+ , FetchingCount(TBase::GetValue("Fetching/Count"))
+ , AskNew(TBase::GetDeriviative("Ask/Fault/Count"))
+ , AskDuplication(TBase::GetDeriviative("Ask/Duplication/Count"))
+ , ResultFromCache(TBase::GetDeriviative("ResultFromCache/Count"))
+ , ResultAskDirectly(TBase::GetDeriviative("ResultAskDirectly/Count")) {
+ }
+};
+
class IDataAccessorsManager {
private:
virtual void DoAskData(const std::shared_ptr<TDataAccessorsRequest>& request) = 0;
@@ -80,10 +103,8 @@ private:
public:
TActorAccessorsManager(const NActors::TActorId& actorId, const NActors::TActorId& tabletActorId)
: TBase(tabletActorId)
- , ActorId(actorId)
- , AccessorsCallback(std::make_shared<TActorAccessorsCallback>(ActorId))
- {
-
+ , ActorId(actorId)
+ , AccessorsCallback(std::make_shared<TActorAccessorsCallback>(ActorId)) {
AFL_VERIFY(!!tabletActorId);
}
};
@@ -93,6 +114,7 @@ private:
using TBase = IDataAccessorsManager;
THashMap<ui64, std::unique_ptr<IGranuleDataAccessor>> Managers;
THashMap<ui64, std::vector<std::shared_ptr<TDataAccessorsRequest>>> RequestsByPortion;
+ TAccessorSignals Counters;
const std::shared_ptr<IAccessorCallback> AccessorCallback;
class TPortionToAsk {
@@ -157,8 +179,7 @@ public:
TLocalManager(const std::shared_ptr<IAccessorCallback>& callback)
: TBase(NActors::TActorId())
- , AccessorCallback(callback)
- {
+ , AccessorCallback(callback) {
}
};