Madmax design and logic for file copies

I only recently got around to using the USB Type-C ports on this Vantec card:

…mainly because my USB drives do not come with a Type-C connector. So I picked up a couple of cables and all was well – or so I thought.

When madmax completed a K34 plot, it was copying the file at approximately 25 MB/s.
That is USB 2.0 speed. But I tested the cable on my PC’s built-in Type-C port, with the same cable, and got 150 MB/s (still somewhat slow for USB 3.0 – but good enough).

Well, madmax does not wait for the file copy to complete. It starts processing the next plot while it is doing the file copy in the background. This is great, so things keep chugging along.

But at roughly 25 MB/s, madmax completes creating its next plot before the 5+ hour file copy completes. Now, the temp drive has two K34 plots stacked.

This is where madmax’s developers put some smart logic into their code.

madmax reports that it has started yet another file copy, but it really did not. Instead, madmax waits for the existing file copy to complete. And since madmax sees the plots stacking up, it does not start yet another plot creation process. It waits for the first file copy to complete. Upon that file copy completing, then madmax immediately starts the next file copy and starts the next plot creation process.

So madmax will not keep creating plots, causing your temp drive to fill. It will create a plot while (at most) only one file copy is executing. If it sees a 2nd file copy in its queue, it will pause initiating yet another plot creation process.

I do not know if any madmax developers read this forum, but I want them to know that they carefully thought this through. This also indicates that they have other carefully crafted code that might go unnoticed.

One other nice touch is that if you do not have enough disk space to complete a file copy, madmax will still start the file copy process, and wait for you to make space. So madmax will copy whatever portion of the plot it can, and wait. When you create available space, madmax continues the copying until completion. And it does this by not allocating the full space for the file copy (it can’t, when not enough space exists). it will allocate the space, when it can. But my point is how madmax functions when it can’t allocate full space for the file copy, due to insufficient space.

The standard chia.exe executable will not start a file copy if there is not enough space (although I have not tried since version 1.1.7), but madmax will start the file copy process. There are good arguments to be made for either choice.

Most folks will not run into this. I have, because I have been re-plotting from K32 to K34. I do not delete K32 plots until madmax needs the space. I keep the K32 plots there to better my chances of a win. I try to keep ahead of madmax. But occasionally, I find madmax waiting for me to delete something (K32 plots) in order for it to continue copying the K34 plot.

Another nice touch by the madmax developers.

Now, I have to deal with that Vantec card!

1 Like

@ seymour.krelborn Where did you buy the card from

Micro Center.

…18, 19, 20.

intersting. i find this problem with madmax in ubuntu aswell. just randomly, will stop. making plots. I think it keeps hitting it space limit. it does. because it isn’t moving the plots fast enough randomly…