Skip to Content.
Sympa Menu

devel - [sympa-dev] Re: Re: Optimizing Sympa for handling 1000+ lists List::get_list & List::get_which(_db)

Subject: Developers of Sympa

List archive

Chronological Thread  
  • From: Sergiy Zhuk <address@concealed>
  • To: Olivier Salaün <address@concealed>
  • Cc: address@concealed, address@concealed
  • Subject: [sympa-dev] Re: Re: Optimizing Sympa for handling 1000+ lists List::get_list & List::get_which(_db)
  • Date: Sun, 22 Jul 2007 12:30:41 -0700 (PDT)

hi

> We have scheduled a one week work to optimize Sympa 5.3 performences ;
> we'll experiment the changes you suggest at the same time.

While you're at it, I've found out that if you split "Your subscription"
function to two or three separate functions - "Lists I'm subscribed to",
"Lists I own", "Lists I moderate", it improves performance, since it saves
you several directory scans, 'cause in most cases users want to see the
lists they are on, but not necessarily lists they own and moderate.
I'm talking about do_which(), which has a loop:

foreach my $role ('member','owner','editor') {

Owner and editor both require dir scan, which is slow and memory consuming.

Also, there's a huge performance improvement when you run several sympa.pl
daemons to process the queue using a separate queue directory for each
sympa.pl process.
I've cheated and ran each of them with a different configuration file and
also modified queue.c to spread message files to several queue directories,
and sympa.pl to support digest locking, since sympa.pl is also
processing digests which have to be processes in a single directory.

thanks

--
rgds,
serge



Archive powered by MHonArc 2.6.19+.

Top of Page