Разница между полной совместимостью и транзитивной полной совместимостью - PullRequest
0 голосов
/ 09 ноября 2018

Реестр схем Confluent определил несколько уровней совместимости , которые богаче, чем проверки совместимости, которые Avro предоставляет .

Однако, хотя я понимаю определения для каждого уровня совместимости, я не понимаю, какая последовательность схем может быть «полностью совместимой», но не «полностью транзитивно совместимой».

Может ли кто-нибудь привести пример последовательности схем, которая соответствует этим критериям?

1 Ответ

0 голосов
/ 16 ноября 2018

Эффект, который имеет переходный , состоит в том, что он будет проверять все предыдущие версии , а не только текущую по отношению к следующей вставленной версии.

Я бы не назвал это "более богатым", скажем так (реестр схемы все еще использует те же методы совместимости Avro за кулисами), это просто улучшение по сравнению с неявной транзитивностью, которая происходит, если вы не переопределите конфигурация между двумя версиями. (Если v2 совместим с v1, то v3 совместим с v2, тогда вы предполагаете, что v3 совместим с v1)

Я не использовал FULL, но допустим, например, что вы хотите полностью нарушить схему. Вы можете иметь совместимость по умолчанию BACKWARD (схема v1), затем установить значение NONE и передать схему (v2), а затем снова значение BACKWARD. Теперь, если вы нажмете push новую схему (v3), будет проверяться только v2.

Если бы вы установили переходную настройку до v3, то v1 был бы проверен так же, как и v2.

...