2008-09-20 10 views
6

Ich brauche eine reine .Net dauerhafte hashtable/binarytree, funktional ähnlich berkeley-db Java-Edition.Persistent Binary Tree/Hash-Tabelle in. NET

Funktionell sollte es in einer ähnlichen Manier zu einem DHT wie Memcached und Velocity etc funktionieren, aber es muss nicht verteilt werden. Im Wesentlichen suche ich nach einer dauerhaften Hashtable.

Hat jemand irgendwelche Ideen oder Vorschläge?

Eine ähnliche Frage ist auch hier: Looking for a simple standalone persistent dictionary implementation in C#

Paul

+0

Wollen Sie sagen, Sie möchten eine Datenbank? Oder dass Sie in der Lage sein möchten, eine Hash-Tabelle auf Festplatte zu schreiben und sie wieder zu lesen? Oder etwas anderes? –

+0

Ich brauche ein rein .Net-basiertes System ähnlich wie berkeley db. – Kinlan

+0

Können Sie bitte Link zu meiner Frage http://stackoverflow.com/questions/100235/looking-for-a-simple-standalone-peristant-dictionary-implementation-in-c –

Antwort

0

Haben Sie in einer Sammlung in System.Collections.Generic mit der Build versucht? Und mithilfe der Serialisierung den Welpen in ein XML-Dokument oder ähnliches katapultieren.

+0

Das wäre vielleicht ok für kleine Sammlungen, aber ich muss auf die TB-Region skalieren. – Kinlan

1

Sie könnten die Caching Application Block oder System.Web.Caching betrachten. Beide haben Methoden, um sie als Backing Store mit einer SQL Server-Datenbank zu verbinden.

Die andere Methode wäre, das Objekt einfach mit einem XML- oder binären Formatierer zu serialisieren. (die für tiefe Klonen übrigens verwendet werden kann)

+0

danke für die Gedanken, aber keine von beiden ist die Antwort. Im Wesentlichen ist die berkely db eine persistente binäre Baum- oder Hash-Tabelle und kann viele TB groß sein. Die Sache mit dem bdb ist, dass es eine eingebettete db ist, was ich brauche, also kommt SQL Server auch nicht in Frage. – Kinlan

1

Als Alternative können Sie eine Index-Engine wie Lucene.net verwenden.

Die Sache, die es Ihnen über eine Liste geben würde, würde bessere Indizierung und ich glaube Kapazität, obwohl das nicht wirklich die beabsichtigte Verwendung ist. Die beabsichtigte Verwendung ist das Parsen von Dateien, kann aber auch zum Parsen von Datenbanken verwendet werden. An meinem früheren Arbeitsplatz verwendeten sie Lucene (Java-Implementierung), um unseren Produktkatalog nach Kategorien aus Datenbankdaten zu indizieren.

+0

Ein Anwendungsfall, den ich habe, würde eigentlich lucene.net ziemlich gut passen. danke für die rec. – Kinlan