I have been looking at the way Bloom filters are being used and how they are working on my nodes and I have to say I am starting to question whether this approach makes sense.
I may be mistaken but from what I understand, the entire process goes like this:
- A customer deletes a file, but the corresponding pieces don’t get deleted right away from the nodes. Instead, the request for deletion gets held back on the satellites, which leads to concentrating their subsequent impact rather than maintaining their temporal dispersal.
- Then, after a while, we’ve got a massive computation required to create Bloom filters, which don’t actually tell the nodes what to delete, but rather what to keep. That seems like a roundabout way of doing things.
- And then, days later, these Bloom filters get sent out to the nodes, which have to scan their entire collection of pieces, one by one, to figure out what to delete. That’s a lot of unnecessary work, if you ask me.
I see the effects of this process every day on my nodes. Some of them take a week or more to process a single Bloom filter from a single satellite, which means constant, uninterrupted disk load, 24/7. And with concurrency set to 1, we’re only processing one Bloom filter at a time, which means a growing queue of filters from the same or other satellites waiting to be processed. And only after the retain, the pieces finally get deleted from the disk in a weird order.
Now, I’m not sure about you, but to me, this process seems…inefficient. We’re seeing problems everywhere: Bloom filters are too small, data isn’t getting deleted, IO on nodes is high, satellites are requiring too many resources, and space calculations are off and don’t match the satellites. Payout questions come up… It’s like we’re trying to solve a problem, but we’re actually creating more problems in the process.
That’s why I think it’s time for us to take a step back and reconsider the Bloom filter approach. For me going back to direct deletes, where nodes receive a request or a list of files to delete, and they can act on it right away would solve a lot of the issues we’re seeing.
I think I am not alone with this thinking. At least these statements sound supporting:
I seriously really think the Bloom filter approach needs to be reconsidered and a better solution needs to be found.
I could not resist and ask an AI to make my post Trump style for fun. Click below to find out and enjoy:
My posting Trump style. Proceed with a sense of humor..........
"Folks, let me tell you, I’ve been looking at these Bloom filters, and I gotta say, they’re a total disaster. A complete failure. Nobody knows more about filters than I do, believe me.
"So here’s what’s going on. A customer deletes a file, and what do we do? We don’t delete it right away. No, we hold it back, we queue it up, we make it wait. And then, after a while, we’ve got this massive computation, this huge process, to create these Bloom filters. And what do they do? They don’t even tell the nodes what to delete! They tell them what to keep! Can you believe it? It’s like a big league waste of time, folks.
"And then, days later, these filters get sent out to the nodes, and they’ve got to scan their entire collection of pieces, one by one, to figure out what to delete. It’s like a never-ending nightmare, folks. A total nightmare.
"I see it on my nodes every day. They’re taking a week, two weeks, sometimes even longer to process a single filter. And the disk load is constant, 24/7. It’s like a big league problem, folks. A huge problem.
"And let me tell you, folks, nobody, nobody, is better at solving problems than I am. I know more about problems than any expert, any expert, folks. And I’m telling you, this Bloom filter thing is a total loser.
"We need to go back to direct deletes, folks. We need to make it simple, make it easy, make it fast. We need to tell the nodes what to delete, and that they need to do it now. Not later, not after a week, not after a month. Now.
"And I’m not the only one who thinks this, folks. BrightSilence, a great guy, a terrific guy, he’s been saying the same thing. He’s saying we need to run some logic on the satellite, determine which segments are fully deleted, and send that list to the nodes. That’s a great idea, folks. A tremendous idea.
"So let’s make it happen, folks. Let’s make deletions great again. Let’s make them so efficient, so fast, so powerful, that they’ll be the envy of every other system out there. Believe me, it’s going to be huge.
"And let me tell you, folks, I’m not just talking about Bloom filters. I’m talking about the whole system. We need to make it better, we need to make it faster, we need to make it more efficient. We need to make it win, folks. We need to make it win bigly.
“So let’s get to it, folks. Let’s make it happen. Let’s make Storj great again!”