apache / apache/arrow-flight-sql-postgresql

Improve `SELECT text` performance

Đang mở
#177 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C++
Star
116
Fork
10
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

It's slower than the PostgreSQL protocol.

The followings may be related but we need to look into it:

* Building `arrow::RecordBatch` is slow?
* We need to build `arrow::RecordBatch`es to use `arrow::ipc::RecordBatchWriter()`. We need to copy PostgreSQL data for it. (Not zero-copy.)
* Should we add an API that writes Apache Arrow streaming format data without building `arrow::RecordBatch` to Apache Arrow C++?
* Calling `SPI_getbinval()` is slow?
* It calls `nocachegetattr()` https://github.com/postgres/postgres/blob/3edc6580c0e27fb8f13322efd255a88d20dda6c2/src/backend/access/common/heaptuple.c#L496-L712 and it's not a short function. Can we shortcut some operations?

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

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

Hướng nghiên cứu

Bắt đầu bằng cách profiling đường đi của văn bản SELECT và so sánh nó với giao thức PostgreSQL, tập trung vào việc xây dựng Apache Arrow RecordBatch, RecordBatchWriter và SPI_getbinval() của PostgreSQL. Xác định xem việc sao chép vào RecordBatch hay SPI_getbinval()/nocachegetattr() chiếm ưu thế, sau đó đo lường thay đổi đã hoàn tất so với baseline của giao thức PostgreSQL.

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

Đánh giá

Công nghệ
cpp, postgresql
Lĩnh vực
backend, databases, performance
Loại issue
Lỗi
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
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
25/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.