Help proposal for Akregator
Pierre
pinaraf at pinaraf.info
Sat May 5 16:52:09 BST 2018
On Thursday, May 3, 2018 10:22:49 PM CEST Pierre wrote:
> On Thursday, May 3, 2018 5:02:52 PM CEST you wrote:
> > Hey,
> >
> > > I plan to do that yes. I don't think it's going to be worse than what we
> > > currently have (the Metakit files already store the entire articles).
> > > For huge archives (>2GB maybe ?) SQLite may hit some limits and
> > > something
> > > stronger like PostgreSQL could be helpful.
> > > But I don't see how it could not be far better than our current Metakit.
> > > I
> > > also think that the current system has huge performance issues that we
> > > will
> > > solve using SQL queries to order articles instead of fetching every
> > > article, filtering and sorting using QSortFilterProxyModel. This will
> > > take a few months, but after I write a data migration solution I hope to
> > > be quickly able to demonstrate the final benefits using my archives.
> >
> > Great, that you are started the task of maintaining Akregator.
> >
> > I still think that we should not forget, that Akonadi is exactly created
> > for handling the storage and accessing big data sources like it is done
> > for mails. That's why it makes sense if you would share your ideas of how
> > your new archive system should work. Maybe we find a solution, where also
> > a later Akonadi replacement would benefit from. I just thinking, that a
> > redesign of Aktrgator could push the code in the right direction. For
> > switching backends easily, it makes sense to have a clear layer between
> > interaction of SQL database and application and do not add direct SQL
> > commands everywhere in the code...
>
> The current Akregator code already has the archiving code in plugins.
> I have started a git branch with a QSQLITE based archive backend. It is
> already working, just «a bit» buggy. Since I could not migrate my MK
> archives, I am not using it right now, but I hope to start doing that soon.
> The SQL schema I planned so far is really simple. It's a basic mapping of
> the archive objects and calls. It is not optimal, but I will have to
> migrate everything first to be able to inspect the real data.
> A jump to Akonadi could be possible, but doing so immediately would be
> really hard. The metakit storage had a serious impact on the API design
> (see the number of API calls I removed recently), and writing an akonadi
> storage would just kill the akonadiserver with a query-storm. I will first
> have a complete, working, optimized SQLite storage, and then we will see
> about the next step.
I fixed my mistakes and wrote a basic migration script… So now instead of a
2.1GB folder I have a 2.0 GB SQLite file (the migration took ~2 minutes).
Everything seems fine so far, performance is globally the same as before. For
really huge feeds, it seems to be a bit slower, but I was expecting that.
The attached screenshot shows one of my killer feeds (101k articles). This one
exhibits a perceivable performance penalty, mostly because of the way articles
are fetched (one query per article). With my planned switch to real on the fly
loading of articles, these problems should disappear soon.
If you want to try it out, it's all in a sqlstorage branch in my personal
akregator clone. Be careful, this might kill kittens, lose or corrupt your
archives… (One of these is unlikely)
Pierre
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screenshot_20180505_174511.png
Type: image/png
Size: 543003 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20180505/ab004f0d/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20180505/ab004f0d/attachment.sig>
More information about the kde-pim
mailing list