According to IOTA Engineering:
IRI 1.5.3 addresses the blowball problem seen on Mainnet.
What exactly is the blowball problem and what causes it?
The blowball problem is this phenomena where a huge quantity of new transactions select more or less at the same time the exact same transaction (most of the time the latest milestone) as branch and trunk transaction.
On a tangle vizualizer this phenomena is visible in the form of "balls" where the center of the ball is a milestone, and the ball consist of a huge amount of tips.
It's a problem for the convergence of the tangle because when a walker reach the center of the ball it will have the choice between a wide variety of tips with more or less the same transition probability. Intuitively, we can understand that it take more time to obtain a solid consensus when facing such a wide variety of choice. And once the consensus is reached (i.e. some of the tips originally forming the ball have accumulated enough weight to attract the majority of the future walkers), all the other tips forming the ball will be "left behind" (i.e. forever tips).
The causes can be :
What is the Blowball Problem?
The blowball problem is caused by the IOTA IRI node returning the same
branch and same
trunk transaction when the wallet calls its 'getTransactionsToApprove` API function.
What Causes It?
This is caused by faulty and buggy software, that isn't able to find a different set of
branch transactions, even though the call is made on totally different nodes.
This is the extent of it - an IRI node just needs to find 2 transactions that meet the requirements randomly and send them back to the caller.
Why Is This Such A Challenge?
I cannot see how this is such a challenge for the IRI node since it has thousands of transactions to choose from and even finding two transactions that meet the requirements and then randomly choosing a few should be computationally easy.
Perhaps someone can share why this is too difficult?
In any case, that is why the blowballs happen.