I’m using the golang arrow-flight-client example.go file on dremio-hub as a basis for programmatic access to virtual datasets I have created in dremio.
The physical dataset is ~800 million records. My virtual dataset is ~46 million. I can successfully run this query from my client when dremio is running locally, but when I access a dremio running on a remote server, I get the following error:
(com.dremio.exec.rpc.RpcException) Timeout while waiting for client to be in ready state.
I’m new to arrow flight / dremio. Is there some grpc timeout that should be set when creating my flight client?
Thank you for your time and attention to this matter.
Can you please try to set the support key flight.client.readiness.timeout.millis to a higher value?
The problem here is that the client is trying to load all records into memory before printing them out. For large numbers of records, this can get quite slow in the JVM resulting in the client timing out.
Can you help me , how to set this property flight.client.readiness.timeout.millis. I am using Java Arrow flight-core 3.0.0 . I am getting following error …
‘[ERROR] Exception: RpcException: Timeout while waiting for client to be in ready state.
org.apache.arrow.flight.FlightRuntimeException: INTERNAL: RpcException: Timeout while waiting for client to be in ready state.
at org.apache.arrow.flight.CallStatus.toRuntimeException(CallStatus.java:131)
at org.apache.arrow.flight.grpc.StatusUtils.fromGrpcRuntimeException(StatusUtils.java:152)’
Thank you .
What will affect of this timeout setting value? This setting will affect max read time of one batch data or the max read time of all data in one query?
How can we decided the exactly value of this setting? Based on result set record size and the number of query fields?
@Tony.Zhang Only if you are reading large number of records then yes, values should be increase only if you timeout and depends on how many records are returned
is there a different setting that would cause the same query that works from the UI to fail when run via Arrow Flight client? the jobs always get cancelled at 60 seconds when run via Arrow Flight but work just fine in the UI. setting: flight.client.readiness.timeout.millis to the max 900000 didn’t make a difference.
any hints?
Thanks for the reply, i am using the open source edition and see the value Maximum query memory set to 0, which means unlimited. the query size doesn’t seem to matter when run from Arrow, it always times out after 60 seconds, the actual runtime from the UI, which works for the same query, is just over 2 minutes.