When will "Uncollected Garbage" be deleted?

I’m not entirely sure that’s for sure the case. Another possible explanation for the low numbers in the TTL database could be that the nodes are full and therefore not accepting more data. Given that my database sizes are in the gigabyte range, I would expect them to have contained many records.

That said, I’m open to exploring this avenue further to ensure we cover all possibilities. Let’s look into why the TTL entries might not be properly inserted, just to make sure we’re not missing anything.

3 Likes

Exactly this.

Okay… So I’ve taken a closer look and counted all the pieces in the ‘piece_expirations’ db by expiration date (see the left side of the screenshot). I also counted the successful uploads from SL from the logs, starting on July 26, since I only have INFO logs from halfway through July 25 (as shown on the right side of the screenshot). These pieces should expire around August 25 (30 days after). I’ve then calculated the percentage difference between them.

@littleskunk, I’m curious about what these numbers truly indicate. Additionally, I’ve noticed some pieces are set to expire on 9999-12-31. Could someone explain what this means?

Edit: Actually I made a mistake, which I now corrected in the screenshot. I’m usually close to 100%, so it seems there is no issue with inserts into the db, right?

3 Likes

Your TTL DB looks good. We don’t know for sure because there arn’t as many uploads as for example 2024-08-12 with almost a million but the existance of that datapoint indicates that it can handle it.

In your case the cleanup is also up to date. One of my nodes was falling behind a week and that would be visible in the TTL DB.

So far that is matching my observation as well. How about your success rate? There was a ticket around upload canceled still getting stored on disk.

1 Like

Thanks for taking the time to analyze my output. My upload success rate is high, sitting at 99.2%.

1 Like

Anyway, these unpaid files should have been deleted by GC, but in reality, they were not. This issue only occurred on the SaltLake satellite, and there was not much difference between the actual payment and disk usage on other satellites

The received Bloom filter file is too large. According to the usage space reported by the satellite, the Bloom filter file should not be so large. I think it is due to parameter errors when generating the Bloom filter, and expired files were not taken into account.

@littleskunk, Instead of counting successful uploads from the logs, I now checked the number of pieces in the SL blob folders for the days with a lot of TTL data (find /mnt/storj03/storage/blobs/pmw6tvzmf2jv6giyybmmvl4o2ahqlaldsaeha4yx74n5aaaaaaaa -maxdepth 2 -type f -daystart -mtime 23 | wc -l).

The data expiring on the 12th shows a 94% match, but for the 11th, it’s only 67%. What could this mean?

In this case no. On SLC even with no GC for a full month all pieces should get cleaned up by the TTL entries.

You can use requests like this to select data for certain satellite:

SELECT * FROM piece_expirations WHERE hex(satellite_id)=‘A28B4F04E10BAE85D67F4C6CB82BF8D4C0F0F47A8EA72627524DEB6EC0000000’;

You can get HEX values for satellites from here: https://forum.storj.io/t/satellite-info-address-id-blobs-folder-hex/17183

3 Likes

I think there was a short time where we uploaded with just 14 days TTL. Might have been that date. I would have to look that up.

2 Likes

I want to help by looking at my nodes and comparing these upload success logs with the TTL DB. Does the log show something different when an upload has a TTL vs when it doesn’t? Or does the piece_expiration.db store a line for every uploaded piece?

1 Like

Okay nvm, I found the relevant posts in the other thread.

A lot has already been said in this topic about TTL expiration and GC:

@littleskunk, Yes, while it’s true that TTL data should automatically be cleaned up after expiration, I’m starting to wonder if @donald.m.motsinger might be right about the issue with TTL data not being properly deleted. If that’s the case, then GC should be able to handle it as uncollected garbage. Given that the TTL database seems fine, and considering that SL reports indicate I have around 50% less data stored than I actually do on my hard disks (according to payouts), the BFs should be addressing this. Right? Why might this not be working as expected?

Any news from @elek about this would be appreciated.

2 Likes

Perhaps this is due to a database errors, mentioned there?

It looks like that my payout from saltlake was what the node estimated it to be - for 18TBm, even though the use space on disk is much more (probably twice as much). So, looking at the earnings.py script, what it reports as “uncollected garbage” appears to be correct - not all TTL data is deleted for some reason, it looks like only a small part of it is deleted. The script says that my node currently has 32TB of uncollected garbage and I am inclined to believe it.

So, there are two questions:

  1. Why does the TTL data not get deleted when it should
  2. Why the bloom filters do not catch the TTL data that has expired?

I don’t have an update yet. I was looking into my TTL DB and noticed there are no recent TTL uploads. Sounds like a great trace to follow but there are no uploads from SLC for the last few hours beside some repair activity. SLC uploads have now been restarted. I will have to check my TTL DB again.

2 Likes

interesting, that 2 days was no TTL new data, so old data should be deleted and all over space should shrink in 2 days, but in my case it raised, not much, but raised from other satellite uploads.
But from SLC i get about over 2-3 TB as day.
I am on 1.109 version

v1.109.2 does not update the used space for collector or garbage collection, so node reported space will always go up.

1 Like

ok thank you then waiting 1.110