Bibliothek funktioniert irgendwie nicht

Hallo Community,

ich benutze MP3Tag V3.00 und bearbeite meine MP3s ausschließlich damit. Nachdem ich über mittlerweile Jahre meine Musik-Sammlung in MP3s umgewandelt habe (5 stellige Anzahl), korrigiere oder ergänze ich immer wieder mal Daten. Da beim Start von MP3Tag jedesmal das ganze Verzeichnis komplett neu eingelesen wird, dauert das leider entsprechend.

Nun habe ich mal die "Bibliothek" aktiviert, diese auf meinen Musik-Ordner beschränkt, der auf einer externen USB-Festplatte liegt, die aber eigentlich immer angeschlossen ist. Das Verzeichnis ist in MP3Tag auch als Standardverzeichnis konfiguriert.

Ich habe bisher nur ein einziges Mal erlebt, das MP3Tag diese Bibliothek anscheinend beim Start genutzt hat, ansonsten liest der immer wieder die komplette Verzeichnisstruktur und somit jedes einzelne File neu ein, das dauert ewig.

Wo liegt der Fehler?

Ciaoi
Alhifi

Nirgendwo?
Die USB-Anbindung ist für Massendaten, die schnell gelesen werden sollen, die zweitschlechteste Lösung (die Anbindung per LAN ist noch langsamer).
Ich verstehe in diesem Zusammenhang nicht so wirklich die Erwartung an die Bibliothek.
Aber vielleicht ist ein Blick auf die wahre Funktion hilfreich:
MP3tag ist ein Programm zum Bearbeiten von Metadaten in passenden Dateien. Der normale Arbeitsablauf geht von "unzutreffende, fehlende Daten" hin zu "komplett richtige Daten". Deshalb muss bei jedem Öffnen von Dateien verglichen werden, ob die Dateien seit der letzten Benutzung von MP3tag geändert wurden oder nicht.

Es wird also nicht erst die MP3tag-eigene Bibliothek geladen und dann beim Zugriff auf eine Datei festgestellt, "ups, gibt es gar nicht mehr" oder "ups, hat ja jetzt ganz andere Daten" - diesen Effekt gibt es nur zu oft in iTunes, VLC, MediaMonkey (Tag-Daten nicht aktuell, da aus Bibliothek gelesen), WMP (fehlende Dateien nicht ausgeblendet). Und bestimmt noch einige Abspieler mehr.

Es ist zwar so, dass, wenn beim Vergleich zwischen Datei und Bibliothek festgestellt wird, dass es keine Änderung gegeben hat, die Daten aus der Bibliothek gelesen werden (und deshalb das wiederholte Einlesen schon schneller gehen müsste als beim ersten Mal), aber es werden wirklich Dateien geladen und nicht Einträge aus einer Bibliothek.
Der prinzipielle Vorteil der Bibliothek kommt für große Sammlungen (ab ca. 80.000 Dateien) zum Tragen, wenn auch diese im Stück geladen werden können, ohne dass der elektrische Speicher aufgebraucht wird und deshalb die Sammlung gestückelt gelesen werden muss.

Um die Frage nach einer möglichen Fehlerursache zu beantworten: ich habe den Eindruck, dass es falsche Vorstellungen von der Arbeitsweise der Bibliothek gibt.

Mein mentales Modell von der Arbeitsweise der Bibliothek ist, dass darin für jeden Eintrag ein Pfad, ein Cache-Datum und sämtliche zu diesem Bibliotheksdatum aktuelle Tags gespeichert sind. (Vielleicht gibt es auch nur ein globales Datum für die gesamte Bibliothek.) Beim Start des Programms oder Wechsel des Arbeitsverzeichnisses wählt MP3Tag aus seiner Bibliothek die zutreffenden Einträge aus und vergleicht deren Cache-Datum jeweils mit dem im Dateisystem hinterlegten letzten Änderungsdatum (nicht Erstellungsdatum und nicht Zugriffsdatum). Um dieses Dateidatum zu erhalten, muss nicht die ganze Datei geladen werden, was über USB oder Netzwerk eine gewisse Zeit dauern kann, sondern nur die entsprechende Dateisystemtabelle, vgl. dir *.mp? /s /b /t:w /o:-d. Falls Bibliotheksdatum und Änderungsdatum identisch sind, werden weiterhin die gecachten Tags verwendet, anderenfalls (also auch wenn das Änderungsdatum aus irgendeinem Grund vor dem Bibliotheksdatum liegen sollte) werden die Tags neu ausgelesen und in der Bibliothek gespeichert.

Gefühlt sollte dieser Prozess auch bei dutzenden verschachtelten Verzeichnissen und tausenden Dateien nur Sekunden dauern, sofern sich nichts geändert hat. Tatsächlich dauert es aber häufig Minuten. Das komplett ungecachte Einlesen von Tags dauert ebenfalls Minuten, wenn auch mehr als mit Tagcache/Bibliothek.

Als Benutzer erwarte ich also eine merklich andere Größenordnung der Wartezeit, erhalte aber häufig nur eine kaum wahrnehmbare CD damit grundsätzlich in Frage gestellte Beschleunigung.

Der primäre Grund für Einführung der Bibliothek war nicht die Beschleunigung des EInlesens, sondern die Möglichkeit (durch Auslagern gerade der speicherplatzverschlingenden Bilddaten), auch große Sammlungen in einem Stück zu laden.
Ich kann nur feststellen, dass das erneute Einlesen meiner kompletten Sammlung auf einem System mit MP3tag-SSD und interner, mechanischer HDD ca. 10 Minuten braucht, während dieselbe Sammlung auf einer externen HDD angebunden über USB3.0 mehr als 1 Stunde braucht.

