mbruel / ngPost

Command Line (or minimalist GUI) usenet poster for binaries developped in C++/QT designed to be as fast as possible and offer all the main features to post data easily and safely. Releases for Linux, Windows and MacOS are available.
GNU General Public License v3.0
176 stars 33 forks source link

Feature suggestion: parallel rar/par and upload queue #54

Closed Tensai75 closed 4 years ago

Tensai75 commented 4 years ago

Hi Matthieu

Have you ever thought of separating the rar/par process and and the upload process into separate queues so they can be done in parallel? Especially when monitoring a folder with a lot of jobs, this could drastically improve the overall performance. E.g. while uploading the first job (after it has been initially rared and pared), the next job(s) could already be rared and pared in parallel and then put into the upload queue. Programmatically this can be done easily and I used this approach in a private upload tool I wrote myself in node.js using nyuu as the actual upload program.

Would love to hear your thoughts about this.

Regards, Tensai

mbruel commented 4 years ago

Hi Tensai, You can do obviously do it... It won't be that easy within ngPost but not the end of the world either. There are pros and cons, personally I see more cons.

1.: pros:

2.: cons:

So basically I find it too risky. And anyway, if you're having a queue, what's the hurry, just launch it and come back the next morning.

Tensai75 commented 4 years ago

Hi Matthieu

many thanks for our response. Personally I think the pros upweight the cons by far, especially for "professional" uploaders which have separate scripts to continuously fill the monitored folder with new jobs and where it is key to have all the files uploaded as fast as possible. Disk space usually is no issue for them. But to be on the safe side, a mechanism could be implemented to simply pause the rar/par queue if disk space is low. As soon as uploaded files are deleted again and enough disk space is free, the rar/par queue could resume again. And as you mentioned, limiting factor is almost always the upload itself. So there is no need to have rar/par working at the disk i/o limit (which usually is the limit for rar/par) and they could simply be limited to one thread each.

Unfortunately I am not as proficiency in C++/QT as you obviously are and honestly have no time to dig into it. But be assured that there is a huge interest in this option and ngPost could become the standard usenet upload tool if this would be implemented.

Still hope you might consider doing so.

Regards, Tensai

mbruel commented 4 years ago

Well I didn't have any feedback from "professional" posters... I'm not sure if any use ngPost. I suppose they already have their home-made scripts and continue to use them, which makes sense. Probably they still use Nyuu as they don't really have any reason to change...

Monitor the disk space is an hassle, especially with multi-OS support. I could maybe implement to only have the next Job packed in advance, which means no more than 2 temporary folders, so I imagine, max 200GB.

I'm waiting for some translations to release the v4.8. I'll check if I can find a way to include it "easily".

Tensai75 commented 4 years ago

Well I didn't have any feedback from "professional" posters...

Well, now you have ;-) At least indirect because I am not actually one of them myself but I certainly can say I do represent some of them. And I actually tried to convince them to switch to ngPost because I have no time to maintain my tool any further. And guess what, main reason why they didn't want to was the missing parallel rar/par and upload process. But what they did like very much was the multi server support and also the UI. Two things that nyuu does not offer on its own. And of course also the speed which is beyond nyuu. So as said, your program has already been very positively noticed and its potential is huge.

I could maybe implement to only have the next Job packed in advance, which means no more than 2 temporary folders, so I imagine, max 200GB.

This is absolutely reasonable and would be sufficient to achive the same overall performance. Would be great to have this!

mbruel commented 4 years ago

ok I'm having a look. could you drop me an email, maybe you could help for the German translation of 6 sentences for the new release, I'll add you to my mailing list. (Matthieu.Bruel@gmail.com)

mbruel commented 4 years ago

@Mamitomama I'm not sure I get what you want to do... Why stop the upload and/or only prepare the packing without uploading? what's the goal.

I've implemented a simple version where I'm packing the next post in queue while uploading the current one. It seems to work. I believe it is enough as packing is in general much faster than posting. So you end up waiting only the first time for the packing then it is uploading in continue the whole queue \o/

Would you guys be able to beta test? I'm still missing a little part to handle new incoming file but it should be ready in a few hours.

What OS are you on? Linux command line? do you compile from the sources?

PS: @Mamitomama are you on the same community of @Tensai75 ?

mbruel commented 4 years ago

the beta is pushed. Please let me know your feedback.

Open the config file to add PREPARE_PACKING:

## when several Posts are queued, prepare the packing of the next Post while uploading the current one
PREPARE_PACKING = true