Was ist eine gute Open-Source-B-Tree-Implementierung in C? [closed]
Lesezeit: 2 Minuten
Der große Jeff
Ich suche nach einer schlanken und gut konstruierten Open-Source-Implementierung einer in C geschriebenen B-Tree-Bibliothek. Sie muss unter einer Nicht-GPL-Lizenz stehen, damit sie in einer kommerziellen Anwendung verwendet werden kann. Idealerweise unterstützt diese Bibliothek das Speichern/Manipulieren des B-Tree-Index als Plattendatei, so dass große Bäume unter Verwendung eines konfigurierbaren (dh: minimalen) RAM-Fußabdrucks aufgebaut werden können.
Hinweis: Da es einige Verwirrung zu geben schien, sind ein Binärbaum und ein B-Baum nicht das gleiche.
Schauen Sie sich QDBM an: http://fallabs.com/qdbm/. Es ist LGPL (kann in kommerziellen Apps verwendet werden), implementiert einen festplattengestützten Hash und/oder B+-Baum mit beliebigen Schlüssel/Wert-Paaren und baut auf einer Vielzahl von Plattformen auf.
Nett! – Dies ist eine gute Ergänzung der Liste. Vielen Dank!
– Großer Jeff
15. März 2012 um 17:55 Uhr
Beim zweiten Nachdenken denke ich, dass dies auch die bevorzugte Antwort sein sollte.
– Großer Jeff
15. März 2012 um 17:57 Uhr
Gulden
Wenn LGPL ok ist, dann Tokioter Kabinett könnte auf die Rechnung passen. LGPL ermöglicht die Verknüpfung mit einer nicht-freien Anwendung, ohne Einschränkungen für die Verteilung des Endprodukts hinzuzufügen.
Kyoto Cabinet ist ein GPL-Nachfolger von Tokyo Cabinet, aber nachdem es eine Weile verwendet wurde, hat es einige sehr schlechte Angewohnheiten, zum Beispiel keine Ausnahmebehandlung, so dass die App bei std::bad_alloc abstürzt oder undefinierte und uneingeschränkte Speichernutzungsmuster aufweist.
– Lothar
16. Mai 2014 um 13:10 Uhr
Attraktives Chaos kbtree.h implementieren. Es ist eine effiziente B-Baum-Bibliothek
Ich bin gestoßen Dies – Die WB B-Tree-Datenbank für SCM, Java, C# und C, die ein GNU-Paket ist.
Rechnung
Vielleicht können Sie die Berkeley DB in Betracht ziehen. Es verwendet intern einen B-Baum.
13843000cookie-checkWas ist eine gute Open-Source-B-Tree-Implementierung in C? [closed]yes