-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Query very large dataset by grpc server streaming #3429
Comments
Need some help. The origin *.proto may need to be modifyservice GreptimeDatabase {
rpc Handle(GreptimeRequest) returns (GreptimeResponse);
rpc HandleRequests(stream GreptimeRequest) returns (GreptimeResponse);
}
...
message GreptimeResponse {
ResponseHeader header = 1;
oneof response { AffectedRows affected_rows = 2; }
} to support stream, we may modify it like this? service GreptimeDatabase {
rpc Handle(GreptimeRequest) returns (stream GreptimeResponse);
rpc HandleRequests(stream GreptimeRequest) returns (stream GreptimeResponse);
}
...
message GreptimeResponse {
ResponseHeader header = 1;
oneof response {
AffectedRows affected_rows = 2;
ARowInQueryResults row = 3;
}
} Insert and delete still work, and query result will be return as a stream. |
@MichaelScofield Could you provide more information such as codes that need to be modified for this issue? I remember that we are using Arrow Flight service for handling requests from clients, which is already streaming. greptimedb/src/client/src/database.rs Lines 287 to 294 in bba3108
|
The query is not defined in the *.proto file you mentioned above @YCCDSZXH. We are using Arrow Fligth to define query services, more specifically, the Which returns a |
What problem does the new feature solve?
Though unusual (and not recommended), sometimes user just want to query very large dataset. However, now the "big" queries are often resulted in timeout. The problems maybe reside in that huge volume of data are waiting to be gathered inside GreptimeDB, or the large amount of network/hard disk IO costs.
Similar issue: #2223
What does the feature do?
Make querying very large dataset do-able, by featuring GRPC server streaming. Inside GreptimeDB, the results of queries are all streams. So we may create a GRPC interface to poll(adapt) that stream.
Implementation challenges
No response
The text was updated successfully, but these errors were encountered: