aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp
diff options
context:
space:
mode:
authoralexvru <alexvru@ydb.tech>2023-08-01 11:23:27 +0300
committeralexvru <alexvru@ydb.tech>2023-08-01 11:23:27 +0300
commit0cc2c02c32be31494e95ea489c313070a75d8928 (patch)
treebf1494061f4ce0c31eb9475b6b5f6e2ef5255694 /library/cpp
parent7e0591a87e723564979f7a7564ef22a2ff3aa8ca (diff)
downloadydb-0cc2c02c32be31494e95ea489c313070a75d8928.tar.gz
Copy ineffective rope in DS proxy Get request KIKIMR-18902
Diffstat (limited to 'library/cpp')
-rw-r--r--library/cpp/actors/util/CMakeLists.darwin-x86_64.txt2
-rw-r--r--library/cpp/actors/util/CMakeLists.linux-aarch64.txt2
-rw-r--r--library/cpp/actors/util/CMakeLists.linux-x86_64.txt2
-rw-r--r--library/cpp/actors/util/CMakeLists.windows-x86_64.txt2
-rw-r--r--library/cpp/actors/util/rope.cpp13
-rw-r--r--library/cpp/actors/util/rope.h2
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt2
-rw-r--r--library/cpp/actors/util/ya.make2
8 files changed, 27 insertions, 0 deletions
diff --git a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
index 6ab1bb43c3..be68d418f7 100644
--- a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
@@ -12,6 +12,7 @@ add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -19,6 +20,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
index 4582852947..9c5183c2bd 100644
--- a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
@@ -13,6 +13,7 @@ target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -20,6 +21,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
index 4582852947..9c5183c2bd 100644
--- a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
@@ -13,6 +13,7 @@ target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -20,6 +21,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
index 6ab1bb43c3..be68d418f7 100644
--- a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
@@ -12,6 +12,7 @@ add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
contrib-libs-cxxsupp
yutil
+ cpp-containers-absl_flat_hash
cpp-deprecated-atomic
library-cpp-pop_count
)
@@ -19,6 +20,7 @@ target_sources(cpp-actors-util PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp
diff --git a/library/cpp/actors/util/rope.cpp b/library/cpp/actors/util/rope.cpp
new file mode 100644
index 0000000000..0927774099
--- /dev/null
+++ b/library/cpp/actors/util/rope.cpp
@@ -0,0 +1,13 @@
+#include "rope.h"
+#include <library/cpp/containers/absl_flat_hash/flat_hash_set.h>
+
+size_t TRope::GetOccupiedMemorySize() const {
+ size_t res = 0;
+ absl::flat_hash_set<const void*> chunks;
+ for (const auto& chunk : Chain) {
+ if (const auto [it, inserted] = chunks.insert(chunk.Backend.UniqueId()); inserted) {
+ res += chunk.Backend.GetOccupiedMemorySize();
+ }
+ }
+ return res;
+}
diff --git a/library/cpp/actors/util/rope.h b/library/cpp/actors/util/rope.h
index 9df251db9c..201ce06f0d 100644
--- a/library/cpp/actors/util/rope.h
+++ b/library/cpp/actors/util/rope.h
@@ -806,6 +806,8 @@ public:
return TRcBuf(Begin().GetChunk());
}
+ size_t GetOccupiedMemorySize() const;
+
friend bool operator==(const TRope& x, const TRope& y) { return Compare(x, y) == 0; }
friend bool operator!=(const TRope& x, const TRope& y) { return Compare(x, y) != 0; }
friend bool operator< (const TRope& x, const TRope& y) { return Compare(x, y) < 0; }
diff --git a/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
index cb32e0652f..f02b2d926c 100644
--- a/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
@@ -22,6 +22,8 @@ target_link_options(library-cpp-actors-util-ut PRIVATE
-Wl,-platform_version,macos,11.0,11.0
-fPIC
-fPIC
+ -framework
+ CoreFoundation
)
target_sources(library-cpp-actors-util-ut PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp
diff --git a/library/cpp/actors/util/ya.make b/library/cpp/actors/util/ya.make
index 912b55868d..48d595c156 100644
--- a/library/cpp/actors/util/ya.make
+++ b/library/cpp/actors/util/ya.make
@@ -19,6 +19,7 @@ SRCS(
memory_tracker.cpp
memory_tracker.h
recentwnd.h
+ rope.cpp
rope.h
rc_buf.cpp
rc_buf.h
@@ -37,6 +38,7 @@ SRCS(
)
PEERDIR(
+ library/cpp/containers/absl_flat_hash
library/cpp/deprecated/atomic
library/cpp/pop_count
)