After 97 commits, 1,422 additions and 593 deletions, this rewritten code is ready. This replaces all of the file storage mechanisms that were used to store metadata except for storing cover art. This means that it is practically instantaneous "load" the catalog into memory, most of the functions that were provided before are the same order of complexity as when the supporting data structures were in memory, and there is a significant storage space savings (6.4MB in 586 files vs. 1.9MB in one file). There were also many improvements made along the way to the code outside of this change. Some of these improvements can be applied to the 'xml_files' branch which I just created. There are still things to be done here such as command-line arguments for 'mbcat-sql-upgrade.py' and 'catalog-cli.py', but new users should use this code base at this point.
After 97 commits, 1,422 additions and 593 deletions, this rewritten code is ready. This replaces all of the file storage mechanisms that were used to store metadata except for storing cover art. This means that it is practically instantaneous "load" the catalog into memory, most of the functions that were provided before are the same order of complexity as when the supporting data structures were in memory, and there is a significant storage space savings (6.4MB in 586 files vs. 1.9MB in one file). There were also many improvements made along the way to the code outside of this change. Some of these improvements can be applied to the 'xml_files' branch which I just created. There are still things to be done here such as command-line arguments for 'mbcat-sql-upgrade.py' and 'catalog-cli.py', but new users should use this code base at this point.