Распределенная структура данных на нескольких машинах с многоадресной рассылкой - PullRequest
1 голос
/ 14 декабря 2010

Я изучаю возможность распределения структуры данных по нескольким машинам.Я хотел бы, чтобы он запускался в процессе на каждой машине и с помощью (Multicast?) Реплицировал копию полной структуры данных на всех машинах.

Кто-нибудь имеет какой-либо опыт в этом, который мог бы указать мнев правильном направлении?

Ответы [ 5 ]

0 голосов
/ 18 октября 2012

Чтобы ответить на вопрос о вашем вопросе, вам, вероятно, следует узнать о репликации конечного автомата , а затем искать реализации виртуальной синхронизации или Paxos для вашей платформы, которые можно использовать в качестве строительного блока.

Прагматично, я бы посоветовал подумать о службе координации, такой как ZooKeeper , которая избавила бы вас от многих проблем.

0 голосов
/ 19 декабря 2010

Вы также можете посмотреть на Hazelcast, который является решением на основе Java.

Вот прямая ссылка (1), в которой говорится о некоторых внутренних элементах.

(1) http://www.hazelcast.com/documentation.jsp#Internals

И уже есть предложение использовать (repcached) memcached, который также должен быть простым в использовании.

0 голосов
/ 14 декабря 2010

Распределенная блокировка трудна - и вам, возможно, придется блокировать ее, если только вы не читаете.Я предлагаю вам взглянуть на структуру распределенного кэширования, такую ​​как Microsoft Velocity (которая теперь может быть переименована как часть Azure), или на бесплатный, открытый исходный код и очень хороший memcached .

Существуют и другие платные опции - в частности, GemFire ​​ и Coherence .

Я бы хотел, чтобы memcache попробовал, это работаеточень хорошо.

0 голосов
/ 15 декабря 2010

Опубликуйте структуру через ØMQ , используя гнезда PUB / SUB, и затем вы можете переключаться между многоадресной передачей TCP или IP в зависимости от ваших требований и качества сети.

Если ваша структура данных достаточно организованавы также сможете отправлять обновления в структуру без особых проблем.

0 голосов
/ 14 декабря 2010

Вы можете записать свои данные в центральную базу данных. Тогда каждый экземпляр может получить к нему доступ. Если вы хотите изменить данные из экземпляра, вы должны внедрить механизм блокировки данных в базе данных. Это поможет?

...