tolmalev opened a new pull request, #40042:
URL: https://github.com/apache/arrow/pull/40042

   … 
   
   ### Rationale for this change
   Described in details in the issue.
   
   Brief summary: class tries ArrowMessage uses CompositeByteBuf to avoid 
memory copies but `maxNumComponents` for it is calculated incorrectly and as a 
result memory copies are still performed which significantly affects 
performance of the server.
   
   ### What changes are included in this PR?
   Changing maxNumComponents to `Integer.MAX_VALUE` because we never want to 
silently merge large buffers into one. 
   
   ### Are these changes tested?
   Tested with a simple client-server application and I see significant 
performance boost.
   
   Two tests with zero-copy set to true:
   **50 batches, 30 columns (Int32), 199999 rows in each batch**
   - before change: throughput ~25Gbit/s (memory copy happens in 
`grpc-nio-worker-ELG-*`)
   - after change: throughput ~32Gbit/s (20% boost)
   
   **50 batches, 30 columns (Int32), 200k rows in each batch**
   - before change: throughput ~15Gbit/s (much slower than with 199999 because 
memory copy happens in `flight-server-default-executor-*` thread and blocks 
server from writing next batch.
   - after change: throughput ~32Gbit/s (**115% boost**)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to