Skip to content

Conversation

@agarwal-navin
Copy link
Contributor

@agarwal-navin agarwal-navin commented Nov 14, 2025

The summaries written by Shared Tree and its summarizables are not versioned. Any changes to the summary format can lead to failures in clients that do not understand this new format. For example, the incremental summarization feature changes the forest's summary format by adding more nodes to its summary tree which older clients won't be able to read. Making this change behind a new version makes it safer as we can fail fast on seeing unrecognizable versions.
This change adds versioning by adding a metadata blob to the summary tree of the shared tree and its summarizables. This metadata blob will contain the format version of the summary. Every time, the format of the summary changes, a new version should be added so that clients that don't understand this format will fail.

The metadata blob will be written when minVersionForCollab is greater than the next release version 2.73.0.

Since the metadata blob and hence the versions did not exist before 2.73.0, changes to the summary format will not result in failing them during reading from the snapshot. Instead, the faiilures may manifest later when the underlying data is read. So, the recommended way to change format is to do it in a way that will break as soon as possible. For example, chaging the id of the summary node where the summary is stored will result in older clients not finding the snapshot.

AB#53723

@agarwal-navin agarwal-navin requested a review from a team as a code owner November 14, 2025 19:05
@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: tree base: main PRs targeted against main branch labels Nov 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dds: tree area: dds Issues related to distributed data structures base: main PRs targeted against main branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant