apache / apache/arrow-java

Performance concern: fillHoles() method and read buffer expansion efficiency.

Đang mở
#599 9 bình luận 3 reaction 0 người được giao Xem trên GitHub
help wanted Type: enhancement
Ngôn ngữ chính
Java
Star
94
Fork
152
Merge trung bình
3 ngày 16 giờ
Pull request đã merge (30 ngày)
11

Mô tả

Hi everyone,

I have the following use case: I’m benchmarking the read throughput performance when dealing with a large number of non-dictionary string columns (300 columns). Based on the profiler output (see the attached picture), I’ve noticed that a significant amount of time is spent in the fillHoles() method, which is part of the read buffer expansion process.

My question is: why is the buffer filled one element at a time instead of using a bulk operation? Wouldn’t a batch approach be more efficient?

Looking forward to your insights. Thanks!

![Image](https://github.com/user-attachments/assets/57108c7a-126d-4370-9a01-4f0aa85218d9)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với fillHoles() trong đường dẫn mở rộng read buffer và xem xét hình ảnh profiler cùng bối cảnh benchmark 300 cột được mô tả trong issue. So sánh cách điền hiện tại theo từng phần tử với cách tiếp cận bulk bằng cùng workload; hoàn tất nghĩa là có kết luận được đo lường về mối lo ngại hiệu năng và chỉ thực hiện một thay đổi tập trung nếu phép so sánh ủng hộ điều đó.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
performance
Loại issue
Tái cấu trúc
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.