apache / apache/iceberg-python

Why non-atomic delete and upsert?

Offen
#3,577 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
1.1k
Forks
581
Ø Merge
1 T. 17 Std.
Gemergte PRs (30 T.)
78

Beschreibung

### Question

The implementation of the `delete` and `upsert` operation make an deliberate choice to create multiple snapshots, breaking the atomicity expectation.

For example, if I start a `delete` operation to remove some entries, I do not expect consumers of the data to see a snapshot with some but not all of the entries gone.

Given that the implementation choice looks very deliberate, I'm curious about the rationale for it?

It seems that other clients of the library expect atomic operation as well, for example https://github.com/apache/iceberg-python/issues/3076

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Das Issue nennt keine Dateien, Tests oder Einstiegspunkte; beginne damit, die Implementierungen von delete und upsert in PyIceberg zu finden und zu überprüfen, wie sie Snapshots erstellen. Ermittle, ob das beobachtete Verhalten mit mehreren Snapshots beabsichtigt ist, und dokumentiere anschließend die Begründung oder definiere das erforderliche atomare Verhalten, bevor du eine Änderung vornimmst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
data-engineering, databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.