16 Stimmen

Benötigt wird ein verteiltes System zum Nachschlagen von Schlüsselwerten

Ich brauche eine Möglichkeit, Key-Value-Lookups über (potenziell) Hunderte von GB an Daten durchzuführen. Idealerweise etwas, das auf einer verteilten Hashtabelle basiert, die gut mit Java funktioniert. Es sollte fehlertolerant sein, und Open Source.

Der Speicher sollte beständig sein, würde aber idealerweise Daten im Speicher zwischenspeichern, um den Vorgang zu beschleunigen.

Es sollte in der Lage sein, gleichzeitige Lese- und Schreibvorgänge von mehreren Rechnern aus zu unterstützen (Lesevorgänge werden allerdings 100 Mal häufiger vorkommen). Der Zweck besteht im Wesentlichen darin, eine schnelle erste Abfrage von Benutzer-Metadaten für einen Webdienst durchzuführen.

Kann jemand etwas empfehlen?

0 Stimmen

Wofür wollen Sie optimieren? Zum Beispiel Lesedurchsatz (gleichzeitige Lesevorgänge von mehreren Rechnern), Fehlertoleranz angesichts nicht verfügbarer Rechner, geringe Anzahl von Rechnern... Benötigen Sie auch Schreibzugriffe?

0 Stimmen

Danke, ich habe die Frage mit diesen Informationen geändert.

0 Stimmen

Wie wollen Sie Ihre Daten verteilen? Sollen alle Daten an/auf/von jedem Knoten verfügbar sein oder nicht? Im ersten Fall lautet die nächste Frage: "Warum die verteilte Suche?".

12voto

Vielleicht möchten Sie sich informieren über Hazelcast . Es ist verteilt/partitioniert, superleicht, einfach und kostenlos.

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

Herzliche Grüße,

-talip

8voto

Nicholas Mancuso Punkte 11283

Offener Akkord ist eine Implementierung des CHORD Protokoll in Java. Es handelt sich um ein verteiltes Hash-Tabellen-Protokoll, das Ihren Bedürfnissen perfekt entsprechen sollte.

2voto

Alex Miller Punkte 67243

Je nach Anwendungsfall, Terrakotta kann genau das sein, was Sie brauchen.

1voto

carson Punkte 5693

Sie sollten wahrscheinlich angeben, ob es persistent sein soll oder nicht, ob es im Speicher sein soll oder nicht, usw. Sie könnten es versuchen: http://www.danga.com/memcached/

0 Stimmen

Danke, ich habe einen Hinweis hinzugefügt, dass es persistent sein muss, was meiner Meinung nach Memcached ausschließt.

0 Stimmen

Memcached war auch mein erster Gedanke, aber "Hundertstel GBs" ist ein bisschen zu viel für RAM

0voto

Zu den verteilten Hash-Tabellen gehören Tapestry, Chord und Pastry. Eine dieser Tabellen sollte Ihren Anforderungen entsprechen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X