MCPcopy Create free account
hub / github.com/TileDB-Inc/TileDB / do_load_metadata

Method do_load_metadata

tiledb/sm/array/array.cc:1804–1837  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1802}
1803
1804void Array::do_load_metadata() {
1805 if (!array_directory().loaded()) {
1806 throw ArrayException(
1807 "Cannot load metadata; array directory is not loaded.");
1808 }
1809 auto timer_se = resources_.stats().start_timer("sm_load_array_metadata");
1810
1811 // Determine which array metadata to load
1812 const auto& array_metadata_to_load = array_directory().array_meta_uris();
1813
1814 auto metadata_num = array_metadata_to_load.size();
1815 std::vector<shared_ptr<Tile>> metadata_tiles(metadata_num);
1816 throw_if_not_ok(
1817 parallel_for(&resources_.compute_tp(), 0, metadata_num, [&](size_t m) {
1818 const auto& uri = array_metadata_to_load[m].uri_;
1819
1820 metadata_tiles[m] = GenericTileIO::load(
1821 resources_, uri, 0, *encryption_key(), memory_tracker_);
1822
1823 return Status::Ok();
1824 }));
1825
1826 // Compute array metadata size for the statistics
1827 uint64_t meta_size = 0;
1828 for (const auto& t : metadata_tiles) {
1829 meta_size += t->size();
1830 }
1831 resources_.stats().add_counter("read_array_meta_size", meta_size);
1832
1833 opened_array_->metadata() = Metadata::deserialize(metadata_tiles);
1834
1835 // Sets the loaded metadata URIs
1836 opened_array_->metadata().set_loaded_metadata_uris(array_metadata_to_load);
1837}
1838
1839Status Array::load_metadata() {
1840 if (remote_) {

Callers

nothing calls this directly

Calls 11

ArrayExceptionClass · 0.85
throw_if_not_okFunction · 0.85
parallel_forFunction · 0.85
compute_tpMethod · 0.80
add_counterMethod · 0.80
metadataMethod · 0.80
loadedMethod · 0.45
start_timerMethod · 0.45
statsMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected