Open sticnarf opened 3 years ago
The solution sounds fine to me. We don't need to do it now, because we haven't figured out the requirements of downgrading. For example, even if this feature can downgrade without stop, other features like clustered index can't downgrade in place. If we have to downgrade by data migration, we don't need to do it.
What would happen if we just leave the extra fields? I assumed older TiKV would just ignore them? If not can we write a small patch to do that and backport it?
Otherwise, lgtm
What would happen if we just leave the extra fields? I assumed older TiKV would just ignore them? If not can we write a small patch to do that and backport it?
All 4.0 versions now panic when seeing these fields. I worry even if we patch the latest 4.0 version, the users may still meet problems when they do a second downgrade to an even older 4.0 version... (We promise patch versions are compatible with each other)
What would happen if we just leave the extra fields? I assumed older TiKV would just ignore them? If not can we write a small patch to do that and backport it?
All 4.0 versions now panic when seeing these fields. I worry even if we patch the latest 4.0 version, the users may still meet problems when they do a second downgrade to an even older 4.0 version... (We promise patch versions are compatible with each other)
Hmm, this seems like a problem, we should discuss with product, but it seems to me that we need to make TiKV forwards compatible in this kind of way and only offer back compat guarantees up to versions which have forwards compat built-in.
What would happen if we just leave the extra fields? I assumed older TiKV would just ignore them? If not can we write a small patch to do that and backport it?
All 4.0 versions now panic when seeing these fields. I worry even if we patch the latest 4.0 version, the users may still meet problems when they do a second downgrade to an even older 4.0 version... (We promise patch versions are compatible with each other)
We can ignore extra fields since v5.0. :)
It is likely we need to provide a solution for downgrading from TiKV 5.0 to 4.0. Here is the doc about handling async commit.