apache / apache/arrow-java

ArrowBuf copying from GetReadableBuffer causes slowness

未關閉
#835 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
Type: usage
主要語言
Java
星號
94
分支
152
平均合併
3 天 16 小時
30 天內合併 PR
11

描述

### Describe the usage question you have. Please include as many useful details as possible.

I'm using Arrow Flight and discovered an extra copy action while testing performance impact.

` ReadableBuffer readableBuffer = fastPath ? getReadableBuffer(stream) : null;
if (readableBuffer != null) {
readableBuffer.readBytes(buf.nioBuffer(0, size));
} `

Image

The flame graph shows that after enabling zero_copy, ArrowBuf copying from GetReadableBuffer causes slowness.
Why does this copy occur?
Or is it because arrowbuf needs to manage its own memory, so the ownership must be transferred from netty?

### Component(s)

FlightRPC

貢獻指南

開啟貢獻指南

研究方向

從 issue 中展示的 FlightRPC 快速路徑開始,沿著 getReadableBuffer 經過 ReadableBuffer.readBytes 追蹤到 ArrowBuf 目的地,同時對照回報的火焰圖。判斷複製是否為所有權或記憶體管理所必需,並記錄原因,或記錄一種有明確支援的避免複製方式。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
api, performance
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
需要釐清
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。