Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Why non-atomic delete and upsert?

Open
#3,577 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Quiet
Tech stack
python

Research direction

The issue names no files, tests, or entry points; begin by locating the delete and upsert implementations in PyIceberg and reviewing how they create snapshots. Determine whether the observed multiple-snapshot behavior is intentional, then document the rationale or define the required atomic behavior before making a change.

Written by the indexing model from the issue text.

Description

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

Dominant language
Python
Stars
1.1k
Forks
589
Avg merge
2d 4h
Merged PRs (30d)
72

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/iceberg-python

All issues in apache/iceberg-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.