Автоматическое распределение карты Java по нескольким узлам - PullRequest
5 голосов
/ 29 января 2010

У меня проблема с тем, что мне нужно собрать Карту, размер которой в ГБ (конечный размер превышает 64 ГБ), и я не могу предположить, что у пользователя программы будет висеть такой монстр. Хорошим решением было бы распределить эту карту по нескольким машинам, чтобы получить гораздо более скромный объем памяти для каждого экземпляра.

Кто-нибудь знает библиотеку / набор инструментов, которые могут выполнить этот раздел? Мне нет дела до репликации или транзакций; просто распространяя это требование памяти вокруг.

Ответы [ 5 ]

3 голосов
/ 29 января 2010

терракота может быть полезна, посмотрите здесь

http://www.terracotta.org/

это кластерный jvm будет зависеть от того, как часто вы обновляете карту, я думаю, насколько хорошо она работает.

2 голосов
/ 29 января 2010

Предлагаю начать с фундука:

http://www.hazelcast.com/

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

Насколько я знаю, он работает быстрее, чем коммерческие альтернативы, поэтому я не буду беспокоиться о производительности.
(я сам формально не тестировал)

2 голосов
/ 29 января 2010

Должно ли это быть открытым исходным кодом? Если нет, то Oracle Coherence может это сделать.

1 голос
/ 29 января 2010

Вы можете решить свою проблему, используя вместо этого базу данных, например, http://hsqldb.org/ может предоставить вам необходимую функциональность с возможностью записи данных на диск вместо хранения всего этого в памяти.

Я бы определенно сделал шаг назад и спросил бы себя, является ли карта правильной структурой данных для ГБ данных.

0 голосов
/ 30 января 2010

Gigaspaces Datagrid звучит как то, что вы ищете. (Не бесплатно, хотя)

...