FWIW arrow-rs may split RecordBatch in order to comply with gRPC message size 
limits. The threshold is configurable [1] and clients desiring full control can 
still use the lower-level IPC interfaces [2], however, many gRPC 
implementations, and some proxies, will by default reject messages larger than 
a couple of MB.

Kind Regards,

Raphael

[1]: 
https://docs.rs/arrow-flight/latest/arrow_flight/encode/struct.FlightDataEncoderBuilder.html#method.with_max_flight_data_size
[2]: 
https://docs.rs/arrow-ipc/latest/arrow_ipc/writer/struct.IpcDataGenerator.html

On 15 November 2023 20:22:28 GMT, Nick Hughes <n...@intervaliq.com> wrote:
>Good to know! Thanks David.
>
>
>
>On Wed, Nov 15, 2023 at 12:02 PM David Li <lidav...@apache.org> wrote:
>
>> The C++/Java/Go/Python Flight implementations do not chunk the data for
>> you, so you will get the full batch.
>>
>> On Wed, Nov 15, 2023, at 14:40, Nick Hughes wrote:
>>
>> Hi,
>>
>> If I write a RecordBatch to a stream from a Flight server
>> using MetadataRecordBatchWriter.write_batch and then attempt to read this
>> from a client using FlightStreamReader.read_chunk, is it guaranteed that
>> the returned FlightStreamChunk will contain the original RecordBatch in its
>> entirety, or is there a possibility it may be partitioned over several
>> chunks?
>>
>> Thanks,
>>
>> Nick
>>
>>
>>
>>

Reply via email to