Skip to content

Spec: V4 Adaptive Metadata Tree Spec Changes for Entry Structures#16025

Open
amogh-jahagirdar wants to merge 5 commits intoapache:mainfrom
amogh-jahagirdar:v4-amt-changes
Open

Spec: V4 Adaptive Metadata Tree Spec Changes for Entry Structures#16025
amogh-jahagirdar wants to merge 5 commits intoapache:mainfrom
amogh-jahagirdar:v4-amt-changes

Conversation

@amogh-jahagirdar
Copy link
Copy Markdown
Contributor

@amogh-jahagirdar amogh-jahagirdar commented Apr 18, 2026

This is one PR for V4 Adaptive Metadata Tree spec changes. The focus of this PR is to update the proposed entry structure in https://docs.google.com/document/d/1k4x8utgh41Sn1tr98eynDKCWq035SV_f75rtNHcerVw/edit?tab=t.wd1z5eeup025#heading=h.80fbnuij9rhg

There will be other PRs for updating the scan planning section, adding implementation notes for CDC etc.

@github-actions github-actions Bot added the Specification Issues that may introduce spec changes. label Apr 18, 2026
- Collapse v1/v2/v3 separate tabs into single v1-v3 tab across all manifest sections
- Add v4 tab to Data File Fields with content_entry, tracking, and deletion_vector structs using Write/Read columns
- Reconcile v4 architecture prose from v4-amt-changes: root manifest concept, Parquet format, partition spec binding, updated terms/glossary

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@amogh-jahagirdar amogh-jahagirdar changed the title V4 amt spec changes Spec: V4 Adaptive Metadata Tree Spec Changes for Entry Structures Apr 28, 2026
@amogh-jahagirdar
Copy link
Copy Markdown
Contributor Author

Two general working principals:

  1. Trying to make it easy for someone who just wants to implement v4 to click the v4 tabs, and have it be self describing.
  2. Try to do 1 without shifting too much of the existing spec contents, to avoid the risk of changing the spec for v1-v3.

Comment thread format/spec.md
| _optional_ | _optional_ | **`min-snapshots-to-keep`** | `int` | For `branch` type only, a positive number for the minimum number of snapshots to keep in a branch while expiring snapshots. Defaults to table property `history.expire.min-snapshots-to-keep`. |
| _optional_ | _optional_ | **`max-snapshot-age-ms`** | `long` | For `branch` type only, a positive number for the max age of snapshots to keep when expiring, including the latest snapshot. Defaults to table property `history.expire.max-snapshot-age-ms`. |
| _optional_ | _optional_ | **`max-ref-age-ms`** | `long` | For snapshot references except the `main` branch, a positive number for the max age of the snapshot reference to keep while expiring snapshots. Defaults to table property `history.expire.max-ref-age-ms`. The `main` branch never expires. |
=== "v1 - v3"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If people like the two tabbed approach then we should get #14656 in first, that'll make this diff easier to review

@amogh-jahagirdar amogh-jahagirdar marked this pull request as ready for review April 28, 2026 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Specification Issues that may introduce spec changes.

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants