Skip to content

Commit ce0ae5e

Browse files
authored
fix(interactive): Fix yaml node parsing (#4377)
As titled.
1 parent ba952b0 commit ce0ae5e

File tree

9 files changed

+44
-21
lines changed

9 files changed

+44
-21
lines changed

flex/interactive/sdk/python/gs_interactive/client/result.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@
2020
from typing import TypeVar
2121

2222
from gs_interactive.api_response import ApiResponse
23-
from gs_interactive.exceptions import ApiException
24-
2523
from gs_interactive.client.status import Status
24+
from gs_interactive.exceptions import ApiException
2625

2726
# Define a generic type placeholder
2827
T = TypeVar("T")

flex/interactive/sdk/python/gs_interactive/client/session.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@
2323
from typing import Optional
2424
from typing import Union
2525

26+
from pydantic import Field
27+
from pydantic import StrictBytes
28+
from pydantic import StrictStr
29+
from typing_extensions import Annotated
30+
2631
from gs_interactive.api import AdminServiceGraphManagementApi
2732
from gs_interactive.api import AdminServiceJobManagementApi
2833
from gs_interactive.api import AdminServiceProcedureManagementApi
@@ -32,18 +37,13 @@
3237
from gs_interactive.api import QueryServiceApi
3338
from gs_interactive.api import UtilsApi
3439
from gs_interactive.api_client import ApiClient
35-
from gs_interactive.configuration import Configuration
36-
from pydantic import Field
37-
from pydantic import StrictBytes
38-
from pydantic import StrictStr
39-
from typing_extensions import Annotated
40-
4140
from gs_interactive.client.generated.results_pb2 import CollectiveResults
4241
from gs_interactive.client.result import Result
4342
from gs_interactive.client.status import Status
4443
from gs_interactive.client.status import StatusCode
4544
from gs_interactive.client.utils import InputFormat
4645
from gs_interactive.client.utils import append_format_byte
46+
from gs_interactive.configuration import Configuration
4747
from gs_interactive.models import CreateGraphRequest
4848
from gs_interactive.models import CreateGraphResponse
4949
from gs_interactive.models import CreateProcedureRequest

flex/interactive/sdk/python/gs_interactive/client/status.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@
1616
# limitations under the License.
1717
#
1818

19+
from urllib3.exceptions import MaxRetryError
20+
from urllib3.exceptions import ProtocolError
21+
1922
from gs_interactive.api_response import ApiResponse
23+
from gs_interactive.client.generated.interactive_pb2 import Code as StatusCode
2024
from gs_interactive.exceptions import ApiException
2125
from gs_interactive.exceptions import BadRequestException
2226
from gs_interactive.exceptions import ForbiddenException
2327
from gs_interactive.exceptions import NotFoundException
2428
from gs_interactive.exceptions import ServiceException
25-
from urllib3.exceptions import MaxRetryError
26-
from urllib3.exceptions import ProtocolError
27-
28-
from gs_interactive.client.generated.interactive_pb2 import Code as StatusCode
2929
from gs_interactive.models.api_response_with_code import APIResponseWithCode
3030

3131

flex/tests/hqps/interactive_config_test.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ compute_engine:
55
type: hiactor
66
workers:
77
- localhost:10000
8-
thread_num_per_worker: 1
8+
thread_num_per_worker: 4
99
store:
1010
type: cpp-mcsr
1111
metadata_store:
@@ -26,6 +26,7 @@ compiler:
2626
statistics:
2727
uri: http://localhost:7777/v1/graph/%s/statistics
2828
interval: 86400000 # ms
29+
timeout: 1000 # ms
2930
endpoint:
3031
default_listen_address: localhost
3132
bolt_connector:

flex/utils/yaml_utils.cc

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,20 @@ void convert_yaml_node_to_json(const YAML::Node& node,
5252
json.SetInt(node.as<int>());
5353
} catch (const YAML::BadConversion& e) {
5454
try {
55-
json.SetDouble(node.as<double>());
55+
json.SetInt64(node.as<int64_t>());
5656
} catch (const YAML::BadConversion& e) {
5757
try {
58-
json.SetBool(node.as<bool>());
58+
json.SetUint64(node.as<uint64_t>());
5959
} catch (const YAML::BadConversion& e) {
60-
json.SetString(node.as<std::string>().c_str(), allocator);
60+
try {
61+
json.SetDouble(node.as<double>());
62+
} catch (const YAML::BadConversion& e) {
63+
try {
64+
json.SetBool(node.as<bool>());
65+
} catch (const YAML::BadConversion& e) {
66+
json.SetString(node.as<std::string>().c_str(), allocator);
67+
}
68+
}
6169
}
6270
}
6371
}

interactive_engine/compiler/conf/ir.compiler.properties

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,8 @@ calcite.default.charset: UTF-8
6868
# set the interval in milliseconds to fetch graph schema
6969
# graph.meta.schema.fetch.interval.ms: 1000
7070

71-
# set the timeout in milliseconds to fetch graph statistics
71+
# set the interval in milliseconds to fetch graph statistics
7272
# graph.meta.statistics.fetch.interval.ms: 86400000l
73+
74+
# set the timeout in milliseconds to fetch graph statistics
75+
# graph.meta.fetch.timeout.ms: 1000

interactive_engine/compiler/src/main/java/com/alibaba/graphscope/common/config/GraphConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ public class GraphConfig {
3131
public static final Config<Long> GRAPH_META_STATISTICS_FETCH_INTERVAL_MS =
3232
Config.longConfig("graph.meta.statistics.fetch.interval.ms", 24 * 3600 * 1000l);
3333

34+
public static final Config<Long> GRAPH_META_FETCH_TIMEOUT_MS =
35+
Config.longConfig("graph.meta.fetch.timeout.ms", 1000);
36+
3437
// an intermediate solution to support foreign key, will be integrated into schema
3538
public static final Config<String> GRAPH_FOREIGN_KEY_URI =
3639
Config.stringConfig("graph.foreign.key", "");

interactive_engine/compiler/src/main/java/com/alibaba/graphscope/common/config/YamlConfigs.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ public class YamlConfigs extends Configs {
7272
"graph.meta.statistics.fetch.interval.ms",
7373
(Configs configs) ->
7474
configs.get("compiler.meta.reader.statistics.interval"))
75+
.put(
76+
"graph.meta.fetch.timeout.ms",
77+
(Configs configs) -> configs.get("compiler.meta.reader.timeout"))
7578
.put(
7679
"graph.store",
7780
(Configs configs) -> {

interactive_engine/compiler/src/main/java/com/alibaba/graphscope/common/ir/meta/reader/HttpIrMetaReader.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ public HttpIrMetaReader(Configs configs) {
5757
public IrMeta readMeta() throws IOException {
5858
try {
5959
HttpResponse<String> response =
60-
sendRequest(GraphConfig.GRAPH_META_SCHEMA_URI.get(configs));
60+
sendRequest(
61+
GraphConfig.GRAPH_META_SCHEMA_URI.get(configs),
62+
GraphConfig.GRAPH_META_FETCH_TIMEOUT_MS.get(configs));
6163
String res = response.body();
6264
Preconditions.checkArgument(
6365
response.statusCode() == 200,
@@ -91,7 +93,8 @@ public IrGraphStatistics readStats(GraphId graphId) throws IOException {
9193
sendRequest(
9294
String.format(
9395
GraphConfig.GRAPH_META_STATISTICS_URI.get(configs),
94-
graphId.getId()));
96+
graphId.getId()),
97+
GraphConfig.GRAPH_META_FETCH_TIMEOUT_MS.get(configs));
9598
String res = response.body();
9699
Preconditions.checkArgument(
97100
response.statusCode() == 200,
@@ -109,7 +112,9 @@ public IrGraphStatistics readStats(GraphId graphId) throws IOException {
109112
public boolean syncStatsEnabled(GraphId graphId) throws IOException {
110113
try {
111114
HttpResponse<String> response =
112-
sendRequest(GraphConfig.GRAPH_META_SCHEMA_URI.get(configs));
115+
sendRequest(
116+
GraphConfig.GRAPH_META_SCHEMA_URI.get(configs),
117+
GraphConfig.GRAPH_META_FETCH_TIMEOUT_MS.get(configs));
113118
String res = response.body();
114119
Preconditions.checkArgument(
115120
response.statusCode() == 200,
@@ -122,13 +127,14 @@ public boolean syncStatsEnabled(GraphId graphId) throws IOException {
122127
}
123128
}
124129

125-
private HttpResponse<String> sendRequest(String requestUri)
130+
private HttpResponse<String> sendRequest(String requestUri, long timeOut)
126131
throws IOException, InterruptedException {
127132
HttpRequest request =
128133
HttpRequest.newBuilder()
129134
.uri(URI.create(requestUri))
130135
.headers(CONTENT_TYPE, APPLICATION_JSON)
131136
.GET()
137+
.timeout(java.time.Duration.ofMillis(timeOut))
132138
.build();
133139
return httpClient.send(request, HttpResponse.BodyHandlers.ofString());
134140
}

0 commit comments

Comments
 (0)