apache / apache/gravitino

[Improvement] Preserve ownership and recoverability during Lance table overwrite

Open
#12,956 2 comments 0 reactions 0 assignees View on GitHub
improvement
Dominant language
Java
Stars
3.2k
Forks
935
Avg merge
1d 17h
Merged PRs (30d)
339

Description

### What would you like to be improved?

Overwrite currently drops and recreates the table. A MODIFY_TABLE-only caller gains ownership and can subsequently deregister a table that previously returned 403. A failed replacement can also leave the original table missing after its data has been purged.

Parent: #9087. Follow-up from the review of #12954.

### How should we improve?

Preserve table identity, ownership, and privilege associations. Validate and stage the replacement before switching metadata, and defer destructive cleanup until the switch succeeds. Define retry and recovery behavior for storage or metadata failures.

Add unit and HTTP integration tests for retained ownership, unchanged privileges, failed replacement preserving the original table/data, concurrent overwrite, and retry behavior. Cover both create and register overwrite paths as applicable.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the create and register overwrite paths mentioned in the issue, then review how table identity, ownership, privileges, metadata switching, and destructive cleanup are handled. Add unit and HTTP integration coverage for retained ownership and privileges, failed replacement recovery, concurrent overwrite, and retry behavior; done means the original table and data remain intact when replacement fails.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.