Frage

ich brauche einen Weg Schlüssel-Wert-Lookups über (potenziell) Hunderte von GB Daten zu tun. Im Idealfall etwas auf einer verteilten Hash-Tabelle basiert, die gut mit Java arbeitet. Es sollte fehlertolerant und Open-Source sein.

sollte das Geschäft persistent sein, aber idealerweise Cache-Daten im Speicher würden die Dinge zu beschleunigen.

Es sollte in der Lage sein, gleichzeitig zu unterstützen, liest und schreibt von mehreren Rechnern (liest, wird sein 100X häufiger obwohl). Grundsätzlich ist das Ziel eine schnelle anfängliche Nachschlagen von Benutzer Metadaten für einen Web-Service zu tun.

Kann jemand etwas empfehlen?

War es hilfreich?

Lösung

Sie können Hazelcast zu sehen. Es ist verteilt / partitioniert, super lite, einfach und kostenlos.

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

Grüße,

-talip

Andere Tipps

Öffnen Chord ist eine Implementierung der CHORD Protokoll in Java. Es ist ein verteilte Hash-Tabelle Protokoll, das Ihre Bedürfnisse perfekt passen sollte.

Je nach Anwendungsfall Terracotta nur sein kann, was Sie brauchen.

Sie sollten wahrscheinlich angeben, wenn sie hartnäckig sein muss oder nicht, im Speicher oder nicht, usw. Man könnte versuchen:

Distributed Hash-Tabellen umfassen Tapisserie, Akkord und Gebäck. Eine davon soll Ihre Bedürfnisse anzupassen.

OpenChord klingt vielversprechend; aber ich würde auch prüfen, BDB oder jede andere nicht -SQL hashtable, kann es verteilt machen tot-einfach (wenn die Anzahl der Speicherknoten ist (fast) konstant, zumindest), Hash nur den Schlüssel auf dem Client den entsprechenden Server zu erhalten.

NMDB klingt wie seine genau das, was Sie brauchen. Verteilt ist, im Speicher-Cache mit einem persistent auf Plattenspeichern. Aktuelle Backends qdbm, Berkeley DB ist, und (vor kurzem nach einer kurzen E-Mail an den Entwickler hinzugefügt) tokyo Schrank . obwohl Schlüssel / Wert-Größe begrenzt ist, aber ich glaube, dass angehoben werden kann, wenn Sie nicht TiCP Unterstützung benötigen.

verteilt Map-Struktur Versuchen von redisson , es basiert auf Redis Server. Redis Cluster-Konfiguration verwenden Sie Daten über 1000 Server aufgeteilt werden.

Anwendungsbeispiel:

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();

DNS hat die Fähigkeit, dies zu tun, ich weiß nicht, wie groß jeder Ihrer Aufzeichnungen ist (8 GB Tonnen von kleinen Daten?), Aber es kann funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top