Skip to content

Commit 0ad881e

Browse files
committed
Fix most compile errors.
1 parent d6af715 commit 0ad881e

File tree

8 files changed

+78
-44
lines changed

8 files changed

+78
-44
lines changed

tiledb/sm/array/array.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ class Array {
784784
}
785785

786786
/** Returns the memory tracker. */
787-
inline shared_ptr<MemoryTracker> memory_tracker() {
787+
inline shared_ptr<MemoryTracker> memory_tracker() const {
788788
return memory_tracker_;
789789
}
790790

tiledb/sm/fragment/fragment_metadata.cc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ FragmentMetadata::FragmentMetadata(
144144

145145
FragmentMetadata::FragmentMetadata(
146146
ContextResources* resources,
147-
MemoryTracker* memory_tracker,
147+
shared_ptr<MemoryTracker> memory_tracker,
148148
shared_ptr<const ArraySchema> array_schema,
149149
std::vector<uint64_t>&& file_sizes,
150150
std::vector<uint64_t>&& file_var_sizes,
@@ -155,16 +155,16 @@ FragmentMetadata::FragmentMetadata(
155155
bool has_consolidated_footer,
156156
uint64_t sparse_tile_num,
157157
uint64_t tile_index_base,
158-
std::vector<std::vector<uint64_t>>&& tile_offsets,
159-
std::vector<std::vector<uint64_t>>&& tile_var_offsets,
160-
std::vector<std::vector<uint64_t>>&& tile_var_sizes,
161-
std::vector<std::vector<uint64_t>>&& tile_validity_offsets,
162-
std::vector<std::vector<uint8_t>>&& tile_min_buffer,
163-
std::vector<std::vector<char>>&& tile_min_var_buffer,
164-
std::vector<std::vector<uint8_t>>&& tile_max_buffer,
165-
std::vector<std::vector<char>>&& tile_max_var_buffer,
166-
std::vector<std::vector<uint8_t>>&& tile_sums,
167-
std::vector<std::vector<uint64_t>>&& tile_null_counts,
158+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_offsets,
159+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_var_offsets,
160+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_var_sizes,
161+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_validity_offsets,
162+
tdb::pmr::vector<tdb::pmr::vector<uint8_t>>&& tile_min_buffer,
163+
tdb::pmr::vector<tdb::pmr::vector<char>>&& tile_min_var_buffer,
164+
tdb::pmr::vector<tdb::pmr::vector<uint8_t>>&& tile_max_buffer,
165+
tdb::pmr::vector<tdb::pmr::vector<char>>&& tile_max_var_buffer,
166+
tdb::pmr::vector<tdb::pmr::vector<uint8_t>>&& tile_sums,
167+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_null_counts,
168168
std::vector<std::vector<uint8_t>>&& fragment_mins,
169169
std::vector<std::vector<uint8_t>>&& fragment_maxs,
170170
std::vector<uint64_t>&& fragment_sums,

tiledb/sm/fragment/fragment_metadata.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ class FragmentMetadata {
114114
*/
115115
FragmentMetadata(
116116
ContextResources* resources,
117-
MemoryTracker* memory_tracker,
117+
shared_ptr<MemoryTracker> memory_tracker,
118118
shared_ptr<const ArraySchema> array_schema,
119119
std::vector<uint64_t>&& file_sizes,
120120
std::vector<uint64_t>&& file_var_sizes,
@@ -125,16 +125,16 @@ class FragmentMetadata {
125125
bool has_consolidated_footer,
126126
uint64_t sparse_tile_num,
127127
uint64_t tile_index_base,
128-
std::vector<std::vector<uint64_t>>&& tile_offsets,
129-
std::vector<std::vector<uint64_t>>&& tile_var_offsets,
130-
std::vector<std::vector<uint64_t>>&& tile_var_sizes,
131-
std::vector<std::vector<uint64_t>>&& tile_nullability_offsets,
132-
std::vector<std::vector<uint8_t>>&& tile_min_buffer,
133-
std::vector<std::vector<char>>&& tile_min_var_buffer,
134-
std::vector<std::vector<uint8_t>>&& tile_max_buffer,
135-
std::vector<std::vector<char>>&& tile_max_var_buffer,
136-
std::vector<std::vector<uint8_t>>&& tile_sums,
137-
std::vector<std::vector<uint64_t>>&& tile_null_counts,
128+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_offsets,
129+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_var_offsets,
130+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_var_sizes,
131+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_validity_offsets,
132+
tdb::pmr::vector<tdb::pmr::vector<uint8_t>>&& tile_min_buffer,
133+
tdb::pmr::vector<tdb::pmr::vector<char>>&& tile_min_var_buffer,
134+
tdb::pmr::vector<tdb::pmr::vector<uint8_t>>&& tile_max_buffer,
135+
tdb::pmr::vector<tdb::pmr::vector<char>>&& tile_max_var_buffer,
136+
tdb::pmr::vector<tdb::pmr::vector<uint8_t>>&& tile_sums,
137+
tdb::pmr::vector<tdb::pmr::vector<uint64_t>>&& tile_null_counts,
138138
std::vector<std::vector<uint8_t>>&& fragment_mins,
139139
std::vector<std::vector<uint8_t>>&& fragment_maxs,
140140
std::vector<uint64_t>&& fragment_sums,

tiledb/sm/serialization/capnp_utils.h

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,23 @@ std::vector<T> capnp_list_to_vector(bool has_value, auto fGetList) {
178178
* Defaults to T.
179179
* @param has_value whether the list actually contains any value.
180180
* @param fGetList a factory function that returns the capnproto list.
181+
* @param resource the polymorphic memory resource to use.
181182
*/
182183
template <class T, class TConverted = T>
183-
std::vector<std::vector<TConverted>> capnp_2d_list_to_vector(
184-
bool has_value, auto fGetList) {
185-
std::vector<std::vector<TConverted>> result;
184+
tiledb::common::pmr::vector<tiledb::common::pmr::vector<TConverted>>
185+
capnp_2d_list_to_vector(
186+
bool has_value,
187+
auto fGetList,
188+
tiledb::common::pmr::memory_resource* resource) {
189+
tiledb::common::pmr::vector<tiledb::common::pmr::vector<TConverted>> result(
190+
resource);
186191
if (has_value) {
187192
typename ::capnp::List<
188193
typename ::capnp::List<T, ::capnp::Kind::PRIMITIVE>,
189194
::capnp::Kind::LIST>::Reader list{fGetList()};
190195
result.reserve(list.size());
191196
for (const auto& t : list) {
192-
result.emplace_back(t.begin(), t.end());
197+
result.emplace_back(t.begin(), t.end(), resource);
193198
}
194199
}
195200
return result;
@@ -204,12 +209,18 @@ std::vector<std::vector<TConverted>> capnp_2d_list_to_vector(
204209
* Defaults to T.
205210
* @param has_value whether the list actually contains any value.
206211
* @param fGetList a factory function that returns the capnproto list.
212+
* @param resource the polymorphic memory resource to use.
207213
* @param size The size of the returned vector.
208214
*/
209215
template <class T, class TConverted = T>
210-
std::vector<std::vector<TConverted>> capnp_2d_list_to_vector(
211-
bool has_value, auto fGetList, uint64_t size) {
212-
std::vector<std::vector<TConverted>> result(size);
216+
tiledb::common::pmr::vector<tiledb::common::pmr::vector<TConverted>>
217+
capnp_2d_list_to_vector(
218+
bool has_value,
219+
auto fGetList,
220+
tiledb::common::pmr::memory_resource* resource,
221+
uint64_t size) {
222+
tiledb::common::pmr::vector<tiledb::common::pmr::vector<TConverted>> result(
223+
size, resource);
213224
if (has_value) {
214225
uint64_t i = 0;
215226
typename ::capnp::List<
@@ -219,7 +230,8 @@ std::vector<std::vector<TConverted>> capnp_2d_list_to_vector(
219230
throw SerializationStatusException("List contains too few elements");
220231
}
221232
for (const auto& t : list) {
222-
result[i++] = std::vector<TConverted>(t.begin(), t.end());
233+
result[i++] =
234+
tiledb::common::pmr::vector<TConverted>(t.begin(), t.end(), resource);
223235
}
224236
}
225237
return result;

tiledb/sm/serialization/fragment_info.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,10 @@ single_fragment_info_from_capnp(
229229
nullopt};
230230
}
231231
shared_ptr<FragmentMetadata> meta = fragment_metadata_from_capnp(
232-
schema->second, single_frag_info_reader.getMeta());
232+
schema->second,
233+
single_frag_info_reader.getMeta(),
234+
fragment_info->resources(),
235+
fragment_info->resources()->create_memory_tracker());
233236

234237
auto expanded_non_empty_domain = meta->non_empty_domain();
235238
if (meta->dense()) {

tiledb/sm/serialization/fragment_metadata.cc

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
#include <string>
4343

4444
#include "tiledb/common/common.h"
45+
#include "tiledb/common/memory_tracker.h"
4546
#include "tiledb/sm/enums/serialization_type.h"
4647
#include "tiledb/sm/serialization/fragment_metadata.h"
4748

@@ -167,7 +168,9 @@ static FragmentMetadata::GenericTileOffsets generic_tile_offsets_from_capnp(
167168

168169
shared_ptr<FragmentMetadata> fragment_metadata_from_capnp(
169170
const shared_ptr<const ArraySchema>& array_schema,
170-
const capnp::FragmentMetadata::Reader& frag_meta_reader) {
171+
const capnp::FragmentMetadata::Reader& frag_meta_reader,
172+
ContextResources* resources,
173+
shared_ptr<MemoryTracker> memory_tracker) {
171174
URI fragment_uri;
172175
if (frag_meta_reader.hasFragmentUri()) {
173176
// Reconstruct the fragment uri out of the received fragment name
@@ -219,43 +222,55 @@ shared_ptr<FragmentMetadata> fragment_metadata_from_capnp(
219222
utils::capnp_2d_list_to_vector<uint64_t>(
220223
frag_meta_reader.hasTileOffsets(),
221224
[&] { return frag_meta_reader.getTileOffsets(); },
225+
memory_tracker->get_resource(MemoryType::TILE_OFFSETS),
222226
num_dims_and_attrs),
223227
utils::capnp_2d_list_to_vector<uint64_t>(
224228
frag_meta_reader.hasTileVarOffsets(),
225229
[&] { return frag_meta_reader.getTileVarOffsets(); },
230+
memory_tracker->get_resource(MemoryType::TILE_OFFSETS),
226231
num_dims_and_attrs),
227232
utils::capnp_2d_list_to_vector<uint64_t>(
228233
frag_meta_reader.hasTileVarSizes(),
229234
[&] { return frag_meta_reader.getTileVarSizes(); },
235+
memory_tracker->get_resource(MemoryType::TILE_OFFSETS),
230236
num_dims_and_attrs),
231237
utils::capnp_2d_list_to_vector<uint64_t>(
232238
frag_meta_reader.hasTileValidityOffsets(),
233239
[&] { return frag_meta_reader.getTileValidityOffsets(); },
240+
memory_tracker->get_resource(MemoryType::TILE_OFFSETS),
234241
num_dims_and_attrs),
235242
utils::capnp_2d_list_to_vector<uint8_t>(
236243
frag_meta_reader.hasTileMinBuffer(),
237-
[&] { return frag_meta_reader.getTileMinBuffer(); }),
244+
[&] { return frag_meta_reader.getTileMinBuffer(); },
245+
memory_tracker->get_resource(MemoryType::TILE_MIN_VALS)),
238246
utils::capnp_2d_list_to_vector<uint8_t, char>(
239247
frag_meta_reader.hasTileMinVarBuffer(),
240-
[&] { return frag_meta_reader.getTileMinVarBuffer(); }),
248+
[&] { return frag_meta_reader.getTileMinVarBuffer(); },
249+
memory_tracker->get_resource(MemoryType::TILE_MIN_VALS)),
241250
utils::capnp_2d_list_to_vector<uint8_t>(
242251
frag_meta_reader.hasTileMaxBuffer(),
243-
[&] { return frag_meta_reader.getTileMaxBuffer(); }),
252+
[&] { return frag_meta_reader.getTileMaxBuffer(); },
253+
memory_tracker->get_resource(MemoryType::TILE_MAX_VALS)),
244254
utils::capnp_2d_list_to_vector<uint8_t, char>(
245255
frag_meta_reader.hasTileMaxVarBuffer(),
246-
[&] { return frag_meta_reader.getTileMaxVarBuffer(); }),
256+
[&] { return frag_meta_reader.getTileMaxVarBuffer(); },
257+
memory_tracker->get_resource(MemoryType::TILE_MAX_VALS)),
247258
utils::capnp_2d_list_to_vector<uint8_t>(
248259
frag_meta_reader.hasTileSums(),
249-
[&] { return frag_meta_reader.getTileSums(); }),
260+
[&] { return frag_meta_reader.getTileSums(); },
261+
memory_tracker->get_resource(MemoryType::TILE_SUMS)),
250262
utils::capnp_2d_list_to_vector<uint64_t>(
251263
frag_meta_reader.hasTileNullCounts(),
252-
[&] { return frag_meta_reader.getTileNullCounts(); }),
264+
[&] { return frag_meta_reader.getTileNullCounts(); },
265+
memory_tracker->get_resource(MemoryType::TILE_NULL_COUNTS)),
253266
utils::capnp_2d_list_to_vector<uint8_t>(
254267
frag_meta_reader.hasFragmentMins(),
255-
[&] { return frag_meta_reader.getFragmentMins(); }),
268+
[&] { return frag_meta_reader.getFragmentMins(); },
269+
memory_tracker->get_resource(MemoryType::TILE_MIN_VALS)),
256270
utils::capnp_2d_list_to_vector<uint8_t>(
257271
frag_meta_reader.hasFragmentMaxs(),
258-
[&] { return frag_meta_reader.getFragmentMaxs(); }),
272+
[&] { return frag_meta_reader.getFragmentMaxs(); },
273+
memory_tracker->get_resource(MemoryType::TILE_MAX_VALS)),
259274
utils::capnp_list_to_vector<uint64_t>(
260275
frag_meta_reader.hasFragmentSums(),
261276
[&] { return frag_meta_reader.getFragmentSums(); }),

tiledb/sm/serialization/fragment_metadata.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ namespace serialization {
6262
*/
6363
shared_ptr<FragmentMetadata> fragment_metadata_from_capnp(
6464
const shared_ptr<const ArraySchema>& array_schema,
65-
const capnp::FragmentMetadata::Reader& frag_meta_reader);
65+
const capnp::FragmentMetadata::Reader& frag_meta_reader,
66+
ContextResources* resources,
67+
shared_ptr<MemoryTracker> memory_tracker);
6668

6769
/**
6870
* Serialize Fragment Metadata sizes and offsets

tiledb/sm/serialization/query.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2991,7 +2991,8 @@ Status global_write_state_from_capnp(
29912991
write_state->frag_meta_ = fragment_metadata_from_capnp(
29922992
query.array_schema_shared(),
29932993
state_reader.getFragMeta(),
2994-
&global_writer->resources());
2994+
&global_writer->resources(),
2995+
global_writer->resources().create_memory_tracker());
29952996
}
29962997

29972998
// Deserialize the multipart upload state
@@ -3113,7 +3114,8 @@ Status unordered_write_state_from_capnp(
31133114
unordered_writer->set_frag_meta(fragment_metadata_from_capnp(
31143115
query.array_schema_shared(),
31153116
state_reader.getFragMeta(),
3116-
&unordered_writer->resources()));
3117+
&unordered_writer->resources(),
3118+
unordered_writer->resources().create_memory_tracker()));
31173119
}
31183120
}
31193121

0 commit comments

Comments
 (0)