ArrowBuf copying from GetReadableBuffer causes slowness
- 主要語言
- 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));
} `
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