For direct deletes we would need to keep a record of the pieceIDs that got removed from the network. And we would need to keep the entire list somewhere. Thats a giant object. My last bloom filter deltes 1.3M pieces on US1 alone. I don’t know how what size a single pieceID has but a list with 1.3 Million of them gets expensive.
A bloom filter does the oposit. Instead of tracking the pieces that needs to get cleaned up it tracks the piecs that the node has to keep. That doesn’t need any extra data. It can work with the existing data in the database. On top of that the bloom filter is just 2MB in size in my case.
Don’t get me wrong. There is an argument for direct deletes but more in addition to bloom filter and never as a replacement. And that argument only works until server side copy enters the floor. So with server side copy in mind bloom filter are the best and cheapest option. I am more than happy to store these server side copy files on my storage node. More usage = more payout. I don’t see the point on removing these files from the network just to make things work without bloom filters. First priority should be to make the customers happy and on my node I will tollerate some tradeoffs for that goal.