tikv / sig-transaction

Resources for the transaction SIG
62 stars 13 forks source link

add async commit downgrading design doc #93

Open sticnarf opened 3 years ago

sticnarf commented 3 years ago

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.

youjiali1995 commented 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.

nrc commented 3 years ago

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?

nrc commented 3 years ago

Otherwise, lgtm

sticnarf commented 3 years ago

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)

nrc commented 3 years ago

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.

youjiali1995 commented 3 years ago

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. :)