Ich verwende eine Drittanbieteranwendung, die BerkeleyDB für den lokalen Datenspeicher (BMC Discovery) verwendet. Im Laufe der Zeit werden seine BDB-Dateien fragmentiert und lächerlich groß, und BMC Software schrieb ein kompaktes Dienstprogramm, das im Grunde db_dump in db_load mit einem neuen Dateinamen piped und dann die ursprüngliche Datei durch die neu erstellte Datei ersetzt.Wie berechnet man die Dauer für eine BerkeleyDB-Dump-/Ladeoperation für eine gegebene BDB-Datei?
Die Zeit, die für große Dateien benötigt wird, ist wahnsinnig lang und kann Stunden dauern, während andere für die gleiche Größe die Hälfte dieser Zeit benötigen. Es scheint wirklich von der Ebene der Fragmentierung in der Datei und/oder Art der Daten zu abhängen (ich nehme an?).
Das bereitgestellte Dienstprogramm verwendet eine grobe Methode, um die Dauer basierend auf der Gesamtgröße des Datenspeichers (der aus mehreren BDB-Dateien besteht) zu aktivieren. Ex. wenn größer als 1G sagt "wird ein paar Stunden dauern" und wenn größer als 100G sagt "wird viele Stunden dauern". Dies hilft überhaupt nicht.
Ich frage mich, ob es einen besseren, präziseren Weg geben würde, mit den mit BerkeleyDB.6.0 (auf Red Hat) bereitgestellten Befehlen die Dauer einer db_dump/db_load-Operation für eine bestimmte BDB-Datei zu schätzen.
Hinweis: Auch wenn diese Frage eine bestimmte Anwendung von Drittanbietern erwähnt, ist es nur, um Sie in den Kontext zu setzen. Die Frage bezieht sich auf BerkelyDB.