apache / apache/iceberg-python
Why non-atomic delete and upsert?
- 主要言語
- Python
- スター
- 1.1k
- フォーク
- 581
- 平均マージ
- 1日 17時間
- マージ済み PR(30日)
- 78
説明
### 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
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
この issue ではファイル、テスト、エントリポイントが指定されていないため、まず PyIceberg 内の delete と upsert の実装を見つけ、どのようにスナップショットを作成しているかを確認してください。観測された複数スナップショットの動作が意図的なものかどうかを判断し、変更を加える前に、その根拠を文書化するか、必要なアトミックな動作を定義してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- data-engineering, databases
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100