[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Pan-users] group preferences and fallback servers
From: |
Duncan |
Subject: |
Re: [Pan-users] group preferences and fallback servers |
Date: |
Fri, 22 Feb 2013 05:41:10 +0000 (UTC) |
User-agent: |
Pan/0.140 (Chocolate Salty Balls; GIT db8adcf /usr/src/portage/src/egit-src/pan2) |
Thufir Hawat posted on Fri, 22 Feb 2013 04:50:40 +0000 as excerpted:
> How do I specify that a group pull from a specified server?
Pan doesn't work that way -- you can't specify pull per group at all (tho
you can specify which server you /post/ to per group, by choosing the
appropriate posting profile, since that's set per posting profile and
posting profile is set per group), only in general. See below.
> I set the
> slow server to fallback status, but that didn't seem to help because I
> can see from the headers that the slower server is still being pulled
> from.
>
> To change to order of servers, manually edit the xml config files?
I don't believe changing the server order would work either.
The way it works, AFAIK, is that pan pulls overviews (aka headers) from
all (active, see below) servers that carry a group, in ordered to know
what messages each server has.
Then when it pulls the actual messages (aka bodies), it should pull from
servers at the same rank without carrying which one it's coming from, but
only pull from those at backup or below (in the GUI there's only two
ranks configurable, primary and backup, but in servers.xml it's numeric
and that's simply ranks 1 and 2 of however many you want to set... pan
probably uses an int, so ranks as deep as 2-million plus, anyway...).
**HOWEVER**, that does NOT necessarily mean it'll pull from all servers
at the same rank equally, if they're running at different speeds or the
completion isn't as good on one as the other. For the same size message
segments, the slower server will take longer with each one, so assuming
the same number of connections to each and that you're downloading enough
to keep all connections busy, most messages will come from the faster
server. Similarly, a server that has relatively poor completion will be
missing most posts, so pan will get way ahead on that server (assuming
similar number of connections and connection speeds), while the server
that has all the fills will take rather longer since most of the posts
are coming from it.
But a backup server should only get messages pulled from it if those
messages don't appear on any of the primary servers. The idea when the
server ranking feature was introduced was that pan would let the backup
server connection idle if necessary, if the primary server was too slow
but had good enough completion so nearly all messages were to be found
there.
If it isn't working that way, it's a bug.
Meanwhile, there's one more trick available: If you set a server to zero
connections, it disables that server. Pan shouldn't attempt to connect
to it at all, including to fetch overviews/headers. This feature was
added at the request of someone who had a per-month bandwidth quota that
would run out. Without the ability to disable the server, he had to keep
two server.xml files around, one with the server configured, one without,
so as to keep pan from stacking up tasks for that server, that could
never complete since his bandwidth was gone for the month and he could no
longer authenticate.
So, if it comes to it, you can disable a server by setting the number of
connections to zero. However, that disables it entirely. There's no
easy way to specify that some groups download only from some servers, if
other configured servers carry the groups as well.
BUT, there *IS* a way... tho it's a bit convoluted. Configure multiple
pan instances (as I have here, for text and test and binary, but you can
set each instance up however you want). This is done by setting the
PAN_HOME environmental variable in a wrapper script used to start pan.
This variable tells pan where to look for its data and configuration.
Only if it's unset will pan fall back to ~/.pan2, otherwise it uses
whatever dir the variable points to.
Thus, I have three wrapper scripts, pan.text, pan.test, pan.bin, each of
which points pan at a different location for its data and config by
setting and exporting this variable before starting pan. (Since I
already have the wrapper scripts, I actually have them setup to do a few
other misc things before starting pan as well, but the main reason for
the wrappers is to point pan at different config/data locations for each
separate instance.)
You could do something similar, setting up different servers in each pan
instance, with only the groups you want pulled from those servers
subscribed in that pan instance.
If you'd like, I can post my wrapper scripts, with a bit more information
about them. You could of course modify them as desired, after that. I
last posted them a few years ago, but they're a bit more advanced now
than they were back then...
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman