apache / apache/arrow-flight-sql-postgresql
Improve `SELECT text` performance
- Langage dominant
- C++
- Étoiles
- 116
- Forks
- 10
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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?
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par profiler le chemin de texte de SELECT et le comparer au protocole PostgreSQL, en vous concentrant sur la construction d’Apache Arrow RecordBatch, de RecordBatchWriter et de SPI_getbinval() de PostgreSQL. Déterminez si la copie dans RecordBatch ou SPI_getbinval()/nocachegetattr() est dominante, puis mesurez la modification terminée par rapport à la référence du protocole PostgreSQL.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, postgresql
- Domaine
- backend, databases, performance
- Type d'issue
- Bug
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100