apache / apache/iceberg-python

Possible read-after-write consistency issue with multiple schema migration steps in Iceberg tables on AWS Glue + S3

Ouverte
#2,599 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
1.1k
Forks
581
Merge moyen
1 j 17 h
PR mergées (30 j)
77

Description

### Apache Iceberg version

Pyiceberg 0.10.0
Pyiceberg-core 0.6.0

### Please describe the bug 🐞

This may be a hard one to pin down but I noticed that multiple schema migration steps executed sequentially in the same `update_schema` context *sometimes* result in Exceptions like column name not found when using Iceberg tables on AWS Glue. An example:

```python
with table.update_schema() as update:
update.rename_column("some_column", "renamed_column")
update.move_first("renamed_column") # this sometimes fails with an error
# that renamed column doesn't exist
```

I have not noticed it with other back-ends like SQLite, leading me to believe it is a Glue issue specifically where a write may not yet be reflected by the time of the next operation.

### Willingness to contribute

- [ ] I can contribute a fix for this bug independently
- [x] I would be willing to contribute a fix for this bug with guidance from the Iceberg community
- [ ] I cannot contribute a fix for this bug at this time

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par le flux de table.update_schema() et reproduisez l’exemple séquentiel de rename_column suivi de move_first avec AWS Glue et S3, en le comparant à SQLite. Vérifiez si la première écriture du schéma est visible avant l’opération suivante. Le travail est terminé lorsque l’incohérence est expliquée et qu’un test de régression est ajouté ou que la limitation restante du backend est clairement documentée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, python
Domaine
cloud, databases
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.