Im Jahr 2013 wurde ein neuer Bitcoin-Kern veröffentlicht und eine der angeblichen Verbesserungen war die Migration von Berkeley DB zu LevelDB. Laut den Versionshinweisen auf bitcoin.org :
LevelDB, eine schnelle, nicht relationale Open-Source-Datenbank von Google, wird jetzt zum Speichern von Transaktions- und Blockindizes verwendet. LevelDB funktioniert viel besser auf Maschinen mit langsamer I/O und ist im Allgemeinen schneller .
Ähnliche Aussagen wurden von Bitcoin-Core-Entwicklern gemacht :
LevelDB – eine Open-Source-Umschreibung des eigenen Datenbanksystems von Google – wurde für Effizienz und Konsistenz auf handelsüblicher Hardware entwickelt und übertrifft BDB in einigen Umgebungen um eine Größenordnung . Vorläufige Tests mit LevelDB zeigen sehr gute Ergebnisse .
Heutzutage gibt es jedoch mehrere Kommentare im Internet, die LevelDB kritisieren. Laut LevelDB-Seite bei Wikipedia :
LevelDB ist weithin als unzuverlässig bekannt und die von ihm verwalteten Datenbanken sind anfällig für Beschädigungen. Akademische Studien zu früheren Versionen von LevelDB haben ergeben, dass die in diesen Versionen von LevelDB gespeicherten Daten unter einigen Dateisystemen nach einem Systemabsturz oder Stromausfall inkonsistent werden können. Die Beschädigung von LevelDB ist so alltäglich, dass eine Beschädigungserkennung in Anwendungen integriert werden muss, die sie verwenden.
Zusammenfassend sind die Beschwerden über LevelDB :
Frage 1
Sind diese Beschwerden über LevelDB richtig?
Frage 2
Wie sieht die endgültige Bilanz der Migration von Bitcoin Core von Berkeley DB zu LevelDB aus? Funktioniert LevelDB wie erwartet? Diese Migration war die richtige Wahl?
Als jemand, der damals an dieser Migration beteiligt war, glaube ich, dass es die richtige Entscheidung war. LevelDB ist alles andere als perfekt, aber ich wüsste nicht, was ich sonst verwenden sollte.
Im Speziellen:
Reviewing the Lock subsystem statistics is the best way to determine this value.
, dass dies meines Erachtens für unseren Anwendungsfall nicht akzeptabel ist.Während Datenbankbeschädigungen heutzutage relativ häufig gemeldet werden, bin ich der Meinung, dass es sich hauptsächlich um Hardwarefehler oder Treiberprobleme handelt. Bitcoin Core neigt dazu, Festplatten, Speicher und CPUs weitaus stärker zu belasten als die meisten Softwareprogramme, wodurch ansonsten unsichtbare Probleme auftauchen.
Nick Odell
Markus Messa
Nick Odell
Don Lee