#35 Usage hints/warnings

Peter C
Thomas Harold

1) One of the things that it took me a while to figure
out (although I confess to not having read the docs in
depth) is the efficiency value. Mostly because I
didn't figure out that files are boundary-aligned, so
it's a bad idea to have block sizes that are
drastically larger then your average file size.

I think it might be helpful if, when I click on the
"create" button that QuickPar would toss a warning
message (Yes/No/Help) if the efficiency value is going
to be less then 75%. Something to the effect of:
"Warning: You have chosen to create a recovery data set
with a large amount of wasted space. You may wish to
use a smaller block size to reduce this wasted space
and make your recovery set more space efficient." The
user should still be allowed to say "Yep, I'm sure" and
create the set anyway.

A refinement might be to allow the user to set their
pain threshold in the Options dialog (e.g. "Warn me if
wasted space is greater then 25%"), which would double
as a way to turn off the warning.

2) Warn the user if they are creating too many blocks.
I think the heuristic might be that you should
generally not have more then (number_of_files x 10)
blocks in a set. So for a 100 file set, there
shouldn't be more then 1000 blocks.

This might help with the slowness complaints because of
people creating PAR2 sets that take forever on the
destination machines due to large block counts.

Refinement would be to allow an option to tune this
setting... "Warn me if the recovery set has more then X
blocks per file."


  • Peter C
    Peter C

    Logged In: YES

    The idea of displaying a warning when the efficiency rating
    drops too low is a good one and I have added it to my wish

    Your heuristic for limiting the number of blocks per file is too
    restrictive. If you only have 1 file you would only be
    permitted 10 blocks.

  • Peter C
    Peter C

    • status: open --> pending
  • Thomas Harold
    Thomas Harold

    Logged In: YES

    Aye, 10 blocks per file is a bit restrictive in certain
    scenarios, having played with PAR2 a bit more since then...

    One the one side we have sets with few/large files (e.g.
    protecting the content of a DVD with a few/large movie
    files). As long as the block size is multiple megabytes (I
    usually use either 4/8/16Mb blocks), speed doesn't seem to
    be an issue even though that results in 500-2000 blocks.
    The big problem here is that people don't change the default
    block size and end up generating 8000-12000 blocks which
    takes forever to calculate.

    The other side is the case where I'm protecting many/small
    files (e.g. a DVD full of photos or development files or
    MP3s). The warning limit of 10 blocks per file average
    works well here.

    A lot of solutions for this are a bit arbitrary... average
    blocks/file might not be the answer. Unless combined with
    information about the number of files in the set. (Fewer
    files would allow for larger block counts.) Almost has to
    be a two-condition warning, the total number of blocks
    should be less then N or the average number of blocks per
    file should be less then M. (e.g. warn the user if they
    exceed 2000 blocks AND blocks/file average is greater then
    20) Bit more difficult to program / create options for.

    So if the user is protecting 4Gb of data in 5 files, the
    warning wouldn't pop up unless the data set is > 2000
    blocks. (2Mb block size.)

    Same user protecting 400 files that are 10Mb each should
    only see a warning if they create > 8000 blocks (20*400).

  • Thomas Harold
    Thomas Harold

    • status: pending --> open
  • Peter C
    Peter C

    Logged In: YES

    Coming up with a reasonable algorithm for automatically
    selecting a good block size/count will probably be quite
    difficult as it depends on the purpose for which the par2 files
    are being created and the sort of data files that have been

    One of the files I have planned is the ability to create profiles
    that will basically allow you to tell QuickPar what you want to
    achieve. QuickPar would then select an appropriate algorithm
    to use to calculate the block size.

  • Peter C
    Peter C

    • status: open --> closed