A feature flag sounds good to me with associated regression tests to pair
along with each feature.

Re: Snapshot Id Inheritance,  would be good to update the spec with the
change in metadata guarantees.

-Gautam.

On Mon, Jan 13, 2020 at 11:28 AM Ryan Blue <rb...@netflix.com.invalid>
wrote:

> Hi everyone,
>
> Anton has a PR almost ready to merge that implements snapshot ID
> inheritance, similar to how we plan to inherit sequence IDs in metadata.
> That allows people to create manifests that are missing data that will be
> assigned at commit time (snapshot ID) or that may change if a commit is
> retried (sequence number). The inherited information is stored as a field
> of ManifestFile that is stored in the ManifestList.
>
> This change makes the snapshot ID optional for each data file in a
> manifest, so that a null snapshot ID indicates that it should be inherited
> from the manifest metadata. This is a breaking change because older readers
> consider this field required. A change that can break older readers is not
> allowed because we guarantee forward compatibility within a format version.
>
> There are some options for how we handle this. First, we could bump the
> format version and break compatibility, but there are cases when it is
> possible to read tables that use appended manifests. For example, tables
> that don't use appended manifests, or tables that rewrite those manifests
> quickly will be compatible with old readers. That's why I think we should
> consider a second option: adding a feature flag that ensures that manifests
> will not be written with missing snapshot IDs unless the table has the
> compatibility flag set. Then tables are opted into breaking changes within
> a format version and we have a way to release format features before the
> version where they become standard; format v2 will mark the snapshot ID
> optional and have requirements for inheritance.
>
> What do people think about this strategy for managing breaking changes? I
> like the idea of getting the changes out early behind feature flags, where
> possible, but it would be great to hear whether other people see problems
> with this approach.
>
>
> rb
>
> --
> Ryan Blue
> Software Engineer
> Netflix
>

Reply via email to