[Digikam-devel] Getting Started For GSOC

Gilles Caulier caulier.gilles at gmail.com
Fri Mar 4 10:03:54 GMT 2016


Varun,

Any progress here ? Any pending questions ?

Gilles Caulier

2016-02-29 10:49 GMT+01:00 Felix Leif Keppmann <felix.leif at keppmann.de>:

> Hello Varun,
>
>
> once you integrated changes/improvements, I would be happy to help
> testing. Thus, if I don't get active by myself, just give me a hint.
>
> Usually, I use a dedicated MySQL server also for hosting the three
> Digikam databases. But currently, MySQL support in Digikam master is -
> subjectively perceived from the perspective of a user - 10 to 15 times
> slower than SQLite and some things are broken. Thats why I had to switch
> to SQLite.
>
> For testing, I could rescan a large collection, including several face
> tags, and populate those databases.
>
>
> Regards
> Felix / fekepp
>
>
>
>
> On 29.02.2016 09:28, Gilles Caulier wrote:
> > In core/libs/database, the README file give some description for each
> > sub-directories :
> >
> >
> https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/libs/database/README
> >
> > As i said previously, DK use 3 Databases (core, thumbs, faces), with 3
> > differents schemas. For these 3 databases, we have 3 backends :
> >
> > 1/ sqlite,
> > 2/ local mysql server
> > 3/ remote Mysql
> >
> > For the 2/, we have a dedicated implementation outside core :
> >
> >
> https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/show/databaseserver
> >
> > For this project the most important parts will be
> > /core/libs/database/engine which will includes all parent classes for 3
> > DK databases (core, thumbs, faces). All of these are located repectively
> > in core/libs/database/coredb, core/libs/database/thumbsdb, and
> > core/libs/facesengine/facedb. This last one is outside
> > core/libs/database for compilation reasons due to OpenCV dependency.
> >
> > For each databases (core, thumbs, faces), the /core/libs/database/engine
> > provide classes to :
> >
> > - access through a singleton : facesdbaccess.h for ex.
> > - a wrapper to Database type (sqlite, local mysql, remote mysql) :
> > facesbackend.h for ex. This one will init the database in memory
> > accordingly with settings. This one load the right schema. Most of
> > implementation are give by parent classes in core/libs/database/engine
> > - a schema updater to host porting rules from old to new schema versions
> > : facesdbschemaupdater.h
> > - a specific implementation dedicated to host relevant tasks : facesdb.h
> > for ex
> > - a specific implementation dedicated to host grouping DB tasks :
> > facesdboperationgroup.h for ex
> >
> > The ex given to FacesDB is the most simple to start because the
> > implementation is not too complex. Look alos the ThumbDB which is simple
> > too. The most complex DB implementation is CoreDB, where you will found
> > same king of classes plus more one to delegate specific tasks. The
> > CoreDB is the most huge database (schema), with a lots of triggers
> > between tables.
> >
> > In core/libs/database/, outside core, thumbs DB, you have these sub
> > directories :
> >
> > - collection which host classes to handle the digiKam collections (root
> > albums, local, remote, removable). You will need to take a look later
> > certainly, this depend of reports from bugzilla to fix.
> > - dbjobs which is a multi-threaded/multi-core low level interface
> > dedicated to query the database. No need to touch it for the moment,
> > this work well.
> > - haar which is dedicated to host image similarities fingerprints. This
> > is out of your project.
> > - imagehistory which is dedicated to host image tree-histories
> > accordingly with corrections applied to image by editor and BQM. This is
> > out of your project.
> > - imgqsort which is dedicated to host image algorithm to sort images
> > accordingly with noise,exposure, sharp level, etc. This is out of your
> > project.
> > - items which is dedicated to host classes for image properties. You
> > will need to take a look later certainly, this depend of reports from
> > bugzilla to fix.
> > - servers which are low level classes for mysql local server. Later we
> > will certainly write new one for PostGreSql. This is out of your project.
> > - tags which is dedicated to host classes for virtual album as tags. You
> > will need to take a look later certainly, this depend of reports from
> > bugzilla to fix.
> > - utils where you will found some miscs classes as DB settings widgets
> > and dialogs.
> >
> > This respond partially to your question ?
> >
> > BEst
> >
> > Gilles Caulier
> >
> >
> > 2016-02-29 2:10 GMT+01:00 Varun Gupta <varungupta1803 at gmail.com
> > <mailto:varungupta1803 at gmail.com>>:
> >
> >     I have finished with reading the code in the folder collection and
> >     coredb from link [1]. I got familiar with the code but I guess there
> >     is lots of code to read , so it would be helpful if you could
> >     redirect me to the parts which are immediately essential so I get
> >     the understanding of the important parts and then go on with the
> >     rest of the code.
> >
> >     Regards,
> >     varun
> >
> >     On Sun, Feb 28, 2016 at 4:49 PM, Gilles Caulier
> >     <caulier.gilles at gmail.com <mailto:caulier.gilles at gmail.com>> wrote:
> >
> >         Any feddback here. Did you checkout code and look in DB
> >         interface implementation ? Any questions ?
> >
> >         Best
> >
> >         Gilles Caulier
> >
> >         2016-02-24 22:07 GMT+01:00 Gilles Caulier
> >         <caulier.gilles at gmail.com <mailto:caulier.gilles at gmail.com>>:
> >
> >
> >
> >             2016-02-24 21:42 GMT+01:00 Varun Gupta
> >             <varungupta1803 at gmail.com <mailto:varungupta1803 at gmail.com
> >>:
> >
> >                 I have started looking at the code from the given link
> >                 [1] . I still have doubts what do you mean by the last
> >                 stage , in the doc do i have to list all the main
> >                 problems that need to be fixed for MYSQL types?
> >
> >
> >             Exactly. Accordingly with Agile method, bugzilla is the
> >             reference to evolute and fix open source application. I
> >             already review and sort all entries in bugzilla (including
> >             duplicates) about MySql support. It will be not to hard to
> >             list the main dysfunctions about Mysql support depending of
> >             users contexts reported. Of course, there is an order to fix
> >             the problem due to interdépendances between tasks to patch
> >             the current implementation of database interface.
> >
> >             Gilles Caulier
> >
> >
> >
> >         _______________________________________________
> >         Digikam-devel mailing list
> >         Digikam-devel at kde.org <mailto:Digikam-devel at kde.org>
> >         https://mail.kde.org/mailman/listinfo/digikam-devel
> >
> >
> >
> >     _______________________________________________
> >     Digikam-devel mailing list
> >     Digikam-devel at kde.org <mailto:Digikam-devel at kde.org>
> >     https://mail.kde.org/mailman/listinfo/digikam-devel
> >
> >
> >
> >
> > _______________________________________________
> > Digikam-devel mailing list
> > Digikam-devel at kde.org
> > https://mail.kde.org/mailman/listinfo/digikam-devel
> >
> _______________________________________________
> Digikam-devel mailing list
> Digikam-devel at kde.org
> https://mail.kde.org/mailman/listinfo/digikam-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/digikam-devel/attachments/20160304/c6ca12a9/attachment.html>


More information about the Digikam-devel mailing list