File tree 3 files changed +13
-1
lines changed
ydb/core/tx/limiter/grouped_memory/service
3 files changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,17 @@ ui64 TIdsControl::ExtractInternalIdVerified(const ui64 externalId) {
12
12
return result;
13
13
}
14
14
15
+ std::optional<ui64> TIdsControl::ExtractInternalIdOptional (const ui64 externalId) {
16
+ auto it = ExternalIdIntoInternalId.find (externalId);
17
+ if (it == ExternalIdIntoInternalId.end ()) {
18
+ return std::nullopt;
19
+ }
20
+ const ui64 result = it->second ;
21
+ InternalIdIntoExternalId.erase (result);
22
+ ExternalIdIntoInternalId.erase (it);
23
+ return result;
24
+ }
25
+
15
26
std::optional<ui64> TIdsControl::GetInternalIdOptional (const ui64 externalId) const {
16
27
auto it = ExternalIdIntoInternalId.find (externalId);
17
28
if (it != ExternalIdIntoInternalId.end ()) {
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ class TIdsControl {
29
29
}
30
30
31
31
[[nodiscard]] ui64 ExtractInternalIdVerified (const ui64 externalId);
32
+ [[nodiscard]] std::optional<ui64> ExtractInternalIdOptional (const ui64 externalId);
32
33
33
34
ui64 GetMinInternalIdVerified () const ;
34
35
ui64 GetExternalIdVerified (const ui64 internalId) const ;
Original file line number Diff line number Diff line change @@ -135,7 +135,7 @@ class TProcessMemoryScope: public NColumnShard::TMonitoringObjectsCounter<TProce
135
135
}
136
136
137
137
void UnregisterGroup (const bool isPriorityProcess, const ui64 externalGroupId) {
138
- if (auto internalGroupId = GroupIds.GetInternalIdOptional (externalGroupId)) {
138
+ if (auto internalGroupId = GroupIds.ExtractInternalIdOptional (externalGroupId)) {
139
139
AFL_INFO (NKikimrServices::GROUPED_MEMORY_LIMITER)(" event" , " remove_group" )(" external_group_id" , externalGroupId)(
140
140
" internal_group_id" , internalGroupId);
141
141
UnregisterGroupImpl (*internalGroupId);
You can’t perform that action at this time.
0 commit comments