@@ -253,8 +253,8 @@ const std::vector<URI>& ArrayDirectory::commit_uris_to_vacuum() const {
253253 return commit_uris_to_vacuum_;
254254}
255255
256- const std::unordered_set<std::string>&
257- ArrayDirectory::consolidated_commit_uris_set () const {
256+ const std::unordered_set<URI>& ArrayDirectory::consolidated_commit_uris_set ()
257+ const {
258258 return consolidated_commit_uris_set_;
259259}
260260
@@ -309,7 +309,7 @@ void ArrayDirectory::delete_fragments_list(
309309 for (auto & timestamped_uri : uris) {
310310 auto commit_uri = get_commit_uri (timestamped_uri);
311311 commit_uris_to_delete.emplace_back (commit_uri);
312- if (consolidated_commit_uris_set ().count (commit_uri. c_str () ) != 0 ) {
312+ if (consolidated_commit_uris_set ().count (commit_uri) != 0 ) {
313313 commit_uris_to_ignore.emplace_back (commit_uri);
314314 }
315315 }
@@ -483,7 +483,7 @@ ArrayDirectory::filtered_fragment_uris(const bool full_overlap_only) const {
483483 if (mode_ == ArrayDirectoryMode::VACUUM_FRAGMENTS) {
484484 for (auto & uri : fragment_uris_to_vacuum.value ()) {
485485 auto commit_uri = get_commit_uri (uri);
486- if (consolidated_commit_uris_set_.count (commit_uri. c_str () ) == 0 ) {
486+ if (consolidated_commit_uris_set_.count (commit_uri) == 0 ) {
487487 commit_uris_to_vacuum.emplace_back (commit_uri);
488488 } else {
489489 commit_uris_to_ignore.emplace_back (commit_uri);
@@ -672,8 +672,7 @@ ArrayDirectory::load_commits_dir_uris_v12_or_higher(
672672 for (size_t i = 0 ; i < commits_dir_uris.size (); ++i) {
673673 if (stdx::string::ends_with (
674674 commits_dir_uris[i].to_string (), constants::write_file_suffix)) {
675- if (consolidated_commit_uris_set_.count (commits_dir_uris[i].c_str ()) ==
676- 0 ) {
675+ if (consolidated_commit_uris_set_.count (commits_dir_uris[i]) == 0 ) {
677676 auto name = commits_dir_uris[i].last_path_part ();
678677 name =
679678 name.substr (0 , name.size () - constants::write_file_suffix.size ());
@@ -694,8 +693,7 @@ ArrayDirectory::load_commits_dir_uris_v12_or_higher(
694693
695694 // Add the delete tile location if it overlaps the open start/end times
696695 if (timestamps_overlap (timestamp_range, false )) {
697- if (consolidated_commit_uris_set_.count (commits_dir_uris[i].c_str ()) ==
698- 0 ) {
696+ if (consolidated_commit_uris_set_.count (commits_dir_uris[i]) == 0 ) {
699697 const auto base_uri_size = uri_.to_string ().size ();
700698 delete_and_update_tiles_location_.emplace_back (
701699 commits_dir_uris[i],
@@ -716,10 +714,7 @@ ArrayDirectory::list_fragment_metadata_dir_uris_v12_or_higher() {
716714 return ls (uri_.join_path (constants::array_fragment_meta_dir_name));
717715}
718716
719- tuple<
720- Status,
721- optional<std::vector<URI>>,
722- optional<std::unordered_set<std::string>>>
717+ tuple<Status, optional<std::vector<URI>>, optional<std::unordered_set<URI>>>
723718ArrayDirectory::load_consolidated_commit_uris (
724719 const std::vector<URI>& commits_dir_uris) {
725720 auto timer_se = stats_->start_timer (" load_consolidated_commit_uris" );
@@ -745,7 +740,7 @@ ArrayDirectory::load_consolidated_commit_uris(
745740
746741 // Load all commit URIs. This is done in serial for now as it can be optimized
747742 // by vacuuming.
748- std::unordered_set<std::string > uris_set;
743+ std::unordered_set<URI > uris_set;
749744 std::vector<std::pair<URI, std::string>> meta_files;
750745 for (uint64_t i = 0 ; i < commits_dir_uris.size (); i++) {
751746 auto & uri = commits_dir_uris[i];
@@ -763,7 +758,7 @@ ArrayDirectory::load_consolidated_commit_uris(
763758 std::stringstream ss (names);
764759 for (std::string condition_marker; std::getline (ss, condition_marker);) {
765760 if (ignore_set.count (condition_marker) == 0 ) {
766- uris_set.emplace (uri_.to_string () + condition_marker);
761+ uris_set.emplace (uri_.append_string ( condition_marker) );
767762 }
768763
769764 // If we have a delete, process the condition tile
@@ -807,7 +802,7 @@ ArrayDirectory::load_consolidated_commit_uris(
807802 uint64_t count = 0 ;
808803 bool all_in_set = true ;
809804 for (std::string uri_str; std::getline (ss, uri_str);) {
810- if (uris_set.count (uri_.to_string () + uri_str) > 0 ) {
805+ if (uris_set.count (uri_.append_string ( uri_str) ) > 0 ) {
811806 count++;
812807 } else {
813808 all_in_set = false ;
@@ -879,7 +874,7 @@ void ArrayDirectory::load_commits_uris_to_consolidate(
879874 const std::vector<URI>& array_dir_uris,
880875 const std::vector<URI>& commits_dir_uris,
881876 const std::vector<URI>& consolidated_uris,
882- const std::unordered_set<std::string >& consolidated_uris_set) {
877+ const std::unordered_set<URI >& consolidated_uris_set) {
883878 // Make a set of existing commit URIs.
884879 std::unordered_set<std::string> uris_set;
885880 for (auto & uri : array_dir_uris) {
@@ -902,7 +897,7 @@ void ArrayDirectory::load_commits_uris_to_consolidate(
902897 // Add the ok file URIs not already in the list.
903898 for (auto & uri : array_dir_uris) {
904899 if (stdx::string::ends_with (uri.to_string (), constants::ok_file_suffix)) {
905- if (consolidated_uris_set.count (uri. c_str () ) == 0 ) {
900+ if (consolidated_uris_set.count (uri) == 0 ) {
906901 commit_uris_to_consolidate_.emplace_back (uri);
907902 }
908903 }
@@ -914,7 +909,7 @@ void ArrayDirectory::load_commits_uris_to_consolidate(
914909 uri.to_string (), constants::write_file_suffix) ||
915910 stdx::string::ends_with (
916911 uri.to_string (), constants::delete_file_suffix)) {
917- if (consolidated_uris_set.count (uri. c_str () ) == 0 ) {
912+ if (consolidated_uris_set.count (uri) == 0 ) {
918913 commit_uris_to_consolidate_.emplace_back (uri);
919914 }
920915 }
@@ -1258,7 +1253,7 @@ bool ArrayDirectory::is_vacuum_file(const URI& uri) const {
12581253Status ArrayDirectory::is_fragment (
12591254 const URI& uri,
12601255 const std::unordered_set<std::string>& ok_uris_set,
1261- const std::unordered_set<std::string >& consolidated_uris_set,
1256+ const std::unordered_set<URI >& consolidated_uris_set,
12621257 int * is_fragment) const {
12631258 // If the fragment ID does not have a name, ignore it.
12641259 if (!FragmentID::has_fragment_name (uri)) {
@@ -1292,7 +1287,7 @@ Status ArrayDirectory::is_fragment(
12921287
12931288 // Check set membership in consolidated uris
12941289 if (consolidated_uris_set.count (
1295- uri.to_string () + constants::ok_file_suffix) != 0 ) {
1290+ uri.append_string ( constants::ok_file_suffix) ) != 0 ) {
12961291 *is_fragment = 1 ;
12971292 return Status::Ok ();
12981293 }
0 commit comments