From 1b458ebc410f93d85a7c9aa0c6c1d5a32af0f032 Mon Sep 17 00:00:00 2001 From: Tyler Neely Date: Mon, 5 Dec 2022 13:26:44 +0000 Subject: [PATCH] Complete migration of GetProperties to new request style --- src/query/v2/request_router.hpp | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/query/v2/request_router.hpp b/src/query/v2/request_router.hpp index 110aa5d96..0d4bf27e1 100644 --- a/src/query/v2/request_router.hpp +++ b/src/query/v2/request_router.hpp @@ -359,7 +359,7 @@ class RequestRouter : public RequestRouterInterface { std::vector GetProperties(msgs::GetPropertiesRequest requests) override { // create requests - std::vector unsent_requests = RequestsForGetProperties(requests); + std::vector> unsent_requests = RequestsForGetProperties(requests); // begin all requests in parallel RunningRequests running_requests = {}; @@ -374,7 +374,16 @@ class RequestRouter : public RequestRouterInterface { } // drive requests to completion - return DriveReadResponses(running_requests); + auto responses = DriveReadResponses(running_requests); + + // post-process responses + std::vector result_rows; + + for (auto &&response : responses) { + std::move(response.result_row.begin(), response.result_row.end(), std::back_inserter(result_rows)); + } + + return result_rows; } std::optional MaybeNameToProperty(const std::string &name) const override { @@ -520,15 +529,14 @@ class RequestRouter : public RequestRouterInterface { return requests; } - std::vector RequestsForGetProperties(const msgs::GetPropertiesRequest &request) { + std::vector> RequestsForGetProperties( + const msgs::GetPropertiesRequest &request) { std::map per_shard_request_table; auto top_level_rqst_template = request; top_level_rqst_template.transaction_id = transaction_id_; top_level_rqst_template.vertex_ids.clear(); top_level_rqst_template.vertices_and_edges.clear(); - state.transaction_id = transaction_id_; - for (auto &vertex : request.vertex_ids) { auto shard = shards_map_.GetShardForKey(vertex.first.id, storage::conversions::ConvertPropertyVector(vertex.second)); @@ -547,15 +555,18 @@ class RequestRouter : public RequestRouterInterface { per_shard_request_table[shard].vertices_and_edges.emplace_back(std::move(vertex), maybe_edge); } + std::vector> requests; + for (auto &[shard, rqst] : per_shard_request_table) { ShardRequestState shard_request_state{ .shard = shard, .request = std::move(rqst), - .async_request_token = std::nullopt, }; - state.requests.emplace_back(std::move(shard_request_state)); + requests.emplace_back(std::move(shard_request_state)); } + + return requests; } StorageClient &GetStorageClientForShard(Shard shard) {