Мое понимание заключается в том, что в архитектуре БД с несколькими мастерами:
- У вас есть 2+ сервера БД, оба действуют как мастера чтения/записи; и
- Это либо какой-то тип балансировщика нагрузки для балансировки операций между этими несколькими мастерами; и
- Всякий раз, когда сервер получает чтение, он извлекает и возвращает запрошенные данные локально; и
- Всякий раз, когда сервер получает запись, он записывает + фиксирует локально, но затем реплицирует эту запись в режиме реального времени на другие серверы (вот почему системе неявно требуется балансировщик нагрузки, чтобы предотвратить передачу одной и той же записи на 2+ разных мастера в в то же время); и
- У вас могут быть установки Active/Active или Active/Passive. В первом случае балансировщик нагрузки действительно балансирует записи на всех узлах. Я не совсем понимаю последнее (активное/пассивное)
Итак, для начала, если что-то из того, что я сказал выше, неверно, пожалуйста, начните с того, что поправьте меня или проясните это для меня! Предполагая, что я более или менее попал в цель:
Тогда в чем (на самом деле) разница между Multi-Master и Peer-To-Peer (P2P)? В системе P2P любое чтение выполняется и возвращается локально, а любая запись записывается локально, а затем реплицируются на все одноранговые узлы...так разве они не являются одним и тем же?!