PL database consistency check missing

The PL database contains indexed data of the picture files in folders.
Each folder (and subfolders) can be indexed in the PL PhotoLibrary by the index function.
The indexing information in the PL database represents hence the information that is stored in picture libraries at indexing time.

This picture libraries are files on physical media, and files and folders might be added/deleted by other programs than PL or even the OS, for whatever reason. It never can be guaranteed that this index information in the PL database is correctly representing the reality on the physical medium without companion consistency verification measures.

As there are no obvious database verification methods implemented in PL8 as far as I know (did I overlooked?), I consider this as a bug.

This extra measures can be background processes or manually triggered actions.
This extra measures need also to take along that physical media may not be present at some point in time (e.g. externally attached HSS or SSD).
It is also recognized that the projects that are stored in the database can’t be easily verified and are out of the scope.

One of the straightforward possible solutions might be to add a re-indexing function per folder that can add missing and delete invalid database entries (it can be an option per folder next to the indexing function).

It shall be clear that deleting and rebuilding the database looses the projects info and is not a good work around.

So far, DxO has focused their effort towards further improving technical features for photo rendering and has kind of neglected the asset management and reliability aspects of PhotoLab, although some under-the-hood improvements have been made over the years.

PhotoLab can re-index a collection of 30k image files within 30 minutes (on my Mac), but indexing itself only adds items and cannot show missing items with a selection of how to proceed (remove/search) as e.g. Adobe Lightroom Classic does.

Many requests have been made and they are old too. DxO has yet to do something in this area - and be it only to write a few sentences. Not saying anything about widely requested feature sets is, imo, one of the poorest choices.

1 Like

I did some further testing and found that if you browse with PhotoLibrary in a directory where files were deleted outside PL, then the database is apparently updated accordingly. I like that! But I did not found a global re-index function, which is still an inconvenience for database maintenace.

Select a folder from the Photo Library’s left sidebar and launch indexing from the context menu…on Mac.

This indexing function is also on Windows, but it seems not to delete entries from the database.

My test case is:

  • Make folder Pictures with subdirs Pictures1 and Pictures2
  • Index the Pictures folder
  • All pictures in subdirs Pictures1 and Pictures2 are indexed and can be queried from the PL database
  • Close PL
  • Delete the folder Pictures2 in the OS (Windows explorer or the equivalent for MAC)
  • Open PL and index again the Pictures folder
  • Query the pictures with PL in Pictures2 folder : the pictures still show up (marked that they can’t be processed)

The indexing function seems not deleting from the database not present pictures. I called a function with this deleting capability re-indexing, for the sake of discussion.

Conclusion after additional testing is that the PL database is sufficiently maintained:

  • Visiting a folder in the PhotoLibrary updates the the database → OK

  • Indexing a folder also removes non present pictures out of the database as well → OK

  • When a folder is deleted in windows explorer (my original test), the PL database is not updated after indexing. However, this is probably intentional to fulfill the below requirement that I stated and can e.g. be addressed by deleting these pictures

The architecture of database maintenance is well thought. This bug report can be closed.

True - and again, we’d need an option in PhotoLab to show missing files and a possibility to ignore that or remove the entries from the database. Current implementation only adds items to the database and after a while, it can be so far from what we actually have on our media, producing all the unwanted question mark previews and slower operation.

Every inventory system needs some cleanup. In supermarkets, this is done by people counting products on the shelves. In PhotoLab, everyone is on holidays :wink:

1 Like

Please look to my conclusion after more testing: indexing a folder also removes non present pictures out of the database as well (but not for deleted folders). Please let me know if you see other behavior and eventually I will test again.
With respect to deleted folders, I think that I understand the reasoning of DXO development team. It might be subject to an architectural debate, but I’m fine as implemented now.

Does not happen with DPL on macOS.

(another difference between Mac and Win releases)


Update: Re-tested the behaviour with a folder with 14 images (as compared to my usual 60) and found that, in these tests, the db was updated properly. Updating seems to depend on conditions that I can’t put my finger on right now. Maybe it’s a plain bug.

And it seems to be even more complicated: While DPL finds inexistent files after its restart, it doesn’t do so after the next restart. Updating the DB and the UI gets out of sync, possibly opening the door to accumulating inconsistencies. Interesting!

I’ll have to dig deeper or open a ticket for DxO support.