Нужна распределенная система поиска значения ключа - PullRequest
16 голосов
/ 13 октября 2008

Мне нужен способ поиска значений ключа на (потенциально) сотнях ГБ данных. В идеале это что-то, основанное на распределенной хеш-таблице, которое прекрасно работает с Java. Он должен быть отказоустойчивым и открытым исходным кодом.

Хранилище должно быть постоянным, но в идеале должно кэшировать данные в памяти, чтобы ускорить процесс.

Он должен поддерживать одновременное чтение и запись с нескольких компьютеров (однако чтение будет в 100 раз более распространенным). По сути, цель заключается в быстром начальном поиске метаданных пользователя для веб-службы.

Кто-нибудь может порекомендовать что-нибудь?

Ответы [ 10 ]

12 голосов
/ 29 октября 2008

Возможно, вы захотите проверить Hazelcast . Распространяется / разбивается на разделы, супер лайт, просто и бесплатно.

java.util.Map map = Hazelcast.getMap ("mymap");
map.put ("key1", "value1");

С уважением,

-talip

8 голосов
/ 13 октября 2008

Open Chord является реализацией протокола CHORD в Java. Это протокол распределенной хеш-таблицы, который должен идеально соответствовать вашим потребностям.

2 голосов
/ 15 октября 2008

В зависимости от варианта использования, Терракотовая может быть именно тем, что вам нужно.

1 голос
/ 13 октября 2008

Вы, вероятно, должны указать, должен ли он быть постоянным или нет, в памяти или нет, и т. Д. Вы можете попробовать: http://www.danga.com/memcached/

0 голосов
/ 12 января 2014

Попробуйте распределенную структуру Map из Redisson , она основана на Redis сервере. Используя конфигурацию кластера Redis, вы можете разделить данные на 1000 серверов.

Пример использования:

Redisson redisson = Redisson.create();

ConcurrentMap<String, SomeObject> map = redisson.getMap("anyMap");
map.put("123", new SomeObject());
map.putIfAbsent("323", new SomeObject());
map.remove("123");

...

redisson.shutdown();
0 голосов
/ 23 октября 2008

nmdb звучит как то, что вам нужно. Распределяется в кэш-памяти с постоянным хранением на диске. Текущие бэк-энды включают qdbm, berkeley db и (недавно добавленные после быстрой переписки с разработчиком) tokyo cabinet . Размер ключа / значения ограничен, но я считаю, что его можно снять, если вам не нужна поддержка TICP.

0 голосов
/ 14 октября 2008
0 голосов
/ 13 октября 2008

OpenChord звучит многообещающе; но я бы также рассмотрел BDB или любую другую хэш-таблицу, отличную от SQL, поэтому его распространение может быть очень простым (если количество узлов хранения является (почти) постоянным, по крайней мере), просто хэш ключ на клиенте, чтобы получить соответствующий сервер.

0 голосов
/ 13 октября 2008

Распределенные хеш-таблицы включают Гобелен, Аккорд и Кондитерские Один из них должен соответствовать вашим потребностям.

0 голосов
/ 13 октября 2008

DNS имеет возможность сделать это, я не знаю, насколько велика каждая из ваших записей (8 ГБ тонн небольших данных?), Но это может сработать.

...