Well, it depends on the number of new deletions. Because I love the technical details, let me add some more information
Here is a simple simulation with spreadsheet:
Let’s say you have 25M real blobs, and 14M blobs which should be deleted (which is very rare, and bad situation).
With 39M (25+14) blobs, the false positive rate of a 4100003 bytes BF is 66%.
The 25M will always kept (guaranteed by the BF), but only the 34% of the 14M will be properly deleted.
So we will have 24M + 14M * 0.34 + newly deleted blobs for the next BF.
Here the code has a nice trick. Next time a different seed is used for BF, so the pieces which are affected by false-postitives hits, will be different. There is good chance that some of the missed pieces will be deleted this time.
As you see in the garbage column, the original 14M is slowly decreasing (it requires 10 BF execution to get only 269k as long as only 100k pieces are deleted during one BF period).
And yes, it depends on the number of new deletions, but even with 1M new deletions, it will work eventually…
That’s the math. We have hope.
But there is no question: we should use the new protocol ASAP, as 66% false positive rate is unacceptable (even if it’s 0.66 * 0.66 at the second time).
Note: false-postitive rate is calculated with the formula =POW(2,4100003/sum(E2:F2)/-1.44*8)