Very nice! Questions: Is there a place where a user can go and look, so see how many nodes on what sattelites have begun active migration, pushed from your side?
Also; once all migrations are finished, will StorJ push code changes to get rid of ´blobs´ directory and its presumably many damaged files from some users perhaps less than stellar setups?
The exact plan is still forming, but yes, we are planning to fully migrate to hashstore, and remove old code + old garbage. The exact approach is still under discussion and once we have a plan, it will be published on this forum
I am still seeing mixed results and the removal of subfolders does not seem to work as I expect it:
Initially after migration I had set the cores back to false to avoid the empty subfolders to be re-queried over an over again. I never manually deleted them.
Then obviously the central migration started. But I see different results on the nodes.
On 1 I see 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S.migrate_chore set to false with file modification date as of today and 12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs.migrate_chore set to true with file modification date 1st of July. This is consistent with the result that the EU satellite folder has been completely removed.
While on storagenode 2 I see 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S.migrate_chore set to false and 12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs.migrate_chore also set to false, both with file modification date as of today. This is also consistent with both folders still there.
But it is not consistent over all nodes. Some have all satellite folders removes. Some still have all subfolders although empty.
And I am wondering about the file modifaction dates and if their values are correctly set. As we had it that in the past that the values were resetted to previous values:
which is 20 minutes ago. Now set to false. It would be a strange coincidence if the central migration just set the value to false. Which means it had to be set to true before. However we are still at
Also weird:
Based on metric function{scope="storj_io_storj_storagenode_piecemigrate",name="__Chore__cleanupEmptyDirectories",field="successes"} 222 as I understand it it was supposed to cleanup 222 directories already. However we are still seeing the number of subfolders at 1024. Isn’t this function supposed to delete the subfolder if they are found to be empty?
Now at: function{name="__Chore__cleanupEmptyDirectories",scope="storj_io_storj_storagenode_piecemigrate",field="successes"} 240 although
2026-07-15T06:40:23Z INFO piecemigrate:chore all enqueued for migration; will sleep before next pooling {"process": "storagenode", "active": {"121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6": true, "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S": false, "12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs": false, "1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE": true}, "interval": "10m0s"}
Possible, I don’t know. Likely after each check-in, which is happening hourly by default. The file is modified not by the satellite, but by the node.
I would like to suggest to let it run and finish. When the migration will be finished, folders should be deleted. However, you may do it yourself since it’s concerning you, just make sure that they are truly empty.
What concerns me are the ambigious or contradicting signals that do not give a clear indication what is going on.
E.G: If migration chore is set to false for both satellites US and EU, why is the the cleanupEmptyDirectories success chore counting up succesful directory cleanups. And if there succesful directory cleanups, why don’t they get deleted?
What I am seeing is not what I am expecting to see to be able to say it is working.
Also why is the process so slow? Checking empty subfolders and deleting them should not take weeks or months. Deleting 1024 empty subfolders should take seconds. But now we are at function{name="__Chore__cleanupEmptyDirectories",scope="storj_io_storj_storagenode_piecemigrate",field="successes"} 246. So +2 in 5 minutes? What is this thing even doing as migration chore is set to false?
This all just looks weird to me.
Perhaps you need to restart the node to apply the change, until then it’s likely considering it as still enabled. The second thing - the passive migration is likely enabled, so it migrates remained pieces when they requested.
It runs after the migration is completed and will fail, if there are some files remained. Perhaps you might have migration errors too.
I verified that yes, the node is modifying the file. While a satellite’s flag is still false, every check-in rewrites the .migrate_chore file regardless of whether the value actually changed. So the mtime bumps hourly with zero real signal until the day it flips true.
On the counter incrementing, the counter increases are likely coming from your other two satellites (the ones showing true), not EU/US. Neither of those two counters are tagged per-satellite. They’re global across all the satellites, so you can’t tell from the metrics alone which satellite is being cleaned.
Those EU/US subfolders are likely still empty because cleanup for them hasn’t run at all yet since their flag is still false. Once it flips true centrally (or you flip it true yourself), it should clear out within one 10-minute cycle. If you want to flip it yourself, i’d recomend flipping it by bringing the node down first, changing the value, then starting it up again.
To track the actual progress, I recommend watching each satellite’s own active bool in the “all enqueued for migration…” log line rather than the aggregate counters.
On another note, I think there is a bug here that should be fixed. There are some false positives in the metric, so i’ll look into getting that fixed.
Now at 262? while still 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S.migrate_chorefalse and 12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs.migrate_chorefalse.
Whatever cleanup is happening, it is not visible.
Maybe the increase due to this?
Passive migration is set to true of course. Is this supposed to trigger the cleanupEmptyDirectories chore? In case it does, why does it not delete the empty subfolders? I am just seeing the counter increase but nothing happens.
It is simply not clear what to expect and what it is actually doing.
This is what I am doing right now on all of my nodes: Manually switching the migration back on. Let’s see what will happen to the empty folders. My expectation is that they should get deleted.
This may be related to the bug I mentioned. There are some false positives in that metric that need to be fixed. I will work on this, and push out a new release with the fix.
For some reason I can see on some nodes (not all) that the value reverts back to false although it has been done exactly like you have proposed. Any ideas why this is happening? Of course this means that the subfolders on these nodes have not been deleted yet.