В настоящее время множество баз данных имеют разные конфигурации и в зависимости от настроек, которые вы задали, это могут быть либо CA, CP, AP и т. Д., Но одновременно не могут достичь всех трех. Некоторые базы данных на самом деле прилагают усилия для поддержки всех трех, но по-прежнему уделяют приоритетное внимание их определенным образом.
Например, MySQL может быть CP и CA в зависимости от конфигураций. По умолчанию это CA, потому что он следует парадигме ведущего подчиненного, данные которой реплицируются на подчиненные. Допуск на разделение принесен в жертву в том случае, если набор подчиненных теряет связь с мастером и поэтому решает избрать нового мастера, создающего два мастера с собственным набором подчиненных устройств.
Однако MySQL также имеет другую конфигурацию, которая представляет собой кластерную конфигурацию. Он определяет приоритет CP по доступности, например. кластер отключится, если для обслуживания всех данных недостаточно узловых узлов.
Есть, вероятно, больше конфигураций для MySQL, что делает его удовлетворяющим другим комбинациям теорем CAP, но в целом я просто хотел сказать, что это зависит от того, что требует ваша система. Иногда базы данных лучше подходят для одной конфигурации против другой, поэтому лучше всего увидеть, какие проблемы могут возникать при использовании определенной конфигурации.
Что касается реализации теоремы CAP, я бы посоветовал более подробно изучить различные базы данных и как они реализуют приоритеты для теоремы CAP. Существует слишком много разных способов их реализации, например. как правило, основная ведомая модель используется для систем CA, хеш-кольца для систем AP и т. д.
MongoDB также следует за установкой ведущего-ведомого, но почему он считается толерантным к разделу? – Glide
Толерантность к разметке для сети вниз, другая системная ошибка. Раньше mysql настраивался на одном компьютере, поэтому нет возможности сбрасывать сеть или системная ошибка означает, что нет возможности, чтобы один узел не отвечал из-за сбоя сети или системной ошибки, а другая работала. Но в mongodb мы можем настроить на разных машинах -2, поэтому он также рассматривал Partition Tolerant. Но в настоящее время mysql также считает раздел толерантным. –
Итак, если MySQL также считается разделяющим толерантным, считается ли он CAP? (т. е. все 3 согласованные, доступные, * и * разрешающие помехи) – Glide