On Wednesday, 30 July 2025 11:17:42 Central European Summer Time Duncan wrote:
> Last he posted, however, he
> was working on implementing the database backend first for some less
> critical stuff, before attempting the real scalability challenge stuff.

Currently, Pan architecture looks like:
- a reader of pan group and articles files
- an in-memory tree to store group articles and all their data (see my-tree.cc 
files). This component is responsible of tracking threads in newsgroups.
- a component to download articles and store them in my-tree
- another in-memory tree that is used by gtk widget (pan-tree.cc). pan-tree 
loads data from my-tree
- a writer of pan files.

So far I've completed:
- a component to migrate most pan files into sqlite
- the replacement of the first in-memory tree. Threads are tracked with the DB
- connecting the 2nd in-memory tree to the first one to use the DB.
- component tests for the tricky parts of the new code
- doc update of README.org
- using log4cpp with the new code, so we can trace specific parts of the code 
with several log levels (see ~/.pan2/pan-log.properties file which is created 
by new pan)
- pan file write is dropped.

All in all, barring bugs, Pan with sqlite is functional. 

They are still some performance issues:
- migration of existing files is slow on big groups. Since this is a one shot 
operation, I don't worry too much about that.
- sorting articles according to subject or date is quite slow with a group 
containing . I'm still working on this one.

Note that testing pan with sqlite is a one way street: old pan files are 
deleted once they are migrated. Be sure to backup ~/.pan2 before testing.

Here's a trick I use to manage this backup/restore:
- I've copied ~/.pan2 in ~/.pan2-old
- To restart the test, I run:
   rsync -a ~/.pan2-old/ ~/.pan2/ --delete --exclude pan-log.properties -v

Note that I won't merge sqlite branch on master until:
- I've resolved the perf issues
- I've heard back from several people that pan with sqlite is functional with 
their setup.

So please test this branch on your side.

Please add a "sqlite" label on any issue created for this branch.

All the best



_______________________________________________
Pan-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/pan-users

Reply via email to