2010-08-23 6 views
9

Gibt es ein Dateisystem-basierten B + Baum Implementierung in C# (Open Source). Ich habe einige Projekte gefunden, aber diese sind keine auf Datei (Datenträger) basierende Implementierung. Ich suche speziell nach Dateisystem-basierten B + Trees.Dateisystem auf der Basis B + Baum-Implementierung in C#

+0

Was ... ist es zu lokalisiert ..? kommen auf Jungs – RameshVel

Antwort

10

Update:

Ich habe einige benchmarks of managed B-Tree implementations für Ihren Genuss hinzugefügt, wenn Sie in diese Art der Sache suchen.

BplusDotNet „... bekannt ist, etwas auf Löschungen Buggy zu sein“

Ich habe gerade das Gegenteil der Fall zu sein, RaptorDB 1.6 verdarb Zustand und BplusDotNet 1.0.2082.16942 schien gut zu funktionieren .

Original:

Der Vollständigkeit halber werde ich meine eigene Implementierung hier hinzufügen.

+0

Ich kann bestätigen, dass BPlusTree beschädigte Daten tut, wenn über eine benutzerdefinierte ISerializer Serializer zu lesen. Entitäten haben SHA256-basierte HMACs für Selbstüberprüfungen eingebaut und würden 1: 50K-Male fehlschlagen (IO-Streams würden vorzeitig geschlossen). Auch die Leistung sinkt, daher ist das Lesen der letzten 10% -Einheiten viel langsamer als das Lesen der ersten 10%. Probleme gingen, als weg gleiche Serialisierung von T durchführen => byte [] außerhalb BPlusTree und BPlusTree PrimitiveSerializer.Bytes verwendet, um mit nur byte [] anstelle Einheit einer benutzerdefinierten zu arbeiten. Projekt wahrscheinlich tot seit NuGet hat keine Freisetzung in 1,5 Jahren gesehen – DeepSpace101

+0

@ DeepSpace101 können Sie Ihre Implementierung des ISerializer teilen? Ich vermute, dass dein Problem möglicherweise da ist. Der BPlusTree wird derzeit in mehreren kommerziellen Angeboten verwendet und hat sich als zuverlässig erwiesen, indem Sie das Byte [] und den eingebauten Serializer verwenden. Da das Projekt tot ist, kann ich den Eindruck durchaus nachvollziehen, da ich seit langem keine wesentlichen Verbesserungen mehr gemacht habe. Ich bin glücklich, dir und anderen damit zu helfen, schiess mir einfach eine E-Mail roger @ my username. –

+0

Ihnen eine E-Mail, aber die Ursache war, dass der Serializer eine Konvention hatte, dass End-of-Stream = Ende des Objekts.Diese Konvention/Annahme wurde an der "T ReadFrom (Stream Stream)" -Schnittstelle unterbrochen, was dazu führte, dass mehr Bytes (über das "Ende" hinaus) gelesen wurden, wodurch die Krypto-Prüfsummen verloren gingen. – DeepSpace101

Verwandte Themen