I need to shrink one of my cycbuffs, but keeping articles (including their numbers) intact. Creating a new cycbuff, moving articles to it, and then adding it to inn instead of the old cycbuff, will also do the trick. Is it possible? If yes, then how to best approach it? It would be best if I
didn't have to rebuild overview after that...
Usually, if I want to change where or how I store articles, I set up
another instance of INN and refeed all my articles to this new instance
(in slave mode so as to keep the original article numbers).
I have to move my server to another machine and want to reshape the
spooling system
so I thought about using the slave mode, but I'm not
convinced that articles on the slave server will have exactly duplicated numbering. I'll feel safer just moving files. Or are my fears unsubstantiated?
I'm worried about the word "attempts" in the inn.conf doc:
https://linux.die.net/man/5/inn.conf
"If set, INN attempts to duplicate exactly the article numbering"
Plus this:
"The upstream should be careful to always feed articles in order
(innfeed(8) can have problems with this in the event of a backlog)."
How to do it?
In general, slave mode doesn't seem to be convincing, as if anything goes wrong with numbering, results might be unpleasant for users, but hard to
spot for me...
But maybe I'm overparanoid? I never used this mode before.
I have to move my server to another machine and want to reshape the
spooling system
That's the opportunity to improve the design of your storage method(s).
The slave mode (xrefslave set to true in inn.conf) will keep the same article numbers; you can rely on it.
Please have a look at "6.4 Feed all articles on a server to another server":
https://www.eyrie.org/~eagle/faqs/inn.html#S6.4
The wording in the documentation is unfortunate. I suggest changing it
to "If set, INN duplicates exactly the article numbering [...]" and
adding "If there is no Xref header field or it is unparseable, the
article is rejected."
If you follow the procedure in the above FAQ, the articles are sent by arrival time on the old news server, so the article numbers are in order (assuming it was not running itself as a slave).
I hope the new wordings are now better. Thanks for pointing that out!
Hi Adam,I have mentioned before that there really needs to be a way to compress articles within a cycbuff file. It's probably not as simple as:
I need to shrink one of my cycbuffs, but keeping articles
(including their numbers) intact. Creating a new cycbuff, moving
articles to it, and then adding it to inn instead of the old
cycbuff, will also do the trick. Is it possible? If yes, then how
to best approach it? It would be best if I didn't have to rebuild
overview after that...
I do not unfortunately know an easy way to achieve that.
I am aware of a program named "respool" in the contrib directory of
INN but I have never tested it... It would do what you want
according to its comment "Refile articles into the storage manager
under the current storage.conf rules, deleting articles from their
old place in the spool." However, rebuilding overview would still be
needed.
Usually, if I want to change where or how I store articles, I set up
another instance of INN and refeed all my articles to this new
instance (in slave mode so as to keep the original article numbers).
" and qx/sm -q -H "$_" | grep Xref/ =~ / fr\.\S+:\d+/"
perl always sounded like magic spells to me...
I'm wondering if I should set up a new server (on the same machine) with
my desired spooling layout, feed articles to it using this method, and
then just swap the databases (active, overview, spool + spool config).
Would it work (and keep the article numbers exactly as they are now)?
"The result file contains tokens ordered by arrival time on the old server (which is usually roughly the same as the posting time). In case the
history file was not populated chronologically, it is better to sort it by posting time so that articles are fed in the right order."
If the history file on the old server isn't in order (so it's messed up,
some older articles have newer numbers) and I sort it this way, I'll end
up having gaps in the numbering, right?
So, let's say there's an empty group on a new server, and the first
article sent has Xref 3. There's no 1 or 2 yet. What would happen then?
Would the article be accepted?
If yes, then why is it important to send articles in date order, if
they'll end up with correct numbers anyway?
If not, then why is it important to send articles in date order, if theyslave
can be out of order on the source server? Shouldn't we send them based on Xref (article number) order? Numbering will be messed up on the new server> in the same way it's messed up on the old server then, but with xref
it's desirable, isn't it?
If yes, then why is it important to send articles in date order, if
they'll end up with correct numbers anyway?
Some people prefer that because of the way news clients work.
If you have only article number 3 and a client reads the newsgroup, it
will fetch this article.-a Afterwards, it will only try to download
articles whose number is higher than 3.-a So if you receive articles 1
and 2 later, the client won't know they exist.
Note that when the server has article 3, and a bit later 1 and 2, and a client reads the newsgroup at that time, it will naturally fetch all
these 3 articles.
After all, it only matters for clients if they access the news server
during the time of the migration.-a Maybe this precision should be added
to the documentation to make it clearer?
I have mentioned before that there really needs to be a way to compress articles within a cycbuff file.
Obviously it would take someone who knows the format of cycbuffs (not
me) knowledge how the pointers and stuff work with inn (also, not me)
and can do it in C so it's fast (definitely not me) :)
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 59 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 23:10:41 |
| Calls: | 810 |
| Calls today: | 1 |
| Files: | 1,287 |
| D/L today: |
12 files (21,036K bytes) |
| Messages: | 195,760 |