Vielleicht äussert sich @florian noch detailliert zur Funktionsweise.

Wen es interessiert, welche Daten in der Bibliotheks-DB gespeichert werden, der benutzt ein SQLite-Datenbank-Anzeigeprogramm und öffnet in
%appdata%\Mp3tag\data\library
die Datei
mp3tag.db3

Darin findet man aktuell (Version 3.0) 13 Tabellen, wovon 2 bei mir leer sind.

Die Hilfe nennt das schnellere Einlesen als erste Motivation und den geringeren Bedarf an Arbeitsspeicher lediglich als möglichen positiven Nebeneffekt.

Aus welchem Text interpretierst du das?
Die Hilfe beschreibt, wie die Bibliothek funktioniert. Nirgendwo entdecke ich das Wort "schneller" oder "kürzer".

indirekt aus der Problembeschreibung bzw. Motivation für das Feature:

Beim Arbeiten mit sehr vielen Dateien kann das sowohl recht zeitintensiv werden als auch an die Grenzen des adressierbaren Arbeitsspeichers kommen.

Das ist meiner Ansicht nach eine Zustandsbeschreibung: viele Daten = viel Zeit und viel Speicherbedarf.

Die einzige Aussage, dass sich ein Zustand bessern sollte, finde ich in:
"Zusätzlich dazu, werden Album-Cover und andere Binärdaten ausschließlich in der Bibliothek gespeichert, was sich positiv auf den Speicherverbrauch auswirken kann."
Es ist nirgendwo von Zeitersparnis die Rede, was auch nicht zutrifft, wenn man die Daten das erste Mal liest.
Was aber auch beim ersten Einlesen schon stimmt, ist, dass durch die geänderte Speicherung von Tag-Daten der Speicherverbrauch positiv beeinflusst wird.
Und das sehe ich als die eigentliche Motivation. Und so habe ich es auch in


beschrieben.

Hallo zusammen und vielen Dank für die ausführlichen Antworten.

Allerdings wird mir trotz der ausführlichen Erklärungen der Sinn der Bibliothek (sprich Datenbank) in MP3Tag nicht wirklich klar. Eine Datenbank dient der dem schnellen Informationszugriff, wenn aber beim Einlesen des konfigurierten Verzeichnisses die Dateien trotzdem erneut komplett gelesen werden, macht die an der Stelle keinen wirklichen Sinn. Wie oben beschrieben sollte beim Start oder eben Einlesen des Verzeichnis der TimeStamp der Datei mit dem in der DB verglichen werden, das sollte wesentlich schneller gehen als das Einlesen der Datei.

Kurioserweise habe ich ja zumindest optisch diesen Effekt ja schon mal gesehen, sprich der Counter der Dateien beim Einlesen war innerhalb von Sekunden am Ende und alle Informationen geladen. Das war aber nur genau einmal, seitdem wird immer wieder komplett eingelesen. Das die USB-Lösung mit externe Festplatte nicht die optimalste ist, aber die einzige praktikable bei Verwendung an mehreren Notebooks, weiß ich auch. Werde morgen hier mal auf eine externe SSD umsteigen.

Nichtsdestotrotz wäre aber die aktuelle Verwendung nicht nötig, da ich im Prinzip keine Änderung an der Verarbeitung per MP3Tag feststellen kann, sprich ob die Bibliothek ein- oder ausgeschaltet ist.

Bye
Alhifi

Genau so geschieht es doch. Neu eingelesen werden nur die Daten von Dateien mit einem veränderten Zeitstempel. Ich kann Dir sagen , dass das mir bei Verwendung der Datenbank und keinen Daten mit verändertem Zeitstempel enorm schnell geht. Ohne Datenbank verlangsamt es sich um den Faktor 10. Dabei geht es bei mir nicht nur einen Datenbestand im fünfstelligen sondern im sechsstelligen Bereich, dessen Laden ohne Datenbank gar nicht machbar wäre.

Für die Geschwindigkeit des Einlesens bei keinen oder nur wenigen veränderten Dateien ist auch maßgeblich wichtig, wo die Datenbank gespeichert ist. Normalerweise ist das auf dem Systemlaufwerk im Ordner unterhalb %appdata%. Wenn Du also als Systemlaufwerk eine SSD hast, beschleunigt das den Vorgang um einiges. Eine externe SSD ist auch wieder nur per USB angebunden und bringt vor allem bei der Erfassung der Datensätze mit verändertem Zeitspempel etwas an Performance, weniger bei Einlesen der Tagdaten, wenn diese verändert wurden.

Aber vielleicht liegt Dein Problem ganz woanders. Was verwendest Du als Anti-Virenssoftware, den Windows Defender?
Dazu habe ich gerade hier etwas geschrieben:

Der Tipp mit dem Windows Defender war hilfreich, vielen Dank!

Ich habe allerdings entgegen der Beschreibung dort testweise "nur" den Ordner auf der Festplatte und den Prozess MP3Tag.exe ausgeschlossen, aber jetzt rennt's förmlich nach dem Start von MP3Tag, vom Start bis zur Darstellung der gut 34.000 Tags/Dateien vergehen knapp 22 Sekunden!

Bye
Alhifi

1 Like

Danke für die Rückmeldung, die ich zum Anlass genommen habe, die Ausschlüsse im Defender bei mir nochmals zu überprüfen.
Das Ergebnis:
Ich hatte mich beim Prozessnamen "mp3tag.exe" verschrieben.
Es reicht auch nur diesen Prozess auszuschließen. Das Ausschließen von Ordnern ist nicht erforderlich.

1 Like