Я работаю над организацией, имеющей офисы в 48 странах мира. По существу, они теперь работают, так как все они хранят данные в локальной копии базы данных и копируются во все регионы/офисы в мире. В странный случай, когда им нужно работать непосредственно над чем-то, где «копия разработки» находится на лондонских серверах, они должны напрямую подключаться к лондонским серверам независимо от того, где они находятся в мире.Архитектура для распределенного по всему миру Neo4j?
Так что скажем, что я хочу иметь один граф, охватывающий всю организацию, которая оштукатурена, чтобы каждая область имела относительно быстрое считывание графика. Я обеспокоен тем, что записи будут убивать производительность. Я понимаю, что записи проходят через одного хозяина, значит ли это, что есть один мастер во всем мире? т. е. если этот мастер находится в Лондоне, то каждый из них пишет в базу данных из Сиднея, чтобы пройти это расстояние независимо от локального осколка? И что произойдет, если Сидней и Лондон будут отрезаны (по какой-либо причине)?
По существу, как Neo4j решает проблему глобального распространения?
Отличный ответ: что происходит, когда связь между двумя местоположениями отключена, изменения внесены в оба кластера, а затем восстанавливается ссылка? Я думаю, что я кое-что прочитал о том, чтобы предоставить обработчик для соревнований ... Правильно? – gremwell
для мастер-выборов вам нужно больше половины членов кластера (поэтому у вас должно быть нечетное число), чтобы иметь кворум. Без кворума не будет избран мастер. Изолированное меньшинство вашего кластера все еще может обрабатывать чтения, но оно не будет принимать записи. –
Но у нас есть группа из 3 в Лондоне, группа из 3 в Сиднее. Мастер находится в Лондоне, и кто-то отключает лондонский офис (примечание: серверы все еще работают, и все в лондонском офисе продолжают их использовать). Сидней теперь выбирает нового мастера и работает некоторое время. Спустя некоторое время связь с лондонским офисом возвращается в Интернете. Что происходит? – gremwell