Skip to content

Commit 5509b27

Browse files
authored
Add the query_memory_tracker (#4721)
This allows easy access for readers and writers to the query memory tracker. Originally written as part of the Tile instrumentation PR, this is just an extraction so that it can unblock other work in adding other measurements. --- TYPE: NO_HISTORY DESC: Add the query_memory_tracker
1 parent 3351f2a commit 5509b27

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

test/src/unit-Reader.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,15 @@ struct ReaderFx {
6969
const char* ARRAY_NAME = "reader";
7070
tiledb_array_t* array_ = nullptr;
7171

72+
shared_ptr<MemoryTracker> tracker_;
73+
7274
ReaderFx();
7375
~ReaderFx();
7476
};
7577

7678
ReaderFx::ReaderFx()
77-
: fs_vec_(vfs_test_get_fs_vec()) {
79+
: fs_vec_(vfs_test_get_fs_vec())
80+
, tracker_(tiledb::test::create_test_memory_tracker()) {
7881
// Initialize vfs test
7982
REQUIRE(vfs_test_init(fs_vec_, &ctx_, &vfs_).ok());
8083

@@ -166,6 +169,7 @@ TEST_CASE_METHOD(
166169
DefaultChannelAggregates default_channel_aggregates;
167170
auto params = StrategyParams(
168171
array.memory_tracker(),
172+
tracker_,
169173
context.storage_manager(),
170174
array.opened_array(),
171175
config,

tiledb/sm/query/query.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1807,6 +1807,7 @@ bool Query::is_aggregate(std::string output_field_name) const {
18071807
Status Query::create_strategy(bool skip_checks_serialization) {
18081808
auto params = StrategyParams(
18091809
array_->memory_tracker(),
1810+
query_memory_tracker_,
18101811
storage_manager_,
18111812
opened_array_,
18121813
config_,

tiledb/sm/query/strategy_base.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ namespace sm {
4848
StrategyBase::StrategyBase(
4949
stats::Stats* stats, shared_ptr<Logger> logger, StrategyParams& params)
5050
: array_memory_tracker_(params.array_memory_tracker())
51+
, query_memory_tracker_(params.query_memory_tracker())
5152
, stats_(stats)
5253
, logger_(logger)
5354
, array_(params.array())

tiledb/sm/query/strategy_base.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ class StrategyParams {
6767

6868
StrategyParams(
6969
shared_ptr<MemoryTracker> array_memory_tracker,
70+
shared_ptr<MemoryTracker> query_memory_tracker,
7071
StorageManager* storage_manager,
7172
shared_ptr<OpenedArray> array,
7273
Config& config,
@@ -78,6 +79,7 @@ class StrategyParams {
7879
DefaultChannelAggregates& default_channel_aggregates,
7980
bool skip_checks_serialization)
8081
: array_memory_tracker_(array_memory_tracker)
82+
, query_memory_tracker_(query_memory_tracker)
8183
, storage_manager_(storage_manager)
8284
, array_(array)
8385
, config_(config)
@@ -99,6 +101,10 @@ class StrategyParams {
99101
return array_memory_tracker_;
100102
}
101103

104+
inline shared_ptr<MemoryTracker> query_memory_tracker() {
105+
return query_memory_tracker_;
106+
}
107+
102108
/** Return the storage manager. */
103109
inline StorageManager* storage_manager() {
104110
return storage_manager_;
@@ -157,6 +163,9 @@ class StrategyParams {
157163
/** Array Memory tracker. */
158164
shared_ptr<MemoryTracker> array_memory_tracker_;
159165

166+
/** Query Memory tracker. */
167+
shared_ptr<MemoryTracker> query_memory_tracker_;
168+
160169
/** Storage manager. */
161170
StorageManager* storage_manager_;
162171

@@ -242,9 +251,12 @@ class StrategyBase {
242251
/* PROTECTED ATTRIBUTES */
243252
/* ********************************* */
244253

245-
/** The memory tracker. */
254+
/** The array memory tracker. */
246255
shared_ptr<MemoryTracker> array_memory_tracker_;
247256

257+
/** The query memory tracker. */
258+
shared_ptr<MemoryTracker> query_memory_tracker_;
259+
248260
/** The class stats. */
249261
stats::Stats* stats_;
250262

0 commit comments

Comments
 (0)