-
Type:
Improvement
-
Resolution: Won't Fix
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
DevProd Build
-
149
-
None
-
None
-
None
-
None
-
None
-
None
-
None
We do a single task nightly to prune the caches. There are several problems with this approach. The tasks take too long that they can almost not complete overnight, and this means during the day the directory grow very large with no prunning.
We should switch to a continuous distributed pruning process. Ever scons compile tasks should prune the cache a little bit. SCons splits its prune directories into 256 different subdirs for each cache. The idea is every scons compile tasks will prune 1 of these 256 dirs randomly.
Statistics show we run thousands of compile tasks per day, so random selection says each dir will be pruned at least once in a 24 hours period. Tests show this type of pruning would take in the worst cases 5 mins to complete during the scons compile tasks.
This process has an automatic scaling feature built in. The more a cache is used, the more it files it will, and therefore the pruning time it will receive.