https://bugs.kde.org/show_bug.cgi?id=372435

Maik Qualmann <metzping...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
      Latest Commit|                            |https://invent.kde.org/grap
                   |                            |hics/digikam/commit/ba796dd
                   |                            |744c9ca7e596fc97eb1dc45f22e
                   |                            |4f30cd
             Status|REOPENED                    |RESOLVED

--- Comment #11 from Maik Qualmann <metzping...@gmail.com> ---
Git commit ba796dd744c9ca7e596fc97eb1dc45f22e4f30cd by Maik Qualmann, on behalf
of Bruno de Oliveira Abinader.
Committed on 30/03/2021 at 10:00.
Pushed by mqualmann into branch 'master'.

Run HaarIface::findDuplicates lock-free in parallel

This works by splitting the duplicates finding logic in 4 major steps:

1. Resolve all image ids before starting the searches jobs during
DuplicatesFinder::slotStart().
2. Create a shared HaarIface with signature cache in SearchesDBJobsThread to be
used by all SearchesJob in parallel.
3. Break down the whole "images to scan" set into iterator ranges, and run
these in parallel (lock-free).
4. Rebuild (or update) the search albums in the database.

Step 3) can be run lock-free in parallel with some adjustments e.g. because
we're using constant iterator ranges, it is
not possible to remove unused images from the cache when running multithread.
Also because we use ranges in step 3),
sometimes the same search album is generated multiple times in separate threads
using different reference images; in
step 4) we ensure the aggregated results are filtered so there's only one
search album with similar images per
duplicates found.

M  +26   -15   core/libs/database/dbjobs/dbjob.cpp
M  +10   -1    core/libs/database/dbjobs/dbjob.h
M  +74   -9    core/libs/database/dbjobs/dbjobsthread.cpp
M  +6    -2    core/libs/database/dbjobs/dbjobsthread.h
M  +18   -17   core/libs/database/haar/haariface.cpp
M  +8    -14   core/libs/database/haar/haariface.h

https://invent.kde.org/graphics/digikam/commit/ba796dd744c9ca7e596fc97eb1dc45f22e4f30cd

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to