未验证 提交 9c853d1d 编写于 作者: H Huang Zhengjie 提交者: GitHub

[Bug fixes] fix distributed graph engine (#51956)

* fix distributed graph engine
上级 227245d3
......@@ -51,7 +51,7 @@ int GraphBrpcClient::get_server_index_by_id(int64_t id) {
int shard_per_server = shard_num % server_size == 0
? shard_num / server_size
: shard_num / server_size + 1;
return id % shard_num / shard_per_server;
return static_cast<uint64_t>(id) % shard_num / shard_per_server;
}
std::future<int32_t> GraphBrpcClient::get_node_feat(
......
......@@ -144,7 +144,7 @@ int32_t GraphBrpcService::add_graph_node(Table *table,
return 0;
}
int idx_ = std::stoi(request.params(0).c_str());
int idx_ = *reinterpret_cast<const int *>(request.params(0).c_str());
size_t node_num = request.params(1).size() / sizeof(int64_t);
const uint64_t *node_data =
reinterpret_cast<const uint64_t *>(request.params(1).c_str());
......@@ -181,7 +181,7 @@ int32_t GraphBrpcService::remove_graph_node(Table *table,
"remove_graph_node request requires at least 2 arguments");
return 0;
}
int idx_ = std::stoi(request.params(0).c_str());
int idx_ = *reinterpret_cast<const int *>(request.params(0).c_str());
size_t node_num = request.params(1).size() / sizeof(uint64_t);
const uint64_t *node_data =
reinterpret_cast<const uint64_t *>(request.params(1).c_str());
......@@ -408,7 +408,7 @@ int32_t GraphBrpcService::graph_random_sample_neighbors(
"graph_random_sample_neighbors request requires at least 3 arguments");
return 0;
}
int idx_ = std::stoi(request.params(0).c_str());
int idx_ = *reinterpret_cast<const int *>(request.params(0).c_str());
size_t node_num = request.params(1).size() / sizeof(uint64_t);
uint64_t *node_data = (uint64_t *)(request.params(1).c_str()); // NOLINT
const int sample_size =
......@@ -464,7 +464,7 @@ int32_t GraphBrpcService::graph_get_node_feat(Table *table,
"graph_get_node_feat request requires at least 3 arguments");
return 0;
}
int idx_ = std::stoi(request.params(0).c_str());
int idx_ = *reinterpret_cast<const int *>(request.params(0).c_str());
size_t node_num = request.params(1).size() / sizeof(uint64_t);
const uint64_t *node_data =
reinterpret_cast<const uint64_t *>(request.params(1).c_str());
......@@ -505,12 +505,12 @@ int32_t GraphBrpcService::sample_neighbors_across_multi_servers(
return 0;
}
int idx_ = std::stoi(request.params(0).c_str());
int idx_ = *reinterpret_cast<const int *>(request.params(0).c_str());
size_t node_num = request.params(1).size() / sizeof(uint64_t);
const uint64_t *node_data =
reinterpret_cast<const uint64_t *>(request.params(1).c_str());
int sample_size = std::stoi(request.params(2).c_str());
bool need_weight = std::stoi(request.params(3).c_str());
int sample_size = *reinterpret_cast<const int *>(request.params(2).c_str());
bool need_weight = *reinterpret_cast<const bool *>(request.params(3).c_str());
std::vector<int> request2server;
std::vector<int> server2request(server_size, -1);
......@@ -671,7 +671,7 @@ int32_t GraphBrpcService::graph_set_node_feat(Table *table,
"graph_set_node_feat request requires at least 3 arguments");
return 0;
}
int idx_ = std::stoi(request.params(0).c_str());
int idx_ = *reinterpret_cast<const int *>(request.params(0).c_str());
size_t node_num = request.params(1).size() / sizeof(uint64_t);
const uint64_t *node_data =
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